##// END OF EJS Templates
added pipe method to observable
added pipe method to observable

File last commit:

r109:4a375b9c654a default
r114:e9a9ed6d7647 v1.5.0 default
Show More
Scope.ts
42 lines | 1.2 KiB | video/mp2t | TypeScriptLexer
cin
Added Renderer, WatchRendition
r94 import { IDestroyable, IRemovable } from "@implab/core-amd/interfaces";
import { isDestroyable, isRemovable } from "@implab/core-amd/safe";
cin
`Subscribable` is made compatible with rxjs, added map, filter and scan...
r102 import { isUnsubsribable, Unsubscribable } from "../observable";
cin
Added Renderer, WatchRendition
r94
export interface IScope {
cin
`Subscribable` is made compatible with rxjs, added map, filter and scan...
r102 own(target: (() => void) | IDestroyable | IRemovable | Unsubscribable): void;
cin
Added Renderer, WatchRendition
r94 }
export class Scope implements IDestroyable, IScope {
private readonly _cleanup: (() => void)[] = [];
static readonly dummy: IScope = { own() { } };
cin
`Subscribable` is made compatible with rxjs, added map, filter and scan...
r102 own(target: (() => void) | IDestroyable | IRemovable | Unsubscribable) {
cin
Added Renderer, WatchRendition
r94 if (target instanceof Function) {
this._cleanup.push(target);
} else if (isDestroyable(target)) {
this._cleanup.push(() => target.destroy());
} else if (isRemovable(target)) {
this._cleanup.push(() => target.remove());
cin
`Subscribable` is made compatible with rxjs, added map, filter and scan...
r102 } else if (isUnsubsribable(target)) {
this._cleanup.push(() => target.unsubscribe());
cin
Added Renderer, WatchRendition
r94 }
}
clean() {
const guard = (cb: () => void) => {
try {
cb();
} catch {
// guard
}
cin
linting
r109 };
cin
Added Renderer, WatchRendition
r94
this._cleanup.forEach(guard);
this._cleanup.length = 0;
}
destroy() {
this.clean();
}
}