feat: Making the auto config

This commit is contained in:
BluJ
2023-05-10 16:30:42 -06:00
parent 33da2322b0
commit cdf42ca3b6
7 changed files with 126 additions and 69 deletions

View File

@@ -1,30 +1,22 @@
import { Config } from "../config/builder/config"
import { SDKManifest } from "../manifest/ManifestTypes"
import { AutoConfig, AutoConfigFrom } from "./AutoConfig"
import { AutoConfig } from "./AutoConfig"
export function setupAutoConfig<
Store,
Vault,
Input extends Record<string, any>,
Manifest extends SDKManifest,
NestedConfigs extends {
[key in keyof Manifest["dependencies"]]: unknown
},
>(
_config: Config<Input, Store, Vault>,
autoConfigs: AutoConfigFrom<Store, Vault, Input, NestedConfigs>,
) {
type C = typeof autoConfigs
const answer = { ...autoConfigs } as unknown as {
[k in keyof C]: AutoConfig<Store, Vault, Input, NestedConfigs>
}
for (const key in autoConfigs) {
answer[key as keyof typeof autoConfigs] = new AutoConfig<
autoConfigs: {
[key in keyof Manifest["dependencies"] & string]: AutoConfig<
Store,
Vault,
Input,
NestedConfigs
>(autoConfigs, key as keyof typeof autoConfigs)
}
return answer
any
>
},
) {
return autoConfigs
}