import { RhamtConfiguration } from 'raas-core'; import { Editor } from './editor'; import { EditorClientController } from './editorClientController'; import { EditorDelegate } from './editorDelegate'; import { RaasClient } from 'raas-client'; export class EditorService { private controllers: Map = new Map(); private connectIdSeq: number = 0; connect(config: RhamtConfiguration, delegate: EditorDelegate, raasClient: RaasClient): void { const id = String(this.connectIdSeq++); const editor = new Editor(id, config, delegate); const controller = new EditorClientController(config, editor, raasClient); this.controllers.set(id, controller); delegate.onDisposed.on(() => { this.controllers.delete(id); }); delegate.listen(); } }