UNPKG

@zodiac-ui/ng-observable

Version:

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

35 lines 3.02 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWxpZmVjeWNsZS1ob29rLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHpvZGlhYy11aS9uZy1vYnNlcnZhYmxlL29wZXJhdG9ycy8iLCJzb3VyY2VzIjpbImxpYi9pbnRlcm5hbHMvY3JlYXRlLWxpZmVjeWNsZS1ob29rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBOzs7Ozs7Ozs7QUFFbkMsTUFBTSxVQUFVLG1CQUFtQixDQUMvQixNQUFTLEVBQ1QsSUFBTyxFQUNQLElBQWMsRUFDZCxLQUF5QztJQUF6QyxzQkFBQSxFQUFBLFNBQVMsTUFBTTs7OztRQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxLQUFLLE1BQU0sRUFBZixDQUFlLEVBQUMsQ0FBQzs7UUFFbkMsSUFBSSxHQUFRLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFFOUIsSUFBSSxJQUFJLEVBQUU7UUFDTixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ3RCO0lBRUQsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDcEIsT0FBTyxDQUFDLG1CQUFLLElBQUksRUFBQSxDQUFDLENBQUMsSUFBSSxPQUFoQixDQUFDLG1CQUFLLElBQUksRUFBQSxDQUFDLG1CQUFTLEtBQUssR0FBQztLQUNwQztTQUFNO1FBQ0gsT0FBTyxDQUFDLEtBQUssQ0FBSSxJQUFJLDJDQUF3QyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQ3RFLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQTtLQUNwQjtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaWx0ZXIsIHRha2UgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIlxyXG5pbXBvcnQgeyBpc09ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTGlmZWN5Y2xlSG9vazxVIGV4dGVuZHMgeyBba2V5IGluIFZdOiBhbnkgfSwgViBleHRlbmRzIHN0cmluZz4oXHJcbiAgICBzb3VyY2U6IFUsXHJcbiAgICBuYW1lOiBWLFxyXG4gICAgb25jZT86IGJvb2xlYW4sXHJcbiAgICBwaXBlcyA9IFtmaWx0ZXIoaW5zdCA9PiBpbnN0ID09PSBzb3VyY2UpXSxcclxuKSB7XHJcbiAgICBjb25zdCBob29rOiBhbnkgPSBzb3VyY2VbbmFtZV1cclxuXHJcbiAgICBpZiAob25jZSkge1xyXG4gICAgICAgIHBpcGVzLnB1c2godGFrZSgxKSlcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaXNPYnNlcnZhYmxlKGhvb2spKSB7XHJcbiAgICAgICAgcmV0dXJuICg8YW55Pmhvb2spLnBpcGUoLi4ucGlwZXMpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYCR7bmFtZX0gaXMgbm90IGFuIG9ic2VydmFibGUhIEVycm9yIGNvbnRleHQ6IGAsIHNvdXJjZSlcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKVxyXG4gICAgfVxyXG59XHJcbiJdfQ==