summaryrefslogtreecommitdiff
path: root/packages/backend/src/decorators.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/backend/src/decorators.ts')
-rw-r--r--packages/backend/src/decorators.ts21
1 files changed, 7 insertions, 14 deletions
diff --git a/packages/backend/src/decorators.ts b/packages/backend/src/decorators.ts
index 21777657d1..42f925e125 100644
--- a/packages/backend/src/decorators.ts
+++ b/packages/backend/src/decorators.ts
@@ -10,8 +10,9 @@
* The getter will return a .bind version of the function
* and memoize the result against a symbol on the instance
*/
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
export function bindThis(target: any, key: string, descriptor: any) {
- let fn = descriptor.value;
+ const fn = descriptor.value;
if (typeof fn !== 'function') {
throw new TypeError(`@bindThis decorator can only be applied to methods not: ${typeof fn}`);
@@ -21,26 +22,18 @@ export function bindThis(target: any, key: string, descriptor: any) {
configurable: true,
get() {
// eslint-disable-next-line no-prototype-builtins
- if (this === target.prototype || this.hasOwnProperty(key) ||
- typeof fn !== 'function') {
+ if (this === target.prototype || this.hasOwnProperty(key)) {
return fn;
}
const boundFn = fn.bind(this);
- Object.defineProperty(this, key, {
+ Reflect.defineProperty(this, key, {
+ value: boundFn,
configurable: true,
- get() {
- return boundFn;
- },
- set(value) {
- fn = value;
- delete this[key];
- },
+ writable: true,
});
+
return boundFn;
},
- set(value: any) {
- fn = value;
- },
};
}