let is_running_wrapper = target_function => {
return (...args: any) => {
if (this.is_running_pause) {
return;
}
let result;
this.is_running_pause = true;
try {
result = target_function(...args);
} catch (error) {
this.is_running_pause = false;
throw error;
}
this.is_running_pause = false;
return result;
};
}
let wrapped_pause = is_running_wrapper(auto_pause);
- https://stackoverflow.com/questions/2141520/javascript-variable-number-of-arguments-to-function
- https://stackoverflow.com/questions/12697275/open-ended-function-arguments-with-typescript
- https://javascript.info/call-apply-decorators
- https://stackoverflow.com/questions/31771856/decorators-on-functions
- https://stackoverflow.com/questions/3734236/how-can-i-rethrow-an-exception-in-javascript-but-preserve-the-stack
- https://www.typescriptlang.org/docs/handbook/decorators.html