feat: Auto config figure out type

This commit is contained in:
BluJ
2023-05-09 15:10:28 -06:00
parent 021c4d4503
commit 86cee9e788
3 changed files with 42 additions and 21 deletions

View File

@@ -69,7 +69,7 @@ export class StartSdk<Manifest extends SDKManifest, Store> {
build(isReady: AnyNeverCond<[Manifest, Store], "Build not ready", true>) {
return {
AutoConfig: <Input, NestedConfigs>(
AutoConfig: <Input, NestedConfigs extends Record<string, any>>(
configs: AutoConfigFrom<Store, Input, NestedConfigs>,
path: keyof AutoConfigFrom<Store, Input, NestedConfigs>,
) => new AutoConfig<Store, Input, NestedConfigs>(configs, path),
@@ -196,13 +196,18 @@ export class StartSdk<Manifest extends SDKManifest, Store> {
setupActions: (...createdActions: CreatedAction<any, any>[]) =>
setupActions<Store>(...createdActions),
setupAutoConfig: <
Input,
Input extends Record<string, any>,
NestedConfigs extends {
[key in keyof Manifest["dependencies"]]: unknown
},
>(
configs: AutoConfigFrom<Store, Input, NestedConfigs>,
) => setupAutoConfig<Store, Input, Manifest, NestedConfigs>(configs),
config: Config<Input, Store>,
autoConfigs: AutoConfigFrom<Store, Input, NestedConfigs>,
) =>
setupAutoConfig<Store, Input, Manifest, NestedConfigs>(
config,
autoConfigs,
),
setupBackups: (...args: SetupBackupsParams<Manifest>) =>
setupBackups<Manifest>(...args),
setupConfig: <