Skip to content

Commit 692c289

Browse files
fix(proxy-state-tree): make sure proxifier is disposed correctly
1 parent 865eb11 commit 692c289

File tree

4 files changed

+10
-7
lines changed

4 files changed

+10
-7
lines changed

packages/node_modules/proxy-state-tree/src/Proxyfier.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -386,7 +386,8 @@ export class Proxifier {
386386

387387
return value
388388
}
389-
destroy() {
390-
this.proxyCache = null
389+
dispose() {
390+
this.proxyCache = {}
391+
this.disposeRemoveProxy()
391392
}
392393
}

packages/node_modules/proxy-state-tree/src/TrackStateTree.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,6 @@ export class TrackStateTree<T extends object> implements ITrackStateTree<T> {
7272
return result
7373
}
7474
dispose() {
75-
if (this.proxifier !== this.master.proxifier) {
76-
this.proxifier.destroy()
77-
}
78-
7975
if (!this.callback) {
8076
this.pathDependencies.clear()
8177

packages/node_modules/proxy-state-tree/src/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,12 @@ export class ProxyStateTree<T extends object> implements IProxyStateTree<T> {
125125
this.cache.mutationTree.push(tree.dispose())
126126
} else if (tree instanceof TrackStateTree) {
127127
this.cache.trackStateTree.push(tree.dispose())
128+
129+
if (tree.proxifier !== this.proxifier) {
130+
tree.proxifier.dispose()
131+
}
132+
133+
tree.proxifier = this.proxifier
128134
}
129135
}
130136
onMutation(callback: IMutationCallback) {

packages/node_modules/proxy-state-tree/src/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
export interface IProxifier<T extends object> {
22
proxify(state: T, path: string): T
33
trackPath(path: string): void
4-
destroy(): void
4+
dispose(): void
55
}
66

77
export interface IMutation {

0 commit comments

Comments
 (0)