UNPKG

ngx-decorate

Version:

Useful decorators for Angular 2 and above

31 lines 1.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ensureSymbol_1 = require("./lib/ensureSymbol"); const HookManager_1 = require("./lib/HookManager"); const symbols_1 = require("./lib/symbols"); const lazy_subject_1 = require("./processors/lazy-subject"); /** * Decorate a getter that returns a subject. The subject will automatically get completed * when the component/service/pipe is destroyed. */ function LazySubject() { return (_target, key, desc) => { const orig = desc.get; if (!orig) { throw new Error('LazySubject can only decorate getters'); } desc.get = function () { const value = orig.apply(this, arguments); Object.defineProperty(this, key, { configurable: true, enumerable: desc.enumerable, value }); ensureSymbol_1.ensureSymbol(this, symbols_1._lazySubj, []).push(value); return value; }; HookManager_1.HookManager.for(_target).add(3 /* POST_DESTROY */, lazy_subject_1.lazySubj); }; } exports.LazySubject = LazySubject; //# sourceMappingURL=LazySubject.js.map