ngx-base-state
Version:
Base classes for creation state service via Rxjs observable
14 lines • 2.51 kB
JavaScript
const tryDoActionMethodName = 'tryDoAction';
const actionLikeInvokedMethodName = '_onActionLikeInvoked';
const actionLikeInvokeEndMethodName = '_onActionLikeInvokeEnd';
export function patchedActionFunction(actionName, actionFunction) {
return function innerFunction(...args) {
return this[tryDoActionMethodName](actionName, () => {
this[actionLikeInvokedMethodName](actionName);
const originalMethodResult = actionFunction.apply(this, args);
this[actionLikeInvokeEndMethodName]();
return originalMethodResult;
});
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2hlZC1hY3Rpb24uZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saWJyYXJ5L3NyYy9saWIvZnVuY3Rpb25zL3BhdGNoZWQtYWN0aW9uLmZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0scUJBQXFCLEdBQUcsYUFBYSxDQUFDO0FBQzVDLE1BQU0sMkJBQTJCLEdBQUcsc0JBQXNCLENBQUM7QUFDM0QsTUFBTSw2QkFBNkIsR0FBRyx3QkFBd0IsQ0FBQztBQUUvRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsVUFBa0IsRUFBRSxjQUF3QjtJQUM5RSxPQUFPLFNBQVMsYUFBYSxDQUE2QixHQUFHLElBQWU7UUFDeEUsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO1lBQ2hELElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRTlDLE1BQU0sb0JBQW9CLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFFOUQsSUFBSSxDQUFDLDZCQUE2QixDQUFDLEVBQUUsQ0FBQztZQUV0QyxPQUFPLG9CQUFvQixDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHRyeURvQWN0aW9uTWV0aG9kTmFtZSA9ICd0cnlEb0FjdGlvbic7XHJcbmNvbnN0IGFjdGlvbkxpa2VJbnZva2VkTWV0aG9kTmFtZSA9ICdfb25BY3Rpb25MaWtlSW52b2tlZCc7XHJcbmNvbnN0IGFjdGlvbkxpa2VJbnZva2VFbmRNZXRob2ROYW1lID0gJ19vbkFjdGlvbkxpa2VJbnZva2VFbmQnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHBhdGNoZWRBY3Rpb25GdW5jdGlvbihhY3Rpb25OYW1lOiBzdHJpbmcsIGFjdGlvbkZ1bmN0aW9uOiBGdW5jdGlvbik6IHVua25vd24ge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGlubmVyRnVuY3Rpb24odGhpczogdHlwZW9mIGlubmVyRnVuY3Rpb24sIC4uLmFyZ3M6IHVua25vd25bXSk6IHVua25vd24ge1xyXG4gICAgICAgIHJldHVybiB0aGlzW3RyeURvQWN0aW9uTWV0aG9kTmFtZV0oYWN0aW9uTmFtZSwgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzW2FjdGlvbkxpa2VJbnZva2VkTWV0aG9kTmFtZV0oYWN0aW9uTmFtZSk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbE1ldGhvZFJlc3VsdCA9IGFjdGlvbkZ1bmN0aW9uLmFwcGx5KHRoaXMsIGFyZ3MpO1xyXG5cclxuICAgICAgICAgICAgdGhpc1thY3Rpb25MaWtlSW52b2tlRW5kTWV0aG9kTmFtZV0oKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbE1ldGhvZFJlc3VsdDtcclxuICAgICAgICB9KTtcclxuICAgIH07XHJcbn1cclxuIl19