UNPKG

@zodiac-ui/ng-observable

Version:

Create powerful reactive components with Angular. AoT compatible and Ivy ready.

35 lines 3.01 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { filter, take } from "rxjs/operators"; import { isObservable } from "rxjs"; /** * @template U, V * @param {?} source * @param {?} name * @param {?=} once * @param {?=} pipes * @return {?} */ export function createLifecycleHook(source, name, once, pipes) { if (pipes === void 0) { pipes = [filter((/** * @param {?} inst * @return {?} */ function (inst) { return inst === source; }))]; } /** @type {?} */ var hook = source[name]; if (once) { pipes.push(take(1)); } if (isObservable(hook)) { return ((/** @type {?} */ (hook))).pipe.apply(((/** @type {?} */ (hook))), tslib_1.__spread(pipes)); } else { console.error(name + " is not an observable! Error context: ", source); throw new Error(); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWxpZmVjeWNsZS1ob29rLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHpvZGlhYy11aS9uZy1vYnNlcnZhYmxlLyIsInNvdXJjZXMiOlsibGliL2ludGVybmFscy9jcmVhdGUtbGlmZWN5Y2xlLWhvb2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUE7Ozs7Ozs7OztBQUVuQyxNQUFNLFVBQVUsbUJBQW1CLENBQy9CLE1BQVMsRUFDVCxJQUFPLEVBQ1AsSUFBYyxFQUNkLEtBQXlDO0lBQXpDLHNCQUFBLEVBQUEsU0FBUyxNQUFNOzs7O1FBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLEtBQUssTUFBTSxFQUFmLENBQWUsRUFBQyxDQUFDOztRQUVuQyxJQUFJLEdBQVEsTUFBTSxDQUFDLElBQUksQ0FBQztJQUU5QixJQUFJLElBQUksRUFBRTtRQUNOLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7S0FDdEI7SUFFRCxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNwQixPQUFPLENBQUMsbUJBQUssSUFBSSxFQUFBLENBQUMsQ0FBQyxJQUFJLE9BQWhCLENBQUMsbUJBQUssSUFBSSxFQUFBLENBQUMsbUJBQVMsS0FBSyxHQUFDO0tBQ3BDO1NBQU07UUFDSCxPQUFPLENBQUMsS0FBSyxDQUFJLElBQUksMkNBQXdDLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDdEUsTUFBTSxJQUFJLEtBQUssRUFBRSxDQUFBO0tBQ3BCO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbHRlciwgdGFrZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiXHJcbmltcG9ydCB7IGlzT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCJcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMaWZlY3ljbGVIb29rPFUgZXh0ZW5kcyB7IFtrZXkgaW4gVl06IGFueSB9LCBWIGV4dGVuZHMgc3RyaW5nPihcclxuICAgIHNvdXJjZTogVSxcclxuICAgIG5hbWU6IFYsXHJcbiAgICBvbmNlPzogYm9vbGVhbixcclxuICAgIHBpcGVzID0gW2ZpbHRlcihpbnN0ID0+IGluc3QgPT09IHNvdXJjZSldLFxyXG4pIHtcclxuICAgIGNvbnN0IGhvb2s6IGFueSA9IHNvdXJjZVtuYW1lXVxyXG5cclxuICAgIGlmIChvbmNlKSB7XHJcbiAgICAgICAgcGlwZXMucHVzaCh0YWtlKDEpKVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChpc09ic2VydmFibGUoaG9vaykpIHtcclxuICAgICAgICByZXR1cm4gKDxhbnk+aG9vaykucGlwZSguLi5waXBlcylcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihgJHtuYW1lfSBpcyBub3QgYW4gb2JzZXJ2YWJsZSEgRXJyb3IgY29udGV4dDogYCwgc291cmNlKVxyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcigpXHJcbiAgICB9XHJcbn1cclxuIl19