import * as assert from 'assert'; import { IWrap } from '../wrap'; export class ContainerWrap { protected readonly map: Map> = new Map(); constructor(public readonly ref: T) { } public get>(key: string): R { assert(this.map.has(key), `Unknown implementation key "${key}"`); return this.map.get(key)! as R; } }