import { isString } from 'util'; import { ConfigSettingsArgs } from '../types'; import { ProfilesFileConfigNodeBase } from './ProfilesFileConfigNodeBase'; import { ConfigNodeInheritedNodesArg, FileConfigNodeArgs, FileConfigPropertyNodeFactoryArgs, ProfileFileConfigNodeOptions, } from './types'; export class ProfilesFileConfigNode extends ProfilesFileConfigNodeBase { public static async create( args: FileConfigNodeArgs ): Promise>; public static async create( path: string, initialValue?: ConfigSettingsArgs, inheritedNodes?: ConfigNodeInheritedNodesArg, options?: ProfileFileConfigNodeOptions ): Promise>; public static async create( argsOrPath: FileConfigNodeArgs | string, initialValue?: ConfigSettingsArgs, inheritedNodes?: ConfigNodeInheritedNodesArg, options?: ProfileFileConfigNodeOptions ): Promise> { const args: FileConfigNodeArgs = (isString(argsOrPath) ? { inheritedNodes, initialValue, options, path: argsOrPath, } : argsOrPath) as FileConfigNodeArgs; const node = new ProfilesFileConfigNode(args); await node.init(); return node; } private constructor( args: | FileConfigPropertyNodeFactoryArgs | FileConfigNodeArgs ) { super(args); } }