feat: creating the rest of the sdk

This commit is contained in:
BluJ
2023-05-09 11:42:26 -06:00
parent 72df4cb502
commit 07493551b1
30 changed files with 568 additions and 504 deletions

View File

@@ -1,5 +1,5 @@
import { AutoConfigure, DeepPartial, Effects, ExpectedExports } from "../types"
import { Utils, utils } from "../util"
import { Utils, utils } from "../util/utils"
import { deepEqual } from "../util/deepEqual"
import { deepMerge } from "../util/deepMerge"

View File

@@ -1,28 +1,24 @@
import { SDKManifest } from "../manifest/ManifestTypes"
import { WrapperDataContract } from "../wrapperData/wrapperDataContract"
import { AutoConfig, AutoConfigFrom } from "./AutoConfig"
export function setupAutoConfig<
WD,
Store,
Input,
Manifest extends SDKManifest,
NestedConfigs extends {
[key in keyof Manifest["dependencies"]]: unknown
},
>(
wrapperDataContract: WrapperDataContract<WD>,
configs: AutoConfigFrom<WD, Input, NestedConfigs>,
) {
>(configs: AutoConfigFrom<Store, Input, NestedConfigs>) {
type C = typeof configs
const answer = { ...configs } as unknown as {
[k in keyof C]: AutoConfig<WD, Input, NestedConfigs>
[k in keyof C]: AutoConfig<Store, Input, NestedConfigs>
}
for (const key in configs) {
answer[key as keyof typeof configs] = new AutoConfig<
WD,
Store,
Input,
NestedConfigs
>(wrapperDataContract, configs, key as keyof typeof configs)
>(configs, key as keyof typeof configs)
}
return answer
}