Skip to content

Commit 3d51359

Browse files
committed
fix #7 (ERR_INVALID_THIS)
1 parent a907698 commit 3d51359

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ipos",
3-
"version": "0.2.3",
3+
"version": "0.2.4",
44
"description": "Share objects across different Node.js processes. Write and read on both sides.",
55
"license": "MIT",
66
"main": "lib/main.js",

src/intercept.ts

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,23 +22,27 @@ export default function intercept<V>(value: V, key: string, interceptCallback: (
2222
get(target, name: string) {
2323
if (name === '__original')
2424
return value
25-
if (Reflect.has(target, name) && (mutatingMethods.get(value.constructor)?.includes(name) || registeredClasses.includes(value.constructor))) {
26-
const method = Reflect.get(target, name)
25+
if (!Reflect.has(target, name))
26+
return
27+
let property = Reflect.get(target, name)
28+
if (property === target.constructor)
29+
return property
30+
if ((
31+
mutatingMethods.get(value.constructor)?.includes(name) || registeredClasses.includes(value.constructor)
32+
) && typeof property === 'function') {
2733
return (...args: any) => {
2834
interceptCallback(key, name, ...args)
29-
method.call(value, ...args)
35+
return property.call(target, ...args)
3036
}
3137
} else {
32-
let value = Reflect.get(target, name)
33-
if (typeof value === 'function')
34-
value = value.bind(target)
35-
return value
38+
if (typeof property === 'function')
39+
property = property.bind(target);
40+
return property;
3641
}
3742
},
3843
set(target: V, name, value: any): boolean {
39-
// if (!target || typeof target !== 'object') return false
4044
target[name as keyof typeof target] = value
41-
interceptCallback(key, '$$iposDefine', name, value)
45+
interceptCallback(key, '$$iposDefine', name as any, value)
4246
return true
4347
},
4448
})

0 commit comments

Comments
 (0)