import {AssemblersMap} from './All'; import {BaseAssemblersRegister, AssemblerName} from './_BaseRegister'; import {BaseNodeType} from '../../../nodes/_Base'; export class AssemblersRegister extends BaseAssemblersRegister { assembler(node: BaseNodeType, name: K): AssemblersMap[K]['controller'] | undefined { const pair = this._controller_assembler_by_name.get(name as AssemblerName); if (pair) { const controller = pair.controller; const assembler = pair.assembler; return new controller(node, assembler); } return pair; } unregister(name: K) { const pair = this._controller_assembler_by_name.get(name as AssemblerName); super.unregister(name as AssemblerName); return pair; } }