##// END OF EJS Templates
Added childContainer service to container services, ServiceContaier is destroyable, fixed browser Uuid version
Added childContainer service to container services, ServiceContaier is destroyable, fixed browser Uuid version

File last commit:

r115:691199f665e0 ioc ts support
r146:f3f5c56d3b3e v1.4.0-rc5 default
Show More
Registry.ts
55 lines | 1.4 KiB | video/mp2t | TypeScriptLexer
cin
minor refactoring of TraceSource, code linting
r53 import { TraceSource } from "./TraceSource";
import { argumentNotNull } from "../safe";
cin
corrected code to support ts strict mode...
r115 import { IDestroyable, MapOf } from "../interfaces";
cin
minor refactoring of TraceSource, code linting
r53
export class Registry {
static readonly instance = new Registry();
cin
corrected code to support ts strict mode...
r115 private _registry: MapOf<TraceSource> = {};
private _listeners: MapOf<(source: TraceSource) => void> = {};
cin
minor refactoring of TraceSource, code linting
r53 private _nextCookie: number = 1;
cin
corrected code to support ts strict mode...
r115 get(id: string): TraceSource {
cin
minor refactoring of TraceSource, code linting
r53 argumentNotNull(id, "id");
if (this._registry[id])
return this._registry[id];
const source = new TraceSource(id);
this._registry[id] = source;
this._onNewSource(source);
return source;
}
add(id: any, source: TraceSource) {
argumentNotNull(id, "id");
argumentNotNull(source, "source");
this._registry[id] = source;
this._onNewSource(source);
}
_onNewSource(source: TraceSource) {
for (const i in this._listeners)
this._listeners[i].call(null, source);
}
on(handler: (source: TraceSource) => void): IDestroyable {
argumentNotNull(handler, "handler");
const me = this;
const cookie = this._nextCookie++;
this._listeners[cookie] = handler;
for (const i in this._registry)
handler(this._registry[i]);
return {
destroy() {
delete me._listeners[cookie];
}
};
}
}