ngx-until-on-destroy
Version:
Allow you unsubscribe subscriptions when component was destroying. Can be used with Angular 5-10
18 lines • 2.76 kB
JavaScript
import { decorateMethod } from './decorate-method';
import { VERSION } from '@angular/core';
function getViewEngineError(hookName, constructorName) {
return new Error(`You have to implements ${hookName} in component (or directive) ${constructorName}`);
}
export function wrapViewEngineHook({ target, hookName, oldName, wrappingFn }) {
const veHookName = 'ng' + hookName;
if (!target[veHookName] && +VERSION.major < 9) {
throw getViewEngineError(veHookName, target.constructor.name);
}
target[veHookName] = decorateMethod({
target,
hookName: veHookName,
oldName,
wrappingFn
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1lbmdpbmUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvd2lzZW1hbi9qcy9uZ3gtdW50aWwtb24tZGVzdHJveS9wcm9qZWN0cy9uZ3gtdW50aWwtb24tZGVzdHJveS9zcmMvIiwic291cmNlcyI6WyJsaWIvdmlldy1lbmdpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsU0FBUyxrQkFBa0IsQ0FBQyxRQUFnQixFQUFFLGVBQXVCO0lBQ25FLE9BQU8sSUFBSSxLQUFLLENBQUMsMEJBQTBCLFFBQVEsZ0NBQWdDLGVBQWUsRUFBRSxDQUFDLENBQUM7QUFDeEcsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsRUFDRSxNQUFNLEVBQ04sUUFBUSxFQUNSLE9BQU8sRUFDUCxVQUFVLEVBQ0k7SUFFaEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLFFBQVEsQ0FBQztJQUVuQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUU7UUFDN0MsTUFBTSxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUMvRDtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxjQUFjLENBQUM7UUFDbEMsTUFBTTtRQUNOLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLE9BQU87UUFDUCxVQUFVO0tBQ1gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlY29yYXRlTWV0aG9kIH0gZnJvbSAnLi9kZWNvcmF0ZS1tZXRob2QnO1xuaW1wb3J0IHsgV3JhcFBhcmFtcyB9IGZyb20gJy4vd3JhcC1wYXJhbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVkVSU0lPTiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5mdW5jdGlvbiBnZXRWaWV3RW5naW5lRXJyb3IoaG9va05hbWU6IHN0cmluZywgY29uc3RydWN0b3JOYW1lOiBzdHJpbmcpOiBFcnJvciB7XG4gIHJldHVybiBuZXcgRXJyb3IoYFlvdSBoYXZlIHRvIGltcGxlbWVudHMgJHtob29rTmFtZX0gaW4gY29tcG9uZW50IChvciBkaXJlY3RpdmUpICR7Y29uc3RydWN0b3JOYW1lfWApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JhcFZpZXdFbmdpbmVIb29rPFQ+KFxuICB7XG4gICAgdGFyZ2V0LFxuICAgIGhvb2tOYW1lLFxuICAgIG9sZE5hbWUsXG4gICAgd3JhcHBpbmdGblxuICB9OiBXcmFwUGFyYW1zPFQ+XG4pOiB2b2lkIHtcbiAgY29uc3QgdmVIb29rTmFtZSA9ICduZycgKyBob29rTmFtZTtcblxuICBpZiAoIXRhcmdldFt2ZUhvb2tOYW1lXSAmJiArVkVSU0lPTi5tYWpvciA8IDkpIHtcbiAgICB0aHJvdyBnZXRWaWV3RW5naW5lRXJyb3IodmVIb29rTmFtZSwgdGFyZ2V0LmNvbnN0cnVjdG9yLm5hbWUpO1xuICB9XG5cbiAgdGFyZ2V0W3ZlSG9va05hbWVdID0gZGVjb3JhdGVNZXRob2Qoe1xuICAgIHRhcmdldCxcbiAgICBob29rTmFtZTogdmVIb29rTmFtZSxcbiAgICBvbGROYW1lLFxuICAgIHdyYXBwaW5nRm5cbiAgfSk7XG59XG4iXX0=