@triviality/core
Version:
Purely typed service container
13 lines (12 loc) • 830 B
TypeScript
import { Registry } from './Registry';
export declare const REGISTER_MAP_ARGUMENTS: unique symbol;
export declare type RegistryMap<TType, TKey = string> = ImmutableRegistryMap<TType, TKey>;
export declare function makeImmutableRegistryMap<TType, TKey = string>(...services: [TKey, TType][]): ImmutableRegistryMap<TType, TKey>;
export declare class ImmutableRegistryMap<TType, TKey = string> extends Array<[TKey, TType]> implements Registry<[TKey, TType]> {
static create<TType, TKey = string>(...items: [TKey, TType][]): ImmutableRegistryMap<TType, TKey>;
[REGISTER_MAP_ARGUMENTS]: [TType, TKey];
private constructor();
register(...services: [TKey, TType][]): ImmutableRegistryMap<TType, TKey>;
toArray(): [TKey, TType][];
toObject(): TKey extends string | symbol | number ? Record<TKey, TType> : never;
}