UNPKG

@teambit/harmony

Version:
23 lines (17 loc) 565 B
import { Extension } from './extension/extension'; export default class Container { constructor(private instances = new Map()) {} register<AnyExtension>(token: string, instance: AnyExtension) { this.instances.set(token, instance); } resolve<AnyExtension>(token: string) { return this.instances.get(token); } static loadWith(defaults: Extension[]) { const extensionMap = new Map(defaults.map(extension => [extension.name, extension])); return new Container(extensionMap); } } // A -> B -> C // A -> C // instantiate A then B and C