import { ConfigSettingsArgs } from '../types'; import { isConfigNodeArgs } from './lib'; import { ProfilesConfigNodeBase } from './ProfilesConfigNodeBase'; import { ConfigNodeArgs, ConfigNodeInheritedNodesArg, ConfigNodePropertyFactory, ProfileConfigNodeOptions, } from './types'; /** * */ export class ProfilesConfigNode extends ProfilesConfigNodeBase { public static async create(args: ConfigNodeArgs): Promise; public static async create( initialValue?: ConfigSettingsArgs, inheritedNodes?: ConfigNodeInheritedNodesArg, options?: ProfileConfigNodeOptions ): Promise; public static async create( argsOrInitialValue: ConfigNodeArgs | ConfigSettingsArgs, inheritedNodes?: ConfigNodeInheritedNodesArg, options?: ProfileConfigNodeOptions ): Promise { const args: ConfigNodeArgs = (isConfigNodeArgs(argsOrInitialValue) ? argsOrInitialValue : { inheritedNodes, initialValue: argsOrInitialValue, options, }) as ConfigNodeArgs; const node = new ProfilesConfigNode(args); await node.init(); return node; } protected get defaultPropertyNodeFactory(): ConfigNodePropertyFactory { return ProfilesConfigNode.create; } private constructor(args: ConfigNodeArgs) { super(args); } }