UNPKG

@zodiac-ui/ng-observable

Version:

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

33 lines 2.81 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWxpZmVjeWNsZS1ob29rLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHpvZGlhYy11aS9uZy1vYnNlcnZhYmxlL29wZXJhdG9ycy8iLCJzb3VyY2VzIjpbImxpYi9pbnRlcm5hbHMvY3JlYXRlLWxpZmVjeWNsZS1ob29rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUE7Ozs7Ozs7OztBQUVuQyxNQUFNLFVBQVUsbUJBQW1CLENBQy9CLE1BQVMsRUFDVCxJQUFPLEVBQ1AsSUFBYyxFQUNkLEtBQUssR0FBRyxDQUFDLE1BQU07Ozs7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUMsQ0FBQzs7VUFFbkMsSUFBSSxHQUFRLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFFOUIsSUFBSSxJQUFJLEVBQUU7UUFDTixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ3RCO0lBRUQsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDcEIsT0FBTyxDQUFDLG1CQUFLLElBQUksRUFBQSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUE7S0FDcEM7U0FBTTtRQUNILE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLHdDQUF3QyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQ3RFLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQTtLQUNwQjtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaWx0ZXIsIHRha2UgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIlxyXG5pbXBvcnQgeyBpc09ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTGlmZWN5Y2xlSG9vazxVIGV4dGVuZHMgeyBba2V5IGluIFZdOiBhbnkgfSwgViBleHRlbmRzIHN0cmluZz4oXHJcbiAgICBzb3VyY2U6IFUsXHJcbiAgICBuYW1lOiBWLFxyXG4gICAgb25jZT86IGJvb2xlYW4sXHJcbiAgICBwaXBlcyA9IFtmaWx0ZXIoaW5zdCA9PiBpbnN0ID09PSBzb3VyY2UpXSxcclxuKSB7XHJcbiAgICBjb25zdCBob29rOiBhbnkgPSBzb3VyY2VbbmFtZV1cclxuXHJcbiAgICBpZiAob25jZSkge1xyXG4gICAgICAgIHBpcGVzLnB1c2godGFrZSgxKSlcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaXNPYnNlcnZhYmxlKGhvb2spKSB7XHJcbiAgICAgICAgcmV0dXJuICg8YW55Pmhvb2spLnBpcGUoLi4ucGlwZXMpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYCR7bmFtZX0gaXMgbm90IGFuIG9ic2VydmFibGUhIEVycm9yIGNvbnRleHQ6IGAsIHNvdXJjZSlcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKVxyXG4gICAgfVxyXG59XHJcbiJdfQ==