UNPKG

@comake/skl-js-engine

Version:

Standard Knowledge Language Javascript Engine

15 lines (13 loc) 500 B
export type Namespace<T extends string, TBase extends string> = { [key in T]: `${TBase}${key}`; }; export function createNamespace<T extends string, TBase extends string>( baseUri: TBase, localNames: T[] ): Namespace<T, TBase> { return localNames.reduce( (obj: Namespace<T, TBase>, localName): Namespace<T, TBase> => ({ ...obj, [localName]: `${baseUri}${localName}` }), // eslint-disable-next-line @typescript-eslint/prefer-reduce-type-parameter {} as Namespace<T, TBase> ); }