UNPKG

@zodiac-ui/ng-observable

Version:

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

33 lines 2.8 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ 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 = [filter((/** * @param {?} inst * @return {?} */ inst => inst === source))]) { /** @type {?} */ const hook = source[name]; if (once) { pipes.push(take(1)); } if (isObservable(hook)) { return ((/** @type {?} */ (hook))).pipe(...pipes); } else { console.error(`${name} is not an observable! Error context: `, source); throw new Error(); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWxpZmVjeWNsZS1ob29rLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHpvZGlhYy11aS9uZy1vYnNlcnZhYmxlLyIsInNvdXJjZXMiOlsibGliL2ludGVybmFscy9jcmVhdGUtbGlmZWN5Y2xlLWhvb2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQTs7Ozs7Ozs7O0FBRW5DLE1BQU0sVUFBVSxtQkFBbUIsQ0FDL0IsTUFBUyxFQUNULElBQU8sRUFDUCxJQUFjLEVBQ2QsS0FBSyxHQUFHLENBQUMsTUFBTTs7OztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBQyxDQUFDOztVQUVuQyxJQUFJLEdBQVEsTUFBTSxDQUFDLElBQUksQ0FBQztJQUU5QixJQUFJLElBQUksRUFBRTtRQUNOLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7S0FDdEI7SUFFRCxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNwQixPQUFPLENBQUMsbUJBQUssSUFBSSxFQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQTtLQUNwQztTQUFNO1FBQ0gsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksd0NBQXdDLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDdEUsTUFBTSxJQUFJLEtBQUssRUFBRSxDQUFBO0tBQ3BCO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbHRlciwgdGFrZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiXHJcbmltcG9ydCB7IGlzT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCJcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMaWZlY3ljbGVIb29rPFUgZXh0ZW5kcyB7IFtrZXkgaW4gVl06IGFueSB9LCBWIGV4dGVuZHMgc3RyaW5nPihcclxuICAgIHNvdXJjZTogVSxcclxuICAgIG5hbWU6IFYsXHJcbiAgICBvbmNlPzogYm9vbGVhbixcclxuICAgIHBpcGVzID0gW2ZpbHRlcihpbnN0ID0+IGluc3QgPT09IHNvdXJjZSldLFxyXG4pIHtcclxuICAgIGNvbnN0IGhvb2s6IGFueSA9IHNvdXJjZVtuYW1lXVxyXG5cclxuICAgIGlmIChvbmNlKSB7XHJcbiAgICAgICAgcGlwZXMucHVzaCh0YWtlKDEpKVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChpc09ic2VydmFibGUoaG9vaykpIHtcclxuICAgICAgICByZXR1cm4gKDxhbnk+aG9vaykucGlwZSguLi5waXBlcylcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihgJHtuYW1lfSBpcyBub3QgYW4gb2JzZXJ2YWJsZSEgRXJyb3IgY29udGV4dDogYCwgc291cmNlKVxyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcigpXHJcbiAgICB9XHJcbn1cclxuIl19