Skip to content

Commit 66a354d

Browse files
committed
fixed protected object error with mobx-state-tree 5.x
1 parent a897026 commit 66a354d

File tree

6 files changed

+76
-40
lines changed

6 files changed

+76
-40
lines changed

packages/mst-async-task/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "mst-async-task",
3-
"version": "1.0.1",
3+
"version": "1.0.2",
44
"description": "Manage the lifecycles of asynchronous flows in Mobx-State-Tree",
55
"main": "dist/mst-async-task.js",
66
"umd:main": "dist/mst-async-task.umd.js",
@@ -49,8 +49,8 @@
4949
"cpr": "^3.0.1",
5050
"eslint": "^7.18.0",
5151
"jest": "26.6.0",
52-
"mobx": "^4.15.4",
53-
"mobx-state-tree": "^3.16.0",
52+
"mobx": "^6.1.0",
53+
"mobx-state-tree": "^5.0.1",
5454
"rollup": "^2.38.4",
5555
"rollup-plugin-commonjs": "^10.1.0",
5656
"rollup-plugin-node-resolve": "^5.2.0",

packages/mst-async-task/src/AsyncTask.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,13 @@ export const AsyncTask = types
6767
/**
6868
* Used internally by `runTask()`. This should not be called directly.
6969
*/
70-
const setState = (status: AsyncTaskStatus, error?: Error) => {
70+
const _resolve = (status: AsyncTaskStatus, error?: Error) => {
7171
self.status = status
7272
self.error = error
73+
delete (self as IAsyncTask)._abortController
7374
}
7475

75-
return { abort, reset, setState }
76+
return { abort, reset, _resolve }
7677
})
7778

7879
export interface IAsyncTask extends Instance<typeof AsyncTask> {

packages/mst-async-task/src/runTask.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -131,10 +131,10 @@ export async function runTask(
131131
const abortHandler = () => {
132132
const status = AsyncTaskStatus.ABORTED
133133
const error = new AsyncTaskAbortError()
134-
// To ensure that the effects of `task.abort()` are synchronous,
134+
// To ensure that the effect of aborting is synchronous,
135135
// set task properties immediately instead of on next tick.
136136
if (isAlive(task) && task.pending) {
137-
task.setState(status, error)
137+
task._resolve(status, error)
138138
}
139139
done([status, error])
140140
}
@@ -154,12 +154,8 @@ export async function runTask(
154154
})
155155

156156
if (isAlive(task) && task.pending && !signal.aborted) {
157-
task.setState(status, error)
157+
task._resolve(status, error)
158158
}
159159

160-
if (abortController === task._abortController) {
161-
delete task._abortController
162-
}
163-
164160
return new AsyncTaskResult(status, error)
165161
}

packages/react-example/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
"@types/node": "^12.0.0",
88
"@types/react": "^16.9.53",
99
"@types/react-dom": "^16.9.8",
10-
"mobx": "^4.15.4",
11-
"mobx-react-lite": "^2.0.6",
12-
"mobx-state-tree": "^3.16.0",
10+
"mobx": "^6.1.0",
11+
"mobx-react-lite": "3.2.0",
12+
"mobx-state-tree": "^5.0.1",
1313
"mst-async-task": "file:../mst-async-task",
1414
"react": "^17.0.1",
1515
"react-dom": "^17.0.1",

packages/react-example/yarn.lock

Lines changed: 55 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5128,7 +5128,7 @@ glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0:
51285128
dependencies:
51295129
is-glob "^4.0.1"
51305130

5131-
glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
5131+
glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
51325132
version "7.1.6"
51335133
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
51345134
integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
@@ -5662,6 +5662,11 @@ internal-slot@^1.0.2:
56625662
has "^1.0.3"
56635663
side-channel "^1.0.4"
56645664

5665+
interpret@^1.0.0:
5666+
version "1.4.0"
5667+
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
5668+
integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
5669+
56655670
ip-regex@^2.1.0:
56665671
version "2.1.0"
56675672
resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
@@ -5761,7 +5766,7 @@ is-color-stop@^1.0.0:
57615766
rgb-regex "^1.0.1"
57625767
rgba-regex "^1.0.0"
57635768

5764-
is-core-module@^2.0.0, is-core-module@^2.1.0:
5769+
is-core-module@^2.0.0, is-core-module@^2.1.0, is-core-module@^2.2.0:
57655770
version "2.2.0"
57665771
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
57675772
integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==
@@ -7067,7 +7072,7 @@ [email protected], minimatch@^3.0.4:
70677072
dependencies:
70687073
brace-expansion "^1.1.7"
70697074

7070-
minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5:
7075+
minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5:
70717076
version "1.2.5"
70727077
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
70737078
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
@@ -7144,20 +7149,20 @@ mkdirp@^1.0.3, mkdirp@^1.0.4:
71447149
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
71457150
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
71467151

7147-
mobx-react-lite@^2.0.6:
7148-
version "2.2.2"
7149-
resolved "https://registry.yarnpkg.com/mobx-react-lite/-/mobx-react-lite-2.2.2.tgz#87c217dc72b4e47b22493daf155daf3759f868a6"
7150-
integrity sha512-2SlXALHIkyUPDsV4VTKVR9DW7K3Ksh1aaIv3NrNJygTbhXe2A9GrcKHZ2ovIiOp/BXilOcTYemfHHZubP431dg==
7152+
mobx-react-lite@3.2.0:
7153+
version "3.2.0"
7154+
resolved "https://registry.yarnpkg.com/mobx-react-lite/-/mobx-react-lite-3.2.0.tgz#331d7365a6b053378dfe9c087315b4e41c5df69f"
7155+
integrity sha512-q5+UHIqYCOpBoFm/PElDuOhbcatvTllgRp3M1s+Hp5j0Z6XNgDbgqxawJ0ZAUEyKM8X1zs70PCuhAIzX1f4Q/g==
71517156

7152-
mobx-state-tree@^3.16.0:
7153-
version "3.17.3"
7154-
resolved "https://registry.yarnpkg.com/mobx-state-tree/-/mobx-state-tree-3.17.3.tgz#e9c40dca17e7b72ad01270852a516145bf6b6c72"
7155-
integrity sha512-ph4ee/Lh1qUJqHEGkfdWdBAUGdG+VAu7xZbYX/+4qem5hSSpdeZYAJOcN3bhtgEH8Wh/ZxRpQVOLM0aMFXfBSw==
7157+
mobx-state-tree@^5.0.1:
7158+
version "5.0.1"
7159+
resolved "https://registry.yarnpkg.com/mobx-state-tree/-/mobx-state-tree-5.0.1.tgz#d495725fe11075d8fde8f02ab65db6736b44e014"
7160+
integrity sha512-XZafwF1sJe6sp8L1kgf9Tz0SLo/UPf2pxsonnHaBQNsqbebw+0GC+IT3WxPEIe0/aQ73q4nY4SRgW1uyfd1KRA==
71567161

7157-
mobx@^4.15.4:
7158-
version "4.15.7"
7159-
resolved "https://registry.yarnpkg.com/mobx/-/mobx-4.15.7.tgz#933281268c3b4658b6cf2526e872cf78ea48ab95"
7160-
integrity sha512-X4uQvuf2zYKHVO5kRT5Utmr+J9fDnRgxWWnSqJ4oiccPTQU38YG+/O3nPmOhUy4jeHexl7XJJpWDBgEnEfp+8w==
7162+
mobx@^6.1.0:
7163+
version "6.1.8"
7164+
resolved "https://registry.yarnpkg.com/mobx/-/mobx-6.1.8.tgz#5d03cb76d8f7694dd82bfb2578d886945b66450d"
7165+
integrity sha512-U4yCvUeh6yKXRwFxm2lyJjXPVekOEar/R8ZKWAXem/3fthJqYflViawfjDAUh7lZEvbKqljC3NT/pSaUKpE+gg==
71617166

71627167
move-concurrently@^1.0.1:
71637168
version "1.0.1"
@@ -7192,7 +7197,9 @@ ms@^2.1.1:
71927197
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
71937198

71947199
"mst-async-task@file:../mst-async-task":
7195-
version "1.0.0"
7200+
version "1.0.1"
7201+
dependencies:
7202+
shx "^0.3.3"
71967203

71977204
multicast-dns-service-types@^1.1.0:
71987205
version "1.1.0"
@@ -9045,6 +9052,13 @@ readdirp@~3.5.0:
90459052
dependencies:
90469053
picomatch "^2.2.1"
90479054

9055+
rechoir@^0.6.2:
9056+
version "0.6.2"
9057+
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
9058+
integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=
9059+
dependencies:
9060+
resolve "^1.1.6"
9061+
90489062
90499063
version "2.2.2"
90509064
resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f"
@@ -9282,6 +9296,14 @@ [email protected]:
92829296
is-core-module "^2.0.0"
92839297
path-parse "^1.0.6"
92849298

9299+
resolve@^1.1.6:
9300+
version "1.20.0"
9301+
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
9302+
integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
9303+
dependencies:
9304+
is-core-module "^2.2.0"
9305+
path-parse "^1.0.6"
9306+
92859307
resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.3.2, resolve@^1.8.1:
92869308
version "1.19.0"
92879309
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c"
@@ -9671,11 +9693,28 @@ [email protected]:
96719693
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2"
96729694
integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==
96739695

9696+
shelljs@^0.8.4:
9697+
version "0.8.4"
9698+
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2"
9699+
integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==
9700+
dependencies:
9701+
glob "^7.0.0"
9702+
interpret "^1.0.0"
9703+
rechoir "^0.6.2"
9704+
96749705
shellwords@^0.1.1:
96759706
version "0.1.1"
96769707
resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
96779708
integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==
96789709

9710+
shx@^0.3.3:
9711+
version "0.3.3"
9712+
resolved "https://registry.yarnpkg.com/shx/-/shx-0.3.3.tgz#681a88c7c10db15abe18525349ed474f0f1e7b9f"
9713+
integrity sha512-nZJ3HFWVoTSyyB+evEKjJ1STiixGztlqwKLTUNV5KqMWtGey9fTd4KU1gdZ1X9BV6215pswQ/Jew9NsuS/fNDA==
9714+
dependencies:
9715+
minimist "^1.2.3"
9716+
shelljs "^0.8.4"
9717+
96799718
side-channel@^1.0.3, side-channel@^1.0.4:
96809719
version "1.0.4"
96819720
resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"

yarn.lock

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2928,15 +2928,15 @@ mkdirp@~0.5.1:
29282928
dependencies:
29292929
minimist "^1.2.5"
29302930

2931-
mobx-state-tree@^3.16.0:
2932-
version "3.17.3"
2933-
resolved "https://registry.yarnpkg.com/mobx-state-tree/-/mobx-state-tree-3.17.3.tgz#e9c40dca17e7b72ad01270852a516145bf6b6c72"
2934-
integrity sha512-ph4ee/Lh1qUJqHEGkfdWdBAUGdG+VAu7xZbYX/+4qem5hSSpdeZYAJOcN3bhtgEH8Wh/ZxRpQVOLM0aMFXfBSw==
2935-
2936-
mobx@^4.15.4:
2937-
version "4.15.7"
2938-
resolved "https://registry.yarnpkg.com/mobx/-/mobx-4.15.7.tgz#933281268c3b4658b6cf2526e872cf78ea48ab95"
2939-
integrity sha512-X4uQvuf2zYKHVO5kRT5Utmr+J9fDnRgxWWnSqJ4oiccPTQU38YG+/O3nPmOhUy4jeHexl7XJJpWDBgEnEfp+8w==
2931+
mobx-state-tree@^5.0.1:
2932+
version "5.0.1"
2933+
resolved "https://registry.yarnpkg.com/mobx-state-tree/-/mobx-state-tree-5.0.1.tgz#d495725fe11075d8fde8f02ab65db6736b44e014"
2934+
integrity sha512-XZafwF1sJe6sp8L1kgf9Tz0SLo/UPf2pxsonnHaBQNsqbebw+0GC+IT3WxPEIe0/aQ73q4nY4SRgW1uyfd1KRA==
2935+
2936+
mobx@^6.1.0:
2937+
version "6.1.8"
2938+
resolved "https://registry.yarnpkg.com/mobx/-/mobx-6.1.8.tgz#5d03cb76d8f7694dd82bfb2578d886945b66450d"
2939+
integrity sha512-U4yCvUeh6yKXRwFxm2lyJjXPVekOEar/R8ZKWAXem/3fthJqYflViawfjDAUh7lZEvbKqljC3NT/pSaUKpE+gg==
29402940

29412941
29422942
version "2.0.0"

0 commit comments

Comments
 (0)