UNPKG

monaco-editor

Version:
56 lines (55 loc) 1.6 kB
export function isDisposable(thing) { return typeof thing.dispose === 'function' && thing.dispose.length === 0; } export function dispose(first) { var rest = []; for (var _i = 1; _i < arguments.length; _i++) { rest[_i - 1] = arguments[_i]; } if (Array.isArray(first)) { first.forEach(function (d) { return d && d.dispose(); }); return []; } else if (rest.length === 0) { if (first) { first.dispose(); return first; } return undefined; } else { dispose(first); dispose(rest); return []; } } export function combinedDisposable(disposables) { return { dispose: function () { return dispose(disposables); } }; } export function toDisposable(fn) { return { dispose: function () { fn(); } }; } var Disposable = /** @class */ (function () { function Disposable() { this._toDispose = []; } Disposable.prototype.dispose = function () { this._toDispose = dispose(this._toDispose); }; Disposable.prototype._register = function (t) { this._toDispose.push(t); return t; }; Disposable.None = Object.freeze({ dispose: function () { } }); return Disposable; }()); export { Disposable }; var ImmortalReference = /** @class */ (function () { function ImmortalReference(object) { this.object = object; } ImmortalReference.prototype.dispose = function () { }; return ImmortalReference; }()); export { ImmortalReference };