Register all event emitters, make some services disposable

This commit is contained in:
Daniel Imms
2022-10-08 09:00:14 -07:00
parent f61d8c91a3
commit 00f6d3a88c
18 changed files with 89 additions and 76 deletions
+4 -2
View File
@@ -5,19 +5,21 @@
import { IUnicodeService, IUnicodeVersionProvider } from 'common/services/Services';
import { EventEmitter, IEvent } from 'common/EventEmitter';
import { UnicodeV6 } from 'common/input/UnicodeV6';
import { Disposable } from 'common/Lifecycle';
export class UnicodeService implements IUnicodeService {
export class UnicodeService extends Disposable implements IUnicodeService {
public serviceBrand: any;
private _providers: {[key: string]: IUnicodeVersionProvider} = Object.create(null);
private _active: string = '';
private _activeProvider: IUnicodeVersionProvider;
private readonly _onChange = new EventEmitter<string>();
private readonly _onChange = super.register(new EventEmitter<string>();
public readonly onChange = this._onChange.event;
constructor() {
super();
const defaultProvider = new UnicodeV6();
this.register(defaultProvider);
this._active = defaultProvider.version;