mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-26 18:31:52 +00:00
* store, properties, manifest * interfaces * init and backups * fix init and backups * file models * more versions * dependencies * config except dynamic types * clean up config * remove disabled from non-dynamic vaues * actions * standardize example code block formats * wip: actions refactor Co-authored-by: Jade <Blu-J@users.noreply.github.com> * commit types * fix types * update types * update action request type * update apis * add description to actionrequest * clean up imports * revert package json * chore: Remove the recursive to the index * chore: Remove the other thing I was testing * flatten action requests * update container runtime with new config paradigm * new actions strategy * seems to be working * misc backend fixes * fix fe bugs * only show breakages if breakages * only show success modal if result * don't panic on failed removal * hide config from actions page * polyfill autoconfig * use metadata strategy for actions instead of prev * misc fixes * chore: split the sdk into 2 libs (#2736) * follow sideload progress (#2718) * follow sideload progress * small bugfix * shareReplay with no refcount false * don't wrap sideload progress in RPCResult * dont present toast --------- Co-authored-by: Aiden McClelland <me@drbonez.dev> * chore: Add the initial of the creation of the two sdk * chore: Add in the baseDist * chore: Add in the baseDist * chore: Get the web and the runtime-container running * chore: Remove the empty file * chore: Fix it so the container-runtime works --------- Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com> Co-authored-by: Aiden McClelland <me@drbonez.dev> * misc fixes * update todos * minor clean up * fix link script * update node version in CI test * fix node version syntax in ci build * wip: fixing callbacks * fix sdk makefile dependencies * add support for const outside of main * update apis * don't panic! * Chore: Capture weird case on rpc, and log that * fix procedure id issue * pass input value for dep auto config * handle disabled and warning for actions * chore: Fix for link not having node_modules * sdk fixes * fix build * fix build * fix build --------- Co-authored-by: Matt Hill <mattnine@protonmail.com> Co-authored-by: Jade <Blu-J@users.noreply.github.com> Co-authored-by: J H <dragondef@gmail.com> Co-authored-by: Jade <2364004+Blu-J@users.noreply.github.com> Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
112 lines
3.5 KiB
TypeScript
112 lines
3.5 KiB
TypeScript
import { Effects } from "../../../base/lib/types"
|
|
import { extractJsonPath } from "../../../base/lib/util/PathBuilder"
|
|
import { StartSdk } from "../StartSdk"
|
|
|
|
type Store = {
|
|
inputSpec: {
|
|
someValue: "a" | "b"
|
|
}
|
|
}
|
|
type Manifest = any
|
|
const todo = <A>(): A => {
|
|
throw new Error("not implemented")
|
|
}
|
|
const noop = () => {}
|
|
|
|
const sdk = StartSdk.of()
|
|
.withManifest({} as Manifest)
|
|
.withStore<Store>()
|
|
.build(true)
|
|
|
|
const storePath = sdk.StorePath
|
|
|
|
describe("Store", () => {
|
|
test("types", async () => {
|
|
;async () => {
|
|
sdk.store.setOwn(todo<Effects>(), storePath.inputSpec, {
|
|
someValue: "a",
|
|
})
|
|
sdk.store.setOwn(todo<Effects>(), storePath.inputSpec.someValue, "b")
|
|
sdk.store.setOwn(todo<Effects>(), storePath, {
|
|
inputSpec: { someValue: "b" },
|
|
})
|
|
sdk.store.setOwn(
|
|
todo<Effects>(),
|
|
storePath.inputSpec.someValue,
|
|
|
|
// @ts-expect-error Type is wrong for the setting value
|
|
5,
|
|
)
|
|
sdk.store.setOwn(
|
|
todo<Effects>(),
|
|
// @ts-expect-error Path is wrong
|
|
"/inputSpec/someVae3lue",
|
|
"someValue",
|
|
)
|
|
|
|
todo<Effects>().store.set<Store>({
|
|
path: extractJsonPath(storePath.inputSpec.someValue),
|
|
value: "b",
|
|
})
|
|
todo<Effects>().store.set<Store, "/inputSpec/some2Value">({
|
|
path: extractJsonPath(storePath.inputSpec.someValue),
|
|
//@ts-expect-error Path is wrong
|
|
value: "someValueIn",
|
|
})
|
|
;(await sdk.store
|
|
.getOwn(todo<Effects>(), storePath.inputSpec.someValue)
|
|
.const()) satisfies string
|
|
;(await sdk.store
|
|
.getOwn(todo<Effects>(), storePath.inputSpec)
|
|
.const()) satisfies Store["inputSpec"]
|
|
await sdk.store // @ts-expect-error Path is wrong
|
|
.getOwn(todo<Effects>(), "/inputSpec/somdsfeValue")
|
|
.const()
|
|
/// ----------------- ERRORS -----------------
|
|
|
|
sdk.store.setOwn(todo<Effects>(), storePath, {
|
|
// @ts-expect-error Type is wrong for the setting value
|
|
inputSpec: { someValue: "notInAOrB" },
|
|
})
|
|
sdk.store.setOwn(
|
|
todo<Effects>(),
|
|
sdk.StorePath.inputSpec.someValue,
|
|
// @ts-expect-error Type is wrong for the setting value
|
|
"notInAOrB",
|
|
)
|
|
;(await sdk.store
|
|
.getOwn(todo<Effects>(), storePath.inputSpec.someValue)
|
|
.const()) satisfies string
|
|
;(await sdk.store
|
|
.getOwn(todo<Effects>(), storePath.inputSpec)
|
|
.const()) satisfies Store["inputSpec"]
|
|
await sdk.store // @ts-expect-error Path is wrong
|
|
.getOwn("/inputSpec/somdsfeValue")
|
|
.const()
|
|
|
|
///
|
|
;(await sdk.store
|
|
.getOwn(todo<Effects>(), storePath.inputSpec.someValue)
|
|
// @ts-expect-error satisfies type is wrong
|
|
.const()) satisfies number
|
|
await sdk.store // @ts-expect-error Path is wrong
|
|
.getOwn(todo<Effects>(), extractJsonPath(storePath.inputSpec))
|
|
.const()
|
|
;(await todo<Effects>().store.get({
|
|
path: extractJsonPath(storePath.inputSpec.someValue),
|
|
callback: noop,
|
|
})) satisfies string
|
|
await todo<Effects>().store.get<Store, "/inputSpec/someValue">({
|
|
// @ts-expect-error Path is wrong as in it doesn't match above
|
|
path: "/inputSpec/someV2alue",
|
|
callback: noop,
|
|
})
|
|
await todo<Effects>().store.get<Store, "/inputSpec/someV2alue">({
|
|
// @ts-expect-error Path is wrong as in it doesn't exists in wrapper type
|
|
path: "/inputSpec/someV2alue",
|
|
callback: noop,
|
|
})
|
|
}
|
|
})
|
|
})
|