chore: Update migrations with manifest

This commit is contained in:
BluJ
2023-05-09 14:22:40 -06:00
parent 90d1caa3ce
commit f5f8581233

View File

@@ -1,4 +1,3 @@
import { AnyParser } from "ts-matches"
import { ManifestVersion, SDKManifest } from "./manifest/ManifestTypes" import { ManifestVersion, SDKManifest } from "./manifest/ManifestTypes"
import { RequiredDefault, Value } from "./config/builder/value" import { RequiredDefault, Value } from "./config/builder/value"
import { Config, ExtractConfigType, LazyBuild } from "./config/builder/config" import { Config, ExtractConfigType, LazyBuild } from "./config/builder/config"
@@ -57,15 +56,15 @@ type AnyNeverCond<T extends any[], Then, Else> =
never never
export class StartSdk<Manifest extends SDKManifest, Store> { export class StartSdk<Manifest extends SDKManifest, Store> {
private constructor() {} private constructor(readonly manifest: Manifest) {}
static of() { static of() {
return new StartSdk<never, never>() return new StartSdk<never, never>(null as never)
} }
withManifest<Manifest extends SDKManifest = never>() { withManifest<Manifest extends SDKManifest = never>(manifest: Manifest) {
return new StartSdk<Manifest, Store>() return new StartSdk<Manifest, Store>(manifest)
} }
withStore<Store extends Record<string, any>>() { withStore<Store extends Record<string, any>>() {
return new StartSdk<Manifest, Store>() return new StartSdk<Manifest, Store>(this.manifest)
} }
build(isReady: AnyNeverCond<[Manifest, Store], "Build not ready", true>) { build(isReady: AnyNeverCond<[Manifest, Store], "Build not ready", true>) {
@@ -231,9 +230,8 @@ export class StartSdk<Manifest extends SDKManifest, Store> {
}) => Promise<Daemons<any>>, }) => Promise<Daemons<any>>,
) => setupMain<Store>(fn), ) => setupMain<Store>(fn),
setupMigrations: <Migrations extends Array<Migration<Store, any>>>( setupMigrations: <Migrations extends Array<Migration<Store, any>>>(
manifest: SDKManifest,
...migrations: EnsureUniqueId<Migrations> ...migrations: EnsureUniqueId<Migrations>
) => setupMigrations<Store, Migrations>(manifest, ...migrations), ) => setupMigrations<Store, Migrations>(this.manifest, ...migrations),
setupUninstall: (fn: UninstallFn<Store>) => setupUninstall<Store>(fn), setupUninstall: (fn: UninstallFn<Store>) => setupUninstall<Store>(fn),
trigger: { trigger: {
defaultTrigger, defaultTrigger,