function declare(message: string | Function) {
return function(_target, propName, descriptor) {
const orFn = descriptor.value;
descriptor.value = function(...args) {
message = typeof message === 'function' ? message(
this.name) : message;
console.log(message);
console.log('ARGS: ', ...args);
const result =
orFn.call(this, ...args)
console.log('RESULT: ', result)
return result;
}
return descriptor;
}
}