mirror of
https://github.com/Start9Labs/start-sdk.git
synced 2026-03-26 18:31:54 +00:00
25 lines
683 B
TypeScript
25 lines
683 B
TypeScript
import { GenericManifest } from "../manifest/ManifestTypes";
|
|
import { AutoConfig, AutoConfigFrom } from "./AutoConfig";
|
|
|
|
export function setupAutoConfig<
|
|
WD,
|
|
Input,
|
|
Manifest extends GenericManifest,
|
|
NestedConfigs extends {
|
|
[key in keyof Manifest["dependencies"]]: unknown;
|
|
},
|
|
>(configs: AutoConfigFrom<WD, Input, NestedConfigs>) {
|
|
type C = typeof configs;
|
|
const answer = { ...configs } as unknown as {
|
|
[k in keyof C]: AutoConfig<WD, Input, NestedConfigs>;
|
|
};
|
|
for (const key in configs) {
|
|
answer[key as keyof typeof configs] = new AutoConfig<
|
|
WD,
|
|
Input,
|
|
NestedConfigs
|
|
>(configs, key as keyof typeof configs);
|
|
}
|
|
return answer;
|
|
}
|