on-zero 0.4.12 → 0.4.14
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/cjs/helpers/useMutation.cjs +114 -0
- package/dist/cjs/helpers/useMutation.native.js +166 -0
- package/dist/cjs/helpers/useMutation.native.js.map +1 -0
- package/dist/cjs/helpers/useMutation.test.cjs +139 -0
- package/dist/cjs/helpers/useMutation.test.native.js +156 -0
- package/dist/cjs/helpers/useMutation.test.native.js.map +1 -0
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/index.native.js +1 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/helpers/useMutation.mjs +87 -0
- package/dist/esm/helpers/useMutation.mjs.map +1 -0
- package/dist/esm/helpers/useMutation.native.js +136 -0
- package/dist/esm/helpers/useMutation.native.js.map +1 -0
- package/dist/esm/helpers/useMutation.test.mjs +140 -0
- package/dist/esm/helpers/useMutation.test.mjs.map +1 -0
- package/dist/esm/helpers/useMutation.test.native.js +154 -0
- package/dist/esm/helpers/useMutation.test.native.js.map +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +1 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +1 -0
- package/dist/esm/index.native.js.map +1 -1
- package/package.json +2 -2
- package/src/helpers/useMutation.test.ts +117 -0
- package/src/helpers/useMutation.tsx +170 -0
- package/src/index.ts +1 -0
- package/types/helpers/useMutation.d.ts +47 -0
- package/types/helpers/useMutation.d.ts.map +1 -0
- package/types/helpers/useMutation.test.d.ts +2 -0
- package/types/helpers/useMutation.test.d.ts.map +1 -0
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
2
|
+
const mutationErrorListeners = /* @__PURE__ */new Set();
|
|
3
|
+
function onMutationError(cb) {
|
|
4
|
+
mutationErrorListeners.add(cb);
|
|
5
|
+
return () => {
|
|
6
|
+
mutationErrorListeners.delete(cb);
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
function emitMutationError(error) {
|
|
10
|
+
if (mutationErrorListeners.size === 0) {
|
|
11
|
+
if (process.env.NODE_ENV !== "production") {
|
|
12
|
+
console.error("[on-zero] unhandled mutation error", error);
|
|
13
|
+
}
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
for (const cb of mutationErrorListeners) cb(error);
|
|
17
|
+
}
|
|
18
|
+
function toMutationError(scope, details) {
|
|
19
|
+
if (!details || typeof details !== "object") return null;
|
|
20
|
+
const d = details;
|
|
21
|
+
if (d.type !== "error") return null;
|
|
22
|
+
return {
|
|
23
|
+
scope,
|
|
24
|
+
kind: d.error?.type === "app" ? "app" : "zero",
|
|
25
|
+
message: d.error?.message || "Mutation failed",
|
|
26
|
+
details: d.error?.details
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function rejectionToError(scope, e) {
|
|
30
|
+
return {
|
|
31
|
+
scope,
|
|
32
|
+
kind: "zero",
|
|
33
|
+
message: e instanceof Error ? e.message : String(e)
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function observeMutation(result, onError) {
|
|
37
|
+
let reportedGlobal = false;
|
|
38
|
+
const report = err => {
|
|
39
|
+
if (!err) return;
|
|
40
|
+
onError?.(err);
|
|
41
|
+
if (!reportedGlobal) {
|
|
42
|
+
reportedGlobal = true;
|
|
43
|
+
emitMutationError(err);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
const client = result.client.then(d => report(toMutationError("client", d))).catch(e => report(rejectionToError("client", e)));
|
|
47
|
+
const server = result.server.then(d => report(toMutationError("server", d))).catch(e => report(rejectionToError("server", e)));
|
|
48
|
+
return Promise.all([client, server]).then(() => void 0);
|
|
49
|
+
}
|
|
50
|
+
function useMutation(mutator) {
|
|
51
|
+
const [pending, setPending] = useState(false);
|
|
52
|
+
const [error, setError] = useState(null);
|
|
53
|
+
const seqRef = useRef(0);
|
|
54
|
+
const mountedRef = useRef(true);
|
|
55
|
+
const mutatorRef = useRef(mutator);
|
|
56
|
+
mutatorRef.current = mutator;
|
|
57
|
+
useEffect(() => {
|
|
58
|
+
mountedRef.current = true;
|
|
59
|
+
return () => {
|
|
60
|
+
mountedRef.current = false;
|
|
61
|
+
};
|
|
62
|
+
}, []);
|
|
63
|
+
const reset = useCallback(() => {
|
|
64
|
+
setError(null);
|
|
65
|
+
setPending(false);
|
|
66
|
+
}, []);
|
|
67
|
+
const run = useCallback((...args) => {
|
|
68
|
+
const result = mutatorRef.current(...args);
|
|
69
|
+
const seq = ++seqRef.current;
|
|
70
|
+
setPending(true);
|
|
71
|
+
setError(null);
|
|
72
|
+
const isCurrent = () => mountedRef.current && seq === seqRef.current;
|
|
73
|
+
observeMutation(result, err => {
|
|
74
|
+
if (isCurrent()) setError(err);
|
|
75
|
+
}).finally(() => {
|
|
76
|
+
if (isCurrent()) setPending(false);
|
|
77
|
+
});
|
|
78
|
+
return result;
|
|
79
|
+
}, []);
|
|
80
|
+
return [run, {
|
|
81
|
+
pending,
|
|
82
|
+
error,
|
|
83
|
+
reset
|
|
84
|
+
}];
|
|
85
|
+
}
|
|
86
|
+
export { observeMutation, onMutationError, useMutation };
|
|
87
|
+
//# sourceMappingURL=useMutation.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useRef","useState","mutationErrorListeners","Set","onMutationError","cb","add","delete","emitMutationError","error","size","process","env","NODE_ENV","console","toMutationError","scope","details","d","type","kind","message","rejectionToError","e","Error","String","observeMutation","result","onError","reportedGlobal","report","err","client","then","catch","server","Promise","all","useMutation","mutator","pending","setPending","setError","seqRef","mountedRef","mutatorRef","current","reset","run","args","seq","isCurrent","finally"],"sources":["../../../src/helpers/useMutation.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,EAAaC,SAAA,EAAWC,MAAA,EAAQC,QAAA,QAAgB;AAkCzD,MAAMC,sBAAA,GAAyB,mBAAIC,GAAA,CAAoC;AAEhE,SAASC,gBAAgBC,EAAA,EAAgD;EAC9EH,sBAAA,CAAuBI,GAAA,CAAID,EAAE;EAC7B,OAAO,MAAM;IACXH,sBAAA,CAAuBK,MAAA,CAAOF,EAAE;EAClC;AACF;AAEA,SAASG,kBAAkBC,KAAA,EAA4B;EACrD,IAAIP,sBAAA,CAAuBQ,IAAA,KAAS,GAAG;IACrC,IAAIC,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,cAAc;MACzCC,OAAA,CAAQL,KAAA,CAAM,sCAAsCA,KAAK;IAC3D;IACA;EACF;EACA,WAAWJ,EAAA,IAAMH,sBAAA,EAAwBG,EAAA,CAAGI,KAAK;AACnD;AAEA,SAASM,gBACPC,KAAA,EACAC,OAAA,EACsB;EACtB,IAAI,CAACA,OAAA,IAAW,OAAOA,OAAA,KAAY,UAAU,OAAO;EACpD,MAAMC,CAAA,GAAID,OAAA;EAIV,IAAIC,CAAA,CAAEC,IAAA,KAAS,SAAS,OAAO;EAC/B,OAAO;IACLH,KAAA;IACAI,IAAA,EAAMF,CAAA,CAAET,KAAA,EAAOU,IAAA,KAAS,QAAQ,QAAQ;IACxCE,OAAA,EAASH,CAAA,CAAET,KAAA,EAAOY,OAAA,IAAW;IAC7BJ,OAAA,EAASC,CAAA,CAAET,KAAA,EAAOQ;EACpB;AACF;AAEA,SAASK,iBAAiBN,KAAA,EAA4BO,CAAA,EAA2B;EAC/E,OAAO;IACLP,KAAA;IACAI,IAAA,EAAM;IACNC,OAAA,EAASE,CAAA,YAAaC,KAAA,GAAQD,CAAA,CAAEF,OAAA,GAAUI,MAAA,CAAOF,CAAC;EACpD;AACF;AAaO,SAASG,gBACdC,MAAA,EACAC,OAAA,EACe;EACf,IAAIC,cAAA,GAAiB;EACrB,MAAMC,MAAA,GAAUC,GAAA,IAA8B;IAC5C,IAAI,CAACA,GAAA,EAAK;IACVH,OAAA,GAAUG,GAAG;IAEb,IAAI,CAACF,cAAA,EAAgB;MACnBA,cAAA,GAAiB;MACjBrB,iBAAA,CAAkBuB,GAAG;IACvB;EACF;EACA,MAAMC,MAAA,GAASL,MAAA,CAAOK,MAAA,CACnBC,IAAA,CAAMf,CAAA,IAAMY,MAAA,CAAOf,eAAA,CAAgB,UAAUG,CAAC,CAAC,CAAC,EAChDgB,KAAA,CAAOX,CAAA,IAAMO,MAAA,CAAOR,gBAAA,CAAiB,UAAUC,CAAC,CAAC,CAAC;EACrD,MAAMY,MAAA,GAASR,MAAA,CAAOQ,MAAA,CACnBF,IAAA,CAAMf,CAAA,IAAMY,MAAA,CAAOf,eAAA,CAAgB,UAAUG,CAAC,CAAC,CAAC,EAChDgB,KAAA,CAAOX,CAAA,IAAMO,MAAA,CAAOR,gBAAA,CAAiB,UAAUC,CAAC,CAAC,CAAC;EACrD,OAAOa,OAAA,CAAQC,GAAA,CAAI,CAACL,MAAA,EAAQG,MAAM,CAAC,EAAEF,IAAA,CAAK,MAAM,MAAS;AAC3D;AAkBO,SAASK,YACdC,OAAA,EACqB;EACrB,MAAM,CAACC,OAAA,EAASC,UAAU,IAAIxC,QAAA,CAAS,KAAK;EAC5C,MAAM,CAACQ,KAAA,EAAOiC,QAAQ,IAAIzC,QAAA,CAA+B,IAAI;EAC7D,MAAM0C,MAAA,GAAS3C,MAAA,CAAO,CAAC;EACvB,MAAM4C,UAAA,GAAa5C,MAAA,CAAO,IAAI;EAC9B,MAAM6C,UAAA,GAAa7C,MAAA,CAAOuC,OAAO;EACjCM,UAAA,CAAWC,OAAA,GAAUP,OAAA;EAErBxC,SAAA,CAAU,MAAM;IACd6C,UAAA,CAAWE,OAAA,GAAU;IACrB,OAAO,MAAM;MACXF,UAAA,CAAWE,OAAA,GAAU;IACvB;EACF,GAAG,EAAE;EAEL,MAAMC,KAAA,GAAQjD,WAAA,CAAY,MAAM;IAC9B4C,QAAA,CAAS,IAAI;IACbD,UAAA,CAAW,KAAK;EAClB,GAAG,EAAE;EAEL,MAAMO,GAAA,GAAMlD,WAAA,CAAY,IAAImD,IAAA,KAAgB;IAC1C,MAAMtB,MAAA,GAASkB,UAAA,CAAWC,OAAA,CAAQ,GAAGG,IAAI;IACzC,MAAMC,GAAA,GAAM,EAAEP,MAAA,CAAOG,OAAA;IACrBL,UAAA,CAAW,IAAI;IACfC,QAAA,CAAS,IAAI;IAGb,MAAMS,SAAA,GAAYA,CAAA,KAAMP,UAAA,CAAWE,OAAA,IAAWI,GAAA,KAAQP,MAAA,CAAOG,OAAA;IAC7DpB,eAAA,CAAgBC,MAAA,EAASI,GAAA,IAAQ;MAC/B,IAAIoB,SAAA,CAAU,GAAGT,QAAA,CAASX,GAAG;IAC/B,CAAC,EAAEqB,OAAA,CAAQ,MAAM;MACf,IAAID,SAAA,CAAU,GAAGV,UAAA,CAAW,KAAK;IACnC,CAAC;IAED,OAAOd,MAAA;EACT,GAAG,EAAE;EAEL,OAAO,CAACqB,GAAA,EAAK;IAAER,OAAA;IAAS/B,KAAA;IAAOsC;EAAM,CAAC;AACxC","ignoreList":[]}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
2
|
+
function _instanceof(left, right) {
|
|
3
|
+
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
4
|
+
return !!right[Symbol.hasInstance](left);
|
|
5
|
+
} else {
|
|
6
|
+
return left instanceof right;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
function _type_of(obj) {
|
|
10
|
+
"@swc/helpers - typeof";
|
|
11
|
+
|
|
12
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
13
|
+
}
|
|
14
|
+
var mutationErrorListeners = /* @__PURE__ */new Set();
|
|
15
|
+
function onMutationError(cb) {
|
|
16
|
+
mutationErrorListeners.add(cb);
|
|
17
|
+
return function () {
|
|
18
|
+
mutationErrorListeners.delete(cb);
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function emitMutationError(error) {
|
|
22
|
+
if (mutationErrorListeners.size === 0) {
|
|
23
|
+
if (process.env.NODE_ENV !== "production") {
|
|
24
|
+
console.error("[on-zero] unhandled mutation error", error);
|
|
25
|
+
}
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
var _iteratorNormalCompletion = true,
|
|
29
|
+
_didIteratorError = false,
|
|
30
|
+
_iteratorError = void 0;
|
|
31
|
+
try {
|
|
32
|
+
for (var _iterator = mutationErrorListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
33
|
+
var cb = _step.value;
|
|
34
|
+
cb(error);
|
|
35
|
+
}
|
|
36
|
+
} catch (err) {
|
|
37
|
+
_didIteratorError = true;
|
|
38
|
+
_iteratorError = err;
|
|
39
|
+
} finally {
|
|
40
|
+
try {
|
|
41
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
42
|
+
_iterator.return();
|
|
43
|
+
}
|
|
44
|
+
} finally {
|
|
45
|
+
if (_didIteratorError) {
|
|
46
|
+
throw _iteratorError;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function toMutationError(scope, details) {
|
|
52
|
+
var _d_error, _d_error1, _d_error2;
|
|
53
|
+
if (!details || (typeof details === "undefined" ? "undefined" : _type_of(details)) !== "object") return null;
|
|
54
|
+
var d = details;
|
|
55
|
+
if (d.type !== "error") return null;
|
|
56
|
+
return {
|
|
57
|
+
scope,
|
|
58
|
+
kind: ((_d_error = d.error) === null || _d_error === void 0 ? void 0 : _d_error.type) === "app" ? "app" : "zero",
|
|
59
|
+
message: ((_d_error1 = d.error) === null || _d_error1 === void 0 ? void 0 : _d_error1.message) || "Mutation failed",
|
|
60
|
+
details: (_d_error2 = d.error) === null || _d_error2 === void 0 ? void 0 : _d_error2.details
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function rejectionToError(scope, e) {
|
|
64
|
+
return {
|
|
65
|
+
scope,
|
|
66
|
+
kind: "zero",
|
|
67
|
+
message: _instanceof(e, Error) ? e.message : String(e)
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function observeMutation(result, onError) {
|
|
71
|
+
var reportedGlobal = false;
|
|
72
|
+
var report = function (err) {
|
|
73
|
+
if (!err) return;
|
|
74
|
+
onError === null || onError === void 0 ? void 0 : onError(err);
|
|
75
|
+
if (!reportedGlobal) {
|
|
76
|
+
reportedGlobal = true;
|
|
77
|
+
emitMutationError(err);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
var client = result.client.then(function (d) {
|
|
81
|
+
return report(toMutationError("client", d));
|
|
82
|
+
}).catch(function (e) {
|
|
83
|
+
return report(rejectionToError("client", e));
|
|
84
|
+
});
|
|
85
|
+
var server = result.server.then(function (d) {
|
|
86
|
+
return report(toMutationError("server", d));
|
|
87
|
+
}).catch(function (e) {
|
|
88
|
+
return report(rejectionToError("server", e));
|
|
89
|
+
});
|
|
90
|
+
return Promise.all([client, server]).then(function () {
|
|
91
|
+
return void 0;
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
function useMutation(mutator) {
|
|
95
|
+
var [pending, setPending] = useState(false);
|
|
96
|
+
var [error, setError] = useState(null);
|
|
97
|
+
var seqRef = useRef(0);
|
|
98
|
+
var mountedRef = useRef(true);
|
|
99
|
+
var mutatorRef = useRef(mutator);
|
|
100
|
+
mutatorRef.current = mutator;
|
|
101
|
+
useEffect(function () {
|
|
102
|
+
mountedRef.current = true;
|
|
103
|
+
return function () {
|
|
104
|
+
mountedRef.current = false;
|
|
105
|
+
};
|
|
106
|
+
}, []);
|
|
107
|
+
var reset = useCallback(function () {
|
|
108
|
+
setError(null);
|
|
109
|
+
setPending(false);
|
|
110
|
+
}, []);
|
|
111
|
+
var run = useCallback(function () {
|
|
112
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
113
|
+
args[_key] = arguments[_key];
|
|
114
|
+
}
|
|
115
|
+
var result = mutatorRef.current(...args);
|
|
116
|
+
var seq = ++seqRef.current;
|
|
117
|
+
setPending(true);
|
|
118
|
+
setError(null);
|
|
119
|
+
var isCurrent = function () {
|
|
120
|
+
return mountedRef.current && seq === seqRef.current;
|
|
121
|
+
};
|
|
122
|
+
observeMutation(result, function (err) {
|
|
123
|
+
if (isCurrent()) setError(err);
|
|
124
|
+
}).finally(function () {
|
|
125
|
+
if (isCurrent()) setPending(false);
|
|
126
|
+
});
|
|
127
|
+
return result;
|
|
128
|
+
}, []);
|
|
129
|
+
return [run, {
|
|
130
|
+
pending,
|
|
131
|
+
error,
|
|
132
|
+
reset
|
|
133
|
+
}];
|
|
134
|
+
}
|
|
135
|
+
export { observeMutation, onMutationError, useMutation };
|
|
136
|
+
//# sourceMappingURL=useMutation.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useRef","useState","_instanceof","left","right","Symbol","hasInstance","_type_of","obj","constructor","mutationErrorListeners","Set","onMutationError","cb","add","delete","emitMutationError","error","size","process","env","NODE_ENV","console","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","value","err","return","toMutationError","scope","details","_d_error","_d_error1","_d_error2","d","type","kind","message","rejectionToError","e","Error","String","observeMutation","result","onError","reportedGlobal","report","client","then","catch"],"sources":["../../../src/helpers/useMutation.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { afterEach, describe, expect, test, vi } from "vitest";
|
|
2
|
+
import { observeMutation, onMutationError } from "./useMutation.mjs";
|
|
3
|
+
function deferred() {
|
|
4
|
+
let resolve;
|
|
5
|
+
let reject;
|
|
6
|
+
const promise = new Promise((res, rej) => {
|
|
7
|
+
resolve = res;
|
|
8
|
+
reject = rej;
|
|
9
|
+
});
|
|
10
|
+
return {
|
|
11
|
+
promise,
|
|
12
|
+
resolve,
|
|
13
|
+
reject
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function fakeResult() {
|
|
17
|
+
const client = deferred();
|
|
18
|
+
const server = deferred();
|
|
19
|
+
return {
|
|
20
|
+
result: {
|
|
21
|
+
client: client.promise,
|
|
22
|
+
server: server.promise
|
|
23
|
+
},
|
|
24
|
+
client,
|
|
25
|
+
server
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
const SUCCESS = {
|
|
29
|
+
type: "success"
|
|
30
|
+
};
|
|
31
|
+
const appError = message => ({
|
|
32
|
+
type: "error",
|
|
33
|
+
error: {
|
|
34
|
+
type: "app",
|
|
35
|
+
message
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
afterEach(() => {
|
|
39
|
+
vi.restoreAllMocks();
|
|
40
|
+
});
|
|
41
|
+
describe("observeMutation", () => {
|
|
42
|
+
test("success on both phases reports nothing", async () => {
|
|
43
|
+
const {
|
|
44
|
+
result,
|
|
45
|
+
client,
|
|
46
|
+
server
|
|
47
|
+
} = fakeResult();
|
|
48
|
+
const errors = [];
|
|
49
|
+
const dispose = onMutationError(e => errors.push(e));
|
|
50
|
+
const done = observeMutation(result, e => errors.push(e));
|
|
51
|
+
client.resolve(SUCCESS);
|
|
52
|
+
server.resolve(SUCCESS);
|
|
53
|
+
await done;
|
|
54
|
+
expect(errors).toEqual([]);
|
|
55
|
+
dispose();
|
|
56
|
+
});
|
|
57
|
+
test("a server rejection surfaces a normalized error locally and globally", async () => {
|
|
58
|
+
const {
|
|
59
|
+
result,
|
|
60
|
+
client,
|
|
61
|
+
server
|
|
62
|
+
} = fakeResult();
|
|
63
|
+
const local = [];
|
|
64
|
+
const global = [];
|
|
65
|
+
const dispose = onMutationError(e => global.push(e));
|
|
66
|
+
const done = observeMutation(result, e => local.push(e));
|
|
67
|
+
client.resolve(SUCCESS);
|
|
68
|
+
server.resolve(appError("Could not create post."));
|
|
69
|
+
await done;
|
|
70
|
+
expect(local).toEqual([{
|
|
71
|
+
scope: "server",
|
|
72
|
+
kind: "app",
|
|
73
|
+
message: "Could not create post.",
|
|
74
|
+
details: void 0
|
|
75
|
+
}]);
|
|
76
|
+
expect(global).toEqual(local);
|
|
77
|
+
dispose();
|
|
78
|
+
});
|
|
79
|
+
test("client + server both failing emits to the global catch only once", async () => {
|
|
80
|
+
const {
|
|
81
|
+
result,
|
|
82
|
+
client,
|
|
83
|
+
server
|
|
84
|
+
} = fakeResult();
|
|
85
|
+
const global = [];
|
|
86
|
+
const dispose = onMutationError(e => global.push(e));
|
|
87
|
+
const done = observeMutation(result);
|
|
88
|
+
client.reject(new Error("boom"));
|
|
89
|
+
server.reject(new Error("boom"));
|
|
90
|
+
await done;
|
|
91
|
+
expect(global).toHaveLength(1);
|
|
92
|
+
expect(global[0]).toMatchObject({
|
|
93
|
+
scope: "client",
|
|
94
|
+
kind: "zero",
|
|
95
|
+
message: "boom"
|
|
96
|
+
});
|
|
97
|
+
dispose();
|
|
98
|
+
});
|
|
99
|
+
test("never rejects even when both phases reject", async () => {
|
|
100
|
+
const {
|
|
101
|
+
result,
|
|
102
|
+
client,
|
|
103
|
+
server
|
|
104
|
+
} = fakeResult();
|
|
105
|
+
client.reject(new Error("x"));
|
|
106
|
+
server.reject(new Error("x"));
|
|
107
|
+
await expect(observeMutation(result)).resolves.toBeUndefined();
|
|
108
|
+
});
|
|
109
|
+
test("with no listener registered it falls back to console.error in dev", async () => {
|
|
110
|
+
const spy = vi.spyOn(console, "error").mockImplementation(() => {});
|
|
111
|
+
const {
|
|
112
|
+
result,
|
|
113
|
+
client,
|
|
114
|
+
server
|
|
115
|
+
} = fakeResult();
|
|
116
|
+
const done = observeMutation(result);
|
|
117
|
+
client.resolve(SUCCESS);
|
|
118
|
+
server.resolve(appError("denied"));
|
|
119
|
+
await done;
|
|
120
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
describe("onMutationError", () => {
|
|
124
|
+
test("dispose stops delivery", async () => {
|
|
125
|
+
const seen = [];
|
|
126
|
+
const dispose = onMutationError(e => seen.push(e));
|
|
127
|
+
dispose();
|
|
128
|
+
const {
|
|
129
|
+
result,
|
|
130
|
+
client,
|
|
131
|
+
server
|
|
132
|
+
} = fakeResult();
|
|
133
|
+
const done = observeMutation(result);
|
|
134
|
+
client.resolve(SUCCESS);
|
|
135
|
+
server.resolve(appError("denied"));
|
|
136
|
+
await done;
|
|
137
|
+
expect(seen).toEqual([]);
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
//# sourceMappingURL=useMutation.test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["afterEach","describe","expect","test","vi","observeMutation","onMutationError","deferred","resolve","reject","promise","Promise","res","rej","fakeResult","client","server","result","SUCCESS","type","appError","message","error","restoreAllMocks","errors","dispose","e","push","done","toEqual","local","global","scope","kind","details","Error","toHaveLength","toMatchObject","resolves","toBeUndefined","spy","spyOn","console","mockImplementation","toHaveBeenCalledTimes","seen"],"sources":["../../../src/helpers/useMutation.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { afterEach, describe, expect, test, vi } from "vitest";
|
|
2
|
+
import { observeMutation, onMutationError } from "./useMutation.native.js";
|
|
3
|
+
function deferred() {
|
|
4
|
+
var resolve;
|
|
5
|
+
var reject;
|
|
6
|
+
var promise = new Promise(function (res, rej) {
|
|
7
|
+
resolve = res;
|
|
8
|
+
reject = rej;
|
|
9
|
+
});
|
|
10
|
+
return {
|
|
11
|
+
promise,
|
|
12
|
+
resolve,
|
|
13
|
+
reject
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function fakeResult() {
|
|
17
|
+
var client = deferred();
|
|
18
|
+
var server = deferred();
|
|
19
|
+
return {
|
|
20
|
+
result: {
|
|
21
|
+
client: client.promise,
|
|
22
|
+
server: server.promise
|
|
23
|
+
},
|
|
24
|
+
client,
|
|
25
|
+
server
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
var SUCCESS = {
|
|
29
|
+
type: "success"
|
|
30
|
+
};
|
|
31
|
+
var appError = function (message) {
|
|
32
|
+
return {
|
|
33
|
+
type: "error",
|
|
34
|
+
error: {
|
|
35
|
+
type: "app",
|
|
36
|
+
message
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
afterEach(function () {
|
|
41
|
+
vi.restoreAllMocks();
|
|
42
|
+
});
|
|
43
|
+
describe("observeMutation", function () {
|
|
44
|
+
test("success on both phases reports nothing", async function () {
|
|
45
|
+
var {
|
|
46
|
+
result,
|
|
47
|
+
client,
|
|
48
|
+
server
|
|
49
|
+
} = fakeResult();
|
|
50
|
+
var errors = [];
|
|
51
|
+
var dispose = onMutationError(function (e) {
|
|
52
|
+
return errors.push(e);
|
|
53
|
+
});
|
|
54
|
+
var done = observeMutation(result, function (e) {
|
|
55
|
+
return errors.push(e);
|
|
56
|
+
});
|
|
57
|
+
client.resolve(SUCCESS);
|
|
58
|
+
server.resolve(SUCCESS);
|
|
59
|
+
await done;
|
|
60
|
+
expect(errors).toEqual([]);
|
|
61
|
+
dispose();
|
|
62
|
+
});
|
|
63
|
+
test("a server rejection surfaces a normalized error locally and globally", async function () {
|
|
64
|
+
var {
|
|
65
|
+
result,
|
|
66
|
+
client,
|
|
67
|
+
server
|
|
68
|
+
} = fakeResult();
|
|
69
|
+
var local = [];
|
|
70
|
+
var global = [];
|
|
71
|
+
var dispose = onMutationError(function (e) {
|
|
72
|
+
return global.push(e);
|
|
73
|
+
});
|
|
74
|
+
var done = observeMutation(result, function (e) {
|
|
75
|
+
return local.push(e);
|
|
76
|
+
});
|
|
77
|
+
client.resolve(SUCCESS);
|
|
78
|
+
server.resolve(appError("Could not create post."));
|
|
79
|
+
await done;
|
|
80
|
+
expect(local).toEqual([{
|
|
81
|
+
scope: "server",
|
|
82
|
+
kind: "app",
|
|
83
|
+
message: "Could not create post.",
|
|
84
|
+
details: void 0
|
|
85
|
+
}]);
|
|
86
|
+
expect(global).toEqual(local);
|
|
87
|
+
dispose();
|
|
88
|
+
});
|
|
89
|
+
test("client + server both failing emits to the global catch only once", async function () {
|
|
90
|
+
var {
|
|
91
|
+
result,
|
|
92
|
+
client,
|
|
93
|
+
server
|
|
94
|
+
} = fakeResult();
|
|
95
|
+
var global = [];
|
|
96
|
+
var dispose = onMutationError(function (e) {
|
|
97
|
+
return global.push(e);
|
|
98
|
+
});
|
|
99
|
+
var done = observeMutation(result);
|
|
100
|
+
client.reject(new Error("boom"));
|
|
101
|
+
server.reject(new Error("boom"));
|
|
102
|
+
await done;
|
|
103
|
+
expect(global).toHaveLength(1);
|
|
104
|
+
expect(global[0]).toMatchObject({
|
|
105
|
+
scope: "client",
|
|
106
|
+
kind: "zero",
|
|
107
|
+
message: "boom"
|
|
108
|
+
});
|
|
109
|
+
dispose();
|
|
110
|
+
});
|
|
111
|
+
test("never rejects even when both phases reject", async function () {
|
|
112
|
+
var {
|
|
113
|
+
result,
|
|
114
|
+
client,
|
|
115
|
+
server
|
|
116
|
+
} = fakeResult();
|
|
117
|
+
client.reject(new Error("x"));
|
|
118
|
+
server.reject(new Error("x"));
|
|
119
|
+
await expect(observeMutation(result)).resolves.toBeUndefined();
|
|
120
|
+
});
|
|
121
|
+
test("with no listener registered it falls back to console.error in dev", async function () {
|
|
122
|
+
var spy = vi.spyOn(console, "error").mockImplementation(function () {});
|
|
123
|
+
var {
|
|
124
|
+
result,
|
|
125
|
+
client,
|
|
126
|
+
server
|
|
127
|
+
} = fakeResult();
|
|
128
|
+
var done = observeMutation(result);
|
|
129
|
+
client.resolve(SUCCESS);
|
|
130
|
+
server.resolve(appError("denied"));
|
|
131
|
+
await done;
|
|
132
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
describe("onMutationError", function () {
|
|
136
|
+
test("dispose stops delivery", async function () {
|
|
137
|
+
var seen = [];
|
|
138
|
+
var dispose = onMutationError(function (e) {
|
|
139
|
+
return seen.push(e);
|
|
140
|
+
});
|
|
141
|
+
dispose();
|
|
142
|
+
var {
|
|
143
|
+
result,
|
|
144
|
+
client,
|
|
145
|
+
server
|
|
146
|
+
} = fakeResult();
|
|
147
|
+
var done = observeMutation(result);
|
|
148
|
+
client.resolve(SUCCESS);
|
|
149
|
+
server.resolve(appError("denied"));
|
|
150
|
+
await done;
|
|
151
|
+
expect(seen).toEqual([]);
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
//# sourceMappingURL=useMutation.test.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["afterEach","describe","expect","test","vi","observeMutation","onMutationError","deferred","resolve","reject","promise","Promise","res","rej","fakeResult","client","server","result","SUCCESS","type","appError","message","error","restoreAllMocks","errors","dispose","e","push","done","toEqual","local","global","scope","kind","details","Error","toHaveLength","toMatchObject"],"sources":["../../../src/helpers/useMutation.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export * from "./helpers/batchQuery.mjs";
|
|
|
4
4
|
export * from "./helpers/createMutators.mjs";
|
|
5
5
|
export * from "./helpers/ensureLoggedIn.mjs";
|
|
6
6
|
export * from "./helpers/mutatorContext.mjs";
|
|
7
|
+
export * from "./helpers/useMutation.mjs";
|
|
7
8
|
import { ensureAuth, getAuth } from "./helpers/getAuth.mjs";
|
|
8
9
|
import { setAuthData, setEnvironment } from "./state.mjs";
|
|
9
10
|
export * from "./createZeroClient.mjs";
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,WAAA,EAAaC,aAAA,QAAqB;AAQ3C,SACEC,mBAAA,QAEK;AACP,SACEC,uBAAA,EACAC,yBAAA,QAGK","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,WAAA,EAAaC,aAAA,QAAqB;AAQ3C,SACEC,mBAAA,QAEK;AACP,SACEC,uBAAA,EACAC,yBAAA,QAGK","ignoreList":[]}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -4,6 +4,7 @@ export * from "./helpers/batchQuery.mjs";
|
|
|
4
4
|
export * from "./helpers/createMutators.mjs";
|
|
5
5
|
export * from "./helpers/ensureLoggedIn.mjs";
|
|
6
6
|
export * from "./helpers/mutatorContext.mjs";
|
|
7
|
+
export * from "./helpers/useMutation.mjs";
|
|
7
8
|
import { ensureAuth, getAuth } from "./helpers/getAuth.mjs";
|
|
8
9
|
import { setAuthData, setEnvironment } from "./state.mjs";
|
|
9
10
|
export * from "./createZeroClient.mjs";
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,WAAA,EAAaC,aAAA,QAAqB;AAQ3C,SACEC,mBAAA,QAEK;AACP,SACEC,uBAAA,EACAC,yBAAA,QAGK","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,WAAA,EAAaC,aAAA,QAAqB;AAQ3C,SACEC,mBAAA,QAEK;AACP,SACEC,uBAAA,EACAC,yBAAA,QAGK","ignoreList":[]}
|
package/dist/esm/index.native.js
CHANGED
|
@@ -4,6 +4,7 @@ export * from "./helpers/batchQuery.native.js";
|
|
|
4
4
|
export * from "./helpers/createMutators.native.js";
|
|
5
5
|
export * from "./helpers/ensureLoggedIn.native.js";
|
|
6
6
|
export * from "./helpers/mutatorContext.native.js";
|
|
7
|
+
export * from "./helpers/useMutation.native.js";
|
|
7
8
|
import { ensureAuth, getAuth } from "./helpers/getAuth.native.js";
|
|
8
9
|
import { setAuthData, setEnvironment } from "./state.native.js";
|
|
9
10
|
export * from "./createZeroClient.native.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,WAAA,EAAaC,aAAA,QAAqB;AAQ3C,SAAAC,mBAAA;AAAA,SACEC,uBAAA,EAAAC,yBAAA;AAAA,SAGFF,mBAAA,EACED,aAAA,EACAD,WAAA,EAAAL,UAGK,E","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,WAAA,EAAaC,aAAA,QAAqB;AAQ3C,SAAAC,mBAAA;AAAA,SACEC,uBAAA,EAAAC,yBAAA;AAAA,SAGFF,mBAAA,EACED,aAAA,EACAD,WAAA,EAAAL,UAGK,E","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "on-zero",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.14",
|
|
4
4
|
"description": "A typed layer over @rocicorp/zero with queries, mutations, and permissions",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"source": "src/index.ts",
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
}
|
|
78
78
|
},
|
|
79
79
|
"dependencies": {
|
|
80
|
-
"@take-out/helpers": "0.4.
|
|
80
|
+
"@take-out/helpers": "0.4.14",
|
|
81
81
|
"chokidar": "^4.0.3",
|
|
82
82
|
"citty": "^0.1.6",
|
|
83
83
|
"valibot": "^1.1.0"
|