@web-atoms/core
Version:
25 lines (19 loc) • 511 B
text/typescript
import { IDisposable } from "./types";
export default abstract class TransientDisposable implements IDisposable {
constructor(owner?: any) {
if (owner) {
this.registerIn(owner);
}
}
public abstract dispose();
public registerIn(value: any) {
const v = value.disposables;
if (v) {
v.push(this);
} else {
if (value.registerDisposable) {
value.registerDisposable(this);
}
}
}
}