@data-weave/datamanager-mobx 0.6.2 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ObservableReference.js +15 -3
- package/package.json +5 -5
|
@@ -2,16 +2,28 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ObservableReference = void 0;
|
|
4
4
|
const mobx_1 = require("mobx");
|
|
5
|
+
const PATCHED = Symbol('@data-weave/observableReference.patched');
|
|
5
6
|
const ObservableReference = (sourceReference) => {
|
|
6
7
|
const atom = (0, mobx_1.createAtom)('ObservableReference', () => sourceReference.resolve(), () => sourceReference.unsubscribe());
|
|
8
|
+
// FirestoreReference (and any LiveReference) calls `this.onUpdate(...)` on
|
|
9
|
+
// the bare instance from inside its snapshot callback, which then calls
|
|
10
|
+
// `this.onValueChange()` on the bare instance too. The Proxy's get trap
|
|
11
|
+
// never sees that call, so we patch the bare method to also notify the
|
|
12
|
+
// atom. Idempotent across multiple wraps via the PATCHED symbol guard.
|
|
13
|
+
const tagged = sourceReference;
|
|
14
|
+
if (!tagged[PATCHED]) {
|
|
15
|
+
tagged[PATCHED] = true;
|
|
16
|
+
const original = sourceReference.onValueChange.bind(sourceReference);
|
|
17
|
+
sourceReference.onValueChange = () => {
|
|
18
|
+
original();
|
|
19
|
+
atom.reportChanged();
|
|
20
|
+
};
|
|
21
|
+
}
|
|
7
22
|
return new Proxy(sourceReference, {
|
|
8
23
|
get(target, prop, receiver) {
|
|
9
24
|
if (prop === 'value' || prop === 'resolved' || prop === 'hasError' || prop === 'error') {
|
|
10
25
|
atom.reportObserved();
|
|
11
26
|
}
|
|
12
|
-
if (prop === 'onValueChange') {
|
|
13
|
-
atom.reportChanged();
|
|
14
|
-
}
|
|
15
27
|
return Reflect.get(target, prop, receiver);
|
|
16
28
|
},
|
|
17
29
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@data-weave/datamanager-mobx",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.3",
|
|
4
4
|
"author": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -23,15 +23,15 @@
|
|
|
23
23
|
"registry": "https://registry.npmjs.org/"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@data-weave/backend-firestore": "~0.6.
|
|
27
|
-
"@data-weave/datamanager": "~0.6.
|
|
26
|
+
"@data-weave/backend-firestore": "~0.6.3",
|
|
27
|
+
"@data-weave/datamanager": "~0.6.3"
|
|
28
28
|
},
|
|
29
29
|
"peerDependencies": {
|
|
30
30
|
"mobx": ">=6.0.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@data-weave/backend-firestore": "~0.6.
|
|
34
|
-
"@data-weave/datamanager": "~0.6.
|
|
33
|
+
"@data-weave/backend-firestore": "~0.6.3",
|
|
34
|
+
"@data-weave/datamanager": "~0.6.3",
|
|
35
35
|
"mobx": "6.15.0",
|
|
36
36
|
"typescript": "5.9.3"
|
|
37
37
|
},
|