@effect-app/vue 4.0.0-beta.30 → 4.0.0-beta.301
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/CHANGELOG.md +2234 -0
- package/dist/atomQuery.d.ts +111 -0
- package/dist/atomQuery.d.ts.map +1 -0
- package/dist/atomQuery.js +386 -0
- package/dist/commander.d.ts +634 -0
- package/dist/commander.d.ts.map +1 -0
- package/dist/commander.js +1070 -0
- package/dist/{experimental/confirm.d.ts → confirm.d.ts} +6 -4
- package/dist/confirm.d.ts.map +1 -0
- package/dist/confirm.js +26 -0
- package/dist/dependencyMetadata.d.ts +10 -0
- package/dist/dependencyMetadata.d.ts.map +1 -0
- package/dist/dependencyMetadata.js +29 -0
- package/dist/errorReporter.d.ts +6 -4
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +14 -19
- package/dist/form.d.ts +14 -5
- package/dist/form.d.ts.map +1 -1
- package/dist/form.js +46 -13
- package/dist/internal/tanstackQuery.d.ts +9 -0
- package/dist/internal/tanstackQuery.d.ts.map +1 -0
- package/dist/internal/tanstackQuery.js +194 -0
- package/dist/intl.d.ts +15 -0
- package/dist/intl.d.ts.map +1 -0
- package/dist/intl.js +9 -0
- package/dist/lib.d.ts +7 -9
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +35 -10
- package/dist/makeClient.d.ts +236 -336
- package/dist/makeClient.d.ts.map +1 -1
- package/dist/makeClient.js +416 -408
- package/dist/makeContext.d.ts.map +1 -1
- package/dist/makeIntl.d.ts.map +1 -1
- package/dist/{experimental/makeUseCommand.d.ts → makeUseCommand.d.ts} +4 -3
- package/dist/makeUseCommand.d.ts.map +1 -0
- package/dist/makeUseCommand.js +13 -0
- package/dist/mutate.d.ts +108 -40
- package/dist/mutate.d.ts.map +1 -1
- package/dist/mutate.js +211 -58
- package/dist/query.d.ts +150 -46
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +370 -122
- package/dist/routeParams.d.ts +4 -4
- package/dist/routeParams.d.ts.map +1 -1
- package/dist/routeParams.js +4 -3
- package/dist/runtime.d.ts +1 -14
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +2 -26
- package/dist/suspense.d.ts +19 -0
- package/dist/suspense.d.ts.map +1 -0
- package/dist/suspense.js +38 -0
- package/dist/toast.d.ts +2 -0
- package/dist/toast.d.ts.map +1 -0
- package/dist/toast.js +2 -0
- package/dist/withToast.d.ts +2 -0
- package/dist/withToast.d.ts.map +1 -0
- package/dist/withToast.js +2 -0
- package/docs/atom-query-api-redesign.md +207 -0
- package/docs/query-key-invalidation.md +106 -0
- package/examples/streamMutation.ts +72 -0
- package/package.json +36 -95
- package/src/atomQuery.ts +540 -0
- package/src/commander.ts +3413 -0
- package/src/{experimental/confirm.ts → confirm.ts} +13 -15
- package/src/dependencyMetadata.ts +38 -0
- package/src/errorReporter.ts +65 -75
- package/src/form.ts +61 -18
- package/src/index.ts +7 -7
- package/src/internal/tanstackQuery.ts +289 -0
- package/src/intl.ts +12 -0
- package/src/lib.ts +49 -21
- package/src/makeClient.ts +967 -1159
- package/src/makeIntl.ts +2 -2
- package/src/{experimental/makeUseCommand.ts → makeUseCommand.ts} +9 -6
- package/src/mutate.ts +370 -152
- package/src/query.ts +742 -260
- package/src/routeParams.ts +7 -7
- package/src/runtime.ts +1 -31
- package/src/suspense.ts +43 -0
- package/src/toast.ts +1 -0
- package/src/withToast.ts +1 -0
- package/test/Mutation.test.ts +181 -24
- package/test/dependencyInvalidation.test.ts +373 -0
- package/test/dist/dependencyInvalidation.test.d.ts.map +1 -0
- package/test/dist/form.test.d.ts.map +1 -1
- package/test/dist/interrupt-refetch-repro.test.d.ts.map +1 -0
- package/test/dist/lib.test.d.ts.map +1 -0
- package/test/dist/query-span.test.d.ts.map +1 -0
- package/test/dist/queryOptions.test.d.ts.map +1 -0
- package/test/dist/streamFinal.test.d.ts.map +1 -0
- package/test/dist/streamFn.test.d.ts.map +1 -0
- package/test/dist/stubs.d.ts +3756 -122
- package/test/dist/stubs.d.ts.map +1 -1
- package/test/dist/stubs.js +192 -32
- package/test/dist/suspense-regression.test.d.ts.map +1 -0
- package/test/dist/suspense.test.d.ts.map +1 -0
- package/test/form-validation-errors.test.ts +25 -20
- package/test/form.test.ts +22 -3
- package/test/interrupt-refetch-repro.test.ts +623 -0
- package/test/lib.test.ts +240 -0
- package/test/makeClient.test.ts +437 -38
- package/test/query-span.test.ts +92 -0
- package/test/queryOptions.test.ts +88 -0
- package/test/streamFinal.test.ts +64 -0
- package/test/streamFn.test.ts +457 -0
- package/test/stubs.ts +228 -43
- package/test/suspense-regression.test.ts +168 -0
- package/test/suspense.test.ts +160 -0
- package/tsconfig.examples.json +20 -0
- package/tsconfig.json +3 -1
- package/tsconfig.src.json +34 -34
- package/tsconfig.test.json +2 -2
- package/vitest.config.ts +5 -5
- package/dist/experimental/commander.d.ts +0 -359
- package/dist/experimental/commander.d.ts.map +0 -1
- package/dist/experimental/commander.js +0 -557
- package/dist/experimental/confirm.d.ts.map +0 -1
- package/dist/experimental/confirm.js +0 -28
- package/dist/experimental/intl.d.ts +0 -16
- package/dist/experimental/intl.d.ts.map +0 -1
- package/dist/experimental/intl.js +0 -5
- package/dist/experimental/makeUseCommand.d.ts.map +0 -1
- package/dist/experimental/makeUseCommand.js +0 -13
- package/dist/experimental/toast.d.ts +0 -47
- package/dist/experimental/toast.d.ts.map +0 -1
- package/dist/experimental/toast.js +0 -41
- package/dist/experimental/withToast.d.ts +0 -25
- package/dist/experimental/withToast.d.ts.map +0 -1
- package/dist/experimental/withToast.js +0 -45
- package/eslint.config.mjs +0 -24
- package/src/experimental/commander.ts +0 -1835
- package/src/experimental/intl.ts +0 -9
- package/src/experimental/toast.ts +0 -66
- package/src/experimental/withToast.ts +0 -99
- package/tsconfig.json.bak +0 -12
package/dist/query.js
CHANGED
|
@@ -2,123 +2,383 @@
|
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
4
4
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
5
|
+
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
6
|
+
import { injectRegistry, useAtomValue } from "@effect/atom-vue";
|
|
7
|
+
import * as Array from "effect-app/Array";
|
|
8
|
+
import { makeQueryKey } from "effect-app/client";
|
|
9
|
+
import * as Effect from "effect-app/Effect";
|
|
10
|
+
import * as Option from "effect-app/Option";
|
|
11
|
+
import * as Exit from "effect/Exit";
|
|
12
|
+
import * as Stream from "effect/Stream";
|
|
9
13
|
import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
|
|
10
|
-
import
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
import * as Atom from "effect/unstable/reactivity/Atom";
|
|
15
|
+
import { computed, effectScope, onBeforeUnmount, onMounted, onScopeDispose, ref, toValue } from "vue";
|
|
16
|
+
import { awaitAtomResult, buildQueryFamily, buildStreamQueryFamily, disabledQueryAtom, isStaleResult, refreshAtomWithCurrentSpan, staleTimeMsOf, withQueryOptions } from "./atomQuery.js";
|
|
17
|
+
import { latestDefined } from "./suspense.js";
|
|
18
|
+
const useScopedSuspenseSetup = (setup) => {
|
|
19
|
+
const scope = effectScope();
|
|
20
|
+
const controller = new AbortController();
|
|
21
|
+
const value = scope.run(setup);
|
|
22
|
+
if (value === undefined) {
|
|
23
|
+
throw new Error("Internal Error: atom suspense setup scope did not initialize");
|
|
19
24
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
65
|
-
queryKey,
|
|
66
|
-
queryFn: ({ meta, signal }) => runPromise(handler
|
|
67
|
-
.pipe(Effect.tapCauseIf(Cause.hasDies, (cause) => reportRuntimeError(cause)), Effect.withSpan(`query ${q.id}`, {}, { captureStackTrace: false }), meta?.["span"] ? Effect.withParentSpan(meta["span"]) : (_) => _), { signal })
|
|
25
|
+
const isMounted = ref(true);
|
|
26
|
+
let stopped = false;
|
|
27
|
+
const stop = () => {
|
|
28
|
+
if (stopped)
|
|
29
|
+
return;
|
|
30
|
+
stopped = true;
|
|
31
|
+
isMounted.value = false;
|
|
32
|
+
controller.abort();
|
|
33
|
+
scope.stop();
|
|
34
|
+
};
|
|
35
|
+
onBeforeUnmount(stop);
|
|
36
|
+
onScopeDispose(stop);
|
|
37
|
+
return [value, isMounted, controller.signal];
|
|
38
|
+
};
|
|
39
|
+
const queryFamilyCacheKey = (q) => `${makeQueryKey(q).join("/")}:${q.queryKeyProjectionHash ?? ""}`;
|
|
40
|
+
// One atom family per request shape, keyed by the stable query key + projection hash (not the
|
|
41
|
+
// handler object — `clientFor` returns a fresh proxy per call, so the object isn't shareable).
|
|
42
|
+
// Module-level + key-indexed => the family is process-global, so the same request+input read
|
|
43
|
+
// the same atom across components/pages => cross-page caching via the global registry.
|
|
44
|
+
const queryFamilyByKey = new Map();
|
|
45
|
+
const getQueryFamily = (rt, q) => {
|
|
46
|
+
const key = queryFamilyCacheKey(q);
|
|
47
|
+
let f = queryFamilyByKey.get(key);
|
|
48
|
+
if (!f) {
|
|
49
|
+
f = buildQueryFamily(rt, q);
|
|
50
|
+
queryFamilyByKey.set(key, f);
|
|
51
|
+
}
|
|
52
|
+
return f;
|
|
53
|
+
};
|
|
54
|
+
const streamQueryFamilyByKey = new Map();
|
|
55
|
+
const getStreamQueryFamily = (rt, q) => {
|
|
56
|
+
const key = queryFamilyCacheKey(q);
|
|
57
|
+
let f = streamQueryFamilyByKey.get(key);
|
|
58
|
+
if (!f) {
|
|
59
|
+
f = buildStreamQueryFamily(rt, q);
|
|
60
|
+
streamQueryFamilyByKey.set(key, f);
|
|
61
|
+
}
|
|
62
|
+
return f;
|
|
63
|
+
};
|
|
64
|
+
const makeAtomQueryCacheUpdater = (warnIfMissing) => ({
|
|
65
|
+
update: (registry, query, input, updater) => {
|
|
66
|
+
const family = queryFamilyByKey.get(queryFamilyCacheKey(query));
|
|
67
|
+
if (!family) {
|
|
68
|
+
if (warnIfMissing) {
|
|
69
|
+
console.warn(`Query ${query.id} has not been used yet; nothing to update`);
|
|
68
70
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const atom = family(input);
|
|
74
|
+
const current = registry.get(atom);
|
|
75
|
+
const next = AsyncResult.map(current, updater);
|
|
76
|
+
registry.set(atom, next);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
export const atomQueryCacheUpdater = makeAtomQueryCacheUpdater(true);
|
|
80
|
+
export const optionalAtomQueryCacheUpdater = makeAtomQueryCacheUpdater(false);
|
|
81
|
+
export const combineQueryCacheUpdaters = (first, second) => ({
|
|
82
|
+
update: (registry, query, input, updater) => {
|
|
83
|
+
first.update(registry, query, input, updater);
|
|
84
|
+
second.update(registry, query, input, updater);
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
let activeQueryCacheUpdater = atomQueryCacheUpdater;
|
|
88
|
+
export const setQueryCacheUpdater = (updater) => {
|
|
89
|
+
activeQueryCacheUpdater = updater;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Layer TanStack `initialData` / `placeholderData` over a raw query result as a DISPLAY fallback.
|
|
93
|
+
* Only while the result is still `Initial` (pending, never settled): show `initialData` as resolved
|
|
94
|
+
* data, or `placeholderData` as provisional (`waiting: true`). Once real data exists the seed is
|
|
95
|
+
* dropped. Failures are never masked — including failures without `previousSuccess` (where
|
|
96
|
+
* `AsyncResult.value` is empty). `placeholderData` in function form receives the last seen concrete
|
|
97
|
+
* value for basic keep-previous across input changes. Returns the raw ref untouched when neither
|
|
98
|
+
* option is set. Neither value is written to the atom cache.
|
|
99
|
+
*/
|
|
100
|
+
export const withDataFallback = (rawResult, options) => {
|
|
101
|
+
const opts = options;
|
|
102
|
+
const initialData = opts?.initialData;
|
|
103
|
+
const placeholderData = opts?.placeholderData;
|
|
104
|
+
if (initialData === undefined && placeholderData === undefined) {
|
|
105
|
+
return rawResult;
|
|
106
|
+
}
|
|
107
|
+
let lastData;
|
|
108
|
+
return computed(() => {
|
|
109
|
+
const r = rawResult.value;
|
|
110
|
+
const concrete = AsyncResult.value(r);
|
|
111
|
+
if (Option.isSome(concrete)) {
|
|
112
|
+
lastData = concrete.value;
|
|
113
|
+
}
|
|
114
|
+
// Fallback is pending-only. Failure (even without previousSuccess) and Success pass through.
|
|
115
|
+
if (!AsyncResult.isInitial(r)) {
|
|
116
|
+
return r;
|
|
117
|
+
}
|
|
118
|
+
if (initialData !== undefined) {
|
|
119
|
+
const v = typeof initialData === "function" ? initialData() : initialData;
|
|
120
|
+
return AsyncResult.success(v, { waiting: r.waiting });
|
|
121
|
+
}
|
|
122
|
+
const v = typeof placeholderData === "function"
|
|
123
|
+
? placeholderData(lastData)
|
|
124
|
+
: placeholderData;
|
|
125
|
+
return v === undefined ? r : AsyncResult.success(v, { waiting: true });
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
const normalizeQueryOptions = (options) => {
|
|
129
|
+
const out = {};
|
|
130
|
+
if (options?.staleTime !== undefined)
|
|
131
|
+
out.staleTime = options.staleTime;
|
|
132
|
+
const gcTime = options?.idleTTL ?? options?.gcTime;
|
|
133
|
+
if (gcTime !== undefined)
|
|
134
|
+
out.gcTime = gcTime;
|
|
135
|
+
const revalidateOnFocus = options?.revalidateOnFocus ?? options?.refetchOnWindowFocus;
|
|
136
|
+
if (revalidateOnFocus !== undefined)
|
|
137
|
+
out.revalidateOnFocus = revalidateOnFocus;
|
|
138
|
+
if (options?.structuralSharing !== undefined)
|
|
139
|
+
out.structuralSharing = options.structuralSharing;
|
|
140
|
+
const refetchInterval = options?.refreshEvery ?? options?.refetchInterval;
|
|
141
|
+
if (refetchInterval !== undefined)
|
|
142
|
+
out.refetchInterval = refetchInterval;
|
|
143
|
+
return out;
|
|
144
|
+
};
|
|
145
|
+
export const useAtomQuery = (atom) => {
|
|
146
|
+
const registry = injectRegistry();
|
|
147
|
+
const atomRef = computed(atom);
|
|
148
|
+
const atomResult = useAtomValue(() => atomRef.value);
|
|
149
|
+
const result = computed(() => atomResult.value);
|
|
150
|
+
const refresh = () => registry.refresh(atomRef.value);
|
|
151
|
+
const awaitResult = () => awaitAtomResult(registry, atomRef.value);
|
|
152
|
+
const refetch = () => Effect.gen(function* () {
|
|
153
|
+
yield* refreshAtomWithCurrentSpan(registry, atomRef.value);
|
|
154
|
+
return yield* awaitResult();
|
|
155
|
+
});
|
|
156
|
+
const data = computed(() => Option.getOrUndefined(AsyncResult.value(result.value)));
|
|
157
|
+
return {
|
|
158
|
+
result,
|
|
159
|
+
data,
|
|
160
|
+
awaitResult,
|
|
161
|
+
refetch,
|
|
162
|
+
refresh,
|
|
163
|
+
registry,
|
|
164
|
+
atom: atomRef
|
|
101
165
|
};
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
166
|
+
};
|
|
167
|
+
export const useAtomSuspense = (atom) => {
|
|
168
|
+
const [{ view, data }, isMounted, signal] = useScopedSuspenseSetup(() => {
|
|
169
|
+
const view = useAtomQuery(atom);
|
|
170
|
+
const data = latestDefined(() => view.data.value, "atom suspense");
|
|
171
|
+
return { view, data };
|
|
172
|
+
});
|
|
173
|
+
const eff = Effect.gen(function* () {
|
|
174
|
+
const exit = yield* view.awaitResult().pipe(Effect.exit);
|
|
175
|
+
if (!isMounted.value) {
|
|
176
|
+
return yield* Effect.interrupt;
|
|
108
177
|
}
|
|
109
|
-
if (
|
|
110
|
-
return
|
|
178
|
+
if (Exit.isFailure(exit)) {
|
|
179
|
+
return yield* Exit.failCause(exit.cause);
|
|
111
180
|
}
|
|
112
|
-
|
|
181
|
+
const fetch = (_options) => view.refetch();
|
|
182
|
+
const handle = {
|
|
183
|
+
awaitResult: view.awaitResult,
|
|
184
|
+
refetch: view.refetch,
|
|
185
|
+
refresh: view.refresh,
|
|
186
|
+
registry: view.registry,
|
|
187
|
+
atom: view.atom
|
|
188
|
+
};
|
|
189
|
+
return Object.assign([
|
|
190
|
+
view.result,
|
|
191
|
+
data,
|
|
192
|
+
fetch,
|
|
193
|
+
handle
|
|
194
|
+
], {
|
|
195
|
+
...view,
|
|
196
|
+
data
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
return Effect.runPromise(eff, { signal });
|
|
200
|
+
};
|
|
201
|
+
export const useAtomStreamQuery = (atom) => {
|
|
202
|
+
const registry = injectRegistry();
|
|
203
|
+
const atomRef = computed(atom);
|
|
204
|
+
const atomResult = useAtomValue(() => atomRef.value);
|
|
205
|
+
const result = computed(() => atomResult.value);
|
|
206
|
+
const pull = () => registry.set(atomRef.value, void 0);
|
|
207
|
+
const refresh = () => registry.refresh(atomRef.value);
|
|
208
|
+
const awaitResult = () => awaitAtomResult(registry, atomRef.value);
|
|
209
|
+
const pullAndAwait = () => Effect.gen(function* () {
|
|
210
|
+
pull();
|
|
211
|
+
return yield* awaitResult();
|
|
212
|
+
});
|
|
213
|
+
const items = computed(() => Option.getOrElse(Option.map(AsyncResult.value(result.value), (_) => _.items), () => []));
|
|
214
|
+
const latest = computed(() => items.value.at(-1));
|
|
215
|
+
const done = computed(() => Option.getOrElse(Option.map(AsyncResult.value(result.value), (_) => _.done), () => false));
|
|
216
|
+
return {
|
|
217
|
+
result,
|
|
218
|
+
items,
|
|
219
|
+
latest,
|
|
220
|
+
done,
|
|
221
|
+
awaitResult,
|
|
222
|
+
pull,
|
|
223
|
+
pullAndAwait,
|
|
224
|
+
refresh,
|
|
225
|
+
registry,
|
|
226
|
+
atom: atomRef
|
|
227
|
+
};
|
|
228
|
+
};
|
|
229
|
+
const optionValue = (arr, options) => {
|
|
230
|
+
if (options?.mode === "optional") {
|
|
231
|
+
const getOption = typeof arr === "function"
|
|
232
|
+
? arr
|
|
233
|
+
: () => arr.value;
|
|
234
|
+
return [
|
|
235
|
+
{
|
|
236
|
+
get value() {
|
|
237
|
+
return Option.getOrUndefined(getOption());
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
computed(() => Option.isSome(getOption()))
|
|
241
|
+
];
|
|
113
242
|
}
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
?
|
|
118
|
-
|
|
243
|
+
const req = !arr
|
|
244
|
+
? ({ value: undefined })
|
|
245
|
+
: typeof arr === "function"
|
|
246
|
+
? ({
|
|
247
|
+
get value() {
|
|
248
|
+
return arr();
|
|
249
|
+
}
|
|
250
|
+
})
|
|
251
|
+
: ref(arr);
|
|
252
|
+
const enabled = options?.enabled;
|
|
253
|
+
return [req, computed(() => enabled === undefined ? true : !!toValue(enabled))];
|
|
254
|
+
};
|
|
255
|
+
const observedAtom = (atom, options) => withQueryOptions(atom, normalizeQueryOptions(options));
|
|
256
|
+
const observedStreamAtom = (atom, options) => {
|
|
257
|
+
let next = atom;
|
|
258
|
+
const refetchInterval = options?.refreshEvery ?? options?.refetchInterval;
|
|
259
|
+
if (refetchInterval !== undefined)
|
|
260
|
+
next = Atom.withRefresh(refetchInterval)(next);
|
|
261
|
+
const gcTime = options?.idleTTL ?? options?.gcTime;
|
|
262
|
+
if (gcTime === "infinity")
|
|
263
|
+
return Atom.keepAlive(next);
|
|
264
|
+
if (gcTime !== undefined)
|
|
265
|
+
return Atom.setIdleTTL(next, gcTime);
|
|
266
|
+
return next;
|
|
267
|
+
};
|
|
268
|
+
const queryAtomFor = (rt, q, arg, options) => {
|
|
269
|
+
const family = getQueryFamily(rt, q);
|
|
270
|
+
return observedAtom(family(arg), options);
|
|
271
|
+
};
|
|
272
|
+
const makeQueryView = (getAtomRt, q, arg, options) => {
|
|
273
|
+
const atomRt = getAtomRt();
|
|
274
|
+
const registry = injectRegistry();
|
|
275
|
+
const [req, enabledRef] = optionValue(arg, options);
|
|
276
|
+
const family = getQueryFamily(atomRt, q);
|
|
277
|
+
const atomRef = computed(() => enabledRef.value ? observedAtom(family(req.value), options) : disabledQueryAtom);
|
|
278
|
+
const rawResult = useAtomValue(() => atomRef.value);
|
|
279
|
+
// `initialData` / `placeholderData` display fallback (old `.query()` API). Applied only while the
|
|
280
|
+
// result is still Initial; Failures/Success pass through unmasked. Neither is written to cache
|
|
281
|
+
// (the base atom stays Initial, so the mount-staleness check still triggers the real fetch). The
|
|
282
|
+
// fallback runs PRE-select, matching TanStack (`initialData`/`placeholderData` are TQueryData).
|
|
283
|
+
const fallbackResult = withDataFallback(rawResult, options);
|
|
284
|
+
const select = options?.select;
|
|
285
|
+
const result = (select
|
|
286
|
+
? computed(() => AsyncResult.map(fallbackResult.value, select))
|
|
287
|
+
: fallbackResult);
|
|
288
|
+
const refresh = () => registry.refresh(atomRef.value);
|
|
289
|
+
const awaitResult = () => select
|
|
290
|
+
? awaitAtomResult(registry, atomRef.value).pipe(Effect.map(select))
|
|
291
|
+
: awaitAtomResult(registry, atomRef.value);
|
|
292
|
+
const refetch = () => Effect.gen(function* () {
|
|
293
|
+
yield* refreshAtomWithCurrentSpan(registry, atomRef.value);
|
|
294
|
+
return yield* awaitResult();
|
|
295
|
+
});
|
|
296
|
+
const staleMs = staleTimeMsOf(normalizeQueryOptions(options));
|
|
297
|
+
onMounted(() => {
|
|
298
|
+
if (!enabledRef.value)
|
|
299
|
+
return;
|
|
300
|
+
if (isStaleResult(registry.get(atomRef.value), staleMs))
|
|
301
|
+
refresh();
|
|
302
|
+
});
|
|
303
|
+
const data = computed(() => Option.getOrUndefined(AsyncResult.value(result.value)));
|
|
304
|
+
return {
|
|
305
|
+
result,
|
|
306
|
+
data,
|
|
307
|
+
awaitResult,
|
|
308
|
+
refetch,
|
|
309
|
+
refresh,
|
|
310
|
+
registry,
|
|
311
|
+
atom: atomRef
|
|
119
312
|
};
|
|
313
|
+
};
|
|
314
|
+
export const makeQueryFamily = (_getRuntime, getAtomRt) => {
|
|
315
|
+
const useQueryFamily = (q) => getQueryFamily(getAtomRt(), q);
|
|
316
|
+
return useQueryFamily;
|
|
317
|
+
};
|
|
318
|
+
export const makeQueryAtom = (_getRuntime, getAtomRt) => {
|
|
319
|
+
const useQueryAtom = (q) => (arg, options) => queryAtomFor(getAtomRt(), q, arg, options);
|
|
320
|
+
return useQueryAtom;
|
|
321
|
+
};
|
|
322
|
+
export const makeQueryNew = (_getRuntime, getAtomRt) => {
|
|
323
|
+
const useQueryNew = (q) => (arg, options) => makeQueryView(getAtomRt, q, arg, options);
|
|
324
|
+
return useQueryNew;
|
|
325
|
+
};
|
|
326
|
+
export const makeQuery = (_getRuntime, getAtomRt) => {
|
|
327
|
+
const useQuery_ = (q) => (arg, options) => {
|
|
328
|
+
const view = makeQueryView(getAtomRt, q, arg, options);
|
|
329
|
+
// 4th element is internal-only; the public `.suspense()` Promise boundary lives in makeClient.
|
|
330
|
+
const handle = {
|
|
331
|
+
awaitResult: view.awaitResult,
|
|
332
|
+
refetch: view.refetch,
|
|
333
|
+
refresh: view.refresh,
|
|
334
|
+
registry: view.registry,
|
|
335
|
+
atom: view.atom
|
|
336
|
+
};
|
|
337
|
+
return [
|
|
338
|
+
view.result,
|
|
339
|
+
view.data,
|
|
340
|
+
(_options) => view.refetch(),
|
|
341
|
+
handle
|
|
342
|
+
];
|
|
343
|
+
};
|
|
344
|
+
const useQuery = ((self) => {
|
|
345
|
+
const q = useQuery_(self);
|
|
346
|
+
return (arg, options) => q(arg, options);
|
|
347
|
+
});
|
|
120
348
|
return useQuery;
|
|
121
349
|
};
|
|
350
|
+
const streamQueryAtomFor = (rt, q, arg, options) => {
|
|
351
|
+
const family = getStreamQueryFamily(rt, q);
|
|
352
|
+
return observedStreamAtom(family(arg), options);
|
|
353
|
+
};
|
|
354
|
+
export const makeStreamQueryFamily = (_getRuntime, getAtomRt) => {
|
|
355
|
+
const useStreamQueryFamily = (q) => getStreamQueryFamily(getAtomRt(), q);
|
|
356
|
+
return useStreamQueryFamily;
|
|
357
|
+
};
|
|
358
|
+
export const makeStreamQueryAtom = (_getRuntime, getAtomRt) => {
|
|
359
|
+
const useStreamQueryAtom = (q) => (arg, options) => streamQueryAtomFor(getAtomRt(), q, arg, options);
|
|
360
|
+
return useStreamQueryAtom;
|
|
361
|
+
};
|
|
362
|
+
export const makeStreamQueryNew = (_getRuntime, getAtomRt) => {
|
|
363
|
+
const useStreamQueryNew = (q) => (arg, options) => useAtomStreamQuery(() => streamQueryAtomFor(getAtomRt(), q, toValue(arg), options));
|
|
364
|
+
return useStreamQueryNew;
|
|
365
|
+
};
|
|
366
|
+
export const makeStreamQuery = (getRuntime, getAtomRt) => {
|
|
367
|
+
const query = makeQuery(getRuntime, getAtomRt);
|
|
368
|
+
// A stream query is an ordinary atom query over an effect that collects the whole stream
|
|
369
|
+
// into an array (`Stream.runCollect`). It reuses all the atom machinery (family cache, swr,
|
|
370
|
+
// invalidation, structural sharing). Note: unlike the old tanstack `streamedQuery`, the result
|
|
371
|
+
// appears once the stream completes, not incrementally (stream queries are not used today).
|
|
372
|
+
const streamQuery_ = (q) => {
|
|
373
|
+
const hook = query({
|
|
374
|
+
id: q.id,
|
|
375
|
+
options: q.options,
|
|
376
|
+
handler: (i) => Stream.runCollect(q.handler(i)).pipe(Effect.map((chunk) => [...chunk]))
|
|
377
|
+
});
|
|
378
|
+
return (arg) => hook(arg);
|
|
379
|
+
};
|
|
380
|
+
return streamQuery_;
|
|
381
|
+
};
|
|
122
382
|
function orPrevious(result) {
|
|
123
383
|
return AsyncResult.isFailure(result) && Option.isSome(result.previousSuccess)
|
|
124
384
|
? AsyncResult.success(result.previousSuccess.value, { waiting: result.waiting })
|
|
@@ -148,20 +408,8 @@ export function composeQueries(results, renderPreviousOnFailure) {
|
|
|
148
408
|
return AsyncResult.success(r, { waiting: isRefreshing });
|
|
149
409
|
}
|
|
150
410
|
export const useUpdateQuery = () => {
|
|
151
|
-
const
|
|
152
|
-
const f = (query,
|
|
153
|
-
const updater = updaterMaybe !== undefined ? updaterMaybe : updateOrInput;
|
|
154
|
-
const key = updaterMaybe !== undefined
|
|
155
|
-
? [...makeQueryKey(query), updateOrInput]
|
|
156
|
-
: makeQueryKey(query);
|
|
157
|
-
const data = queryClient.getQueryData(key);
|
|
158
|
-
if (data) {
|
|
159
|
-
queryClient.setQueryData(key, updater);
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
console.warn(`Query data for key ${key} not found`, key);
|
|
163
|
-
}
|
|
164
|
-
};
|
|
411
|
+
const registry = injectRegistry();
|
|
412
|
+
const f = (query, input, updater) => activeQueryCacheUpdater.update(registry, query, input, updater);
|
|
165
413
|
return f;
|
|
166
414
|
};
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHNEQUFzRDtBQUN0RCx3REFBd0Q7QUFDeEQsNERBQTREO0FBQzVELE9BQU8sRUFBNE0sUUFBUSxJQUFJLGdCQUFnQixFQUFFLGNBQWMsRUFBMkQsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyVixPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFtQixNQUFNLFlBQVksQ0FBQTtBQUd6RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUVsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUN4RSxPQUFPLEtBQUssV0FBVyxNQUFNLHdDQUF3QyxDQUFBO0FBQ3JFLE9BQU8sRUFBRSxRQUFRLEVBQTJDLEdBQUcsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFvQixNQUFNLEtBQUssQ0FBQTtBQUNqSCxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFBO0FBK0QzRCxNQUFNLE9BQU8saUJBQXFCLFNBQVEsS0FBSztJQUUxQjtJQURWLEtBQUssQ0FBUztJQUN2QixZQUFtQixXQUEyQjtRQUM1QyxLQUFLLENBQUMsMkJBQTJCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBO1FBRDdDLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUU1QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDeEMsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUksVUFBMEMsRUFBRSxFQUFFO0lBQ3pFLE1BQU0sU0FBUyxHQW9DWCxDQUNGLENBRTBDLEVBQzFDLEVBQUUsQ0FDSixDQUNFLEdBQW1DO0lBQ25DLHFHQUFxRztJQUNyRyxPQUFhO0lBQ2IsT0FBTztNQUNQLEVBQUU7UUFDRix3RkFBd0Y7UUFDeEYsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDckUsQ0FBQyxDQUFDLElBQUksQ0FDSixJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ1QsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEUsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztTQUM3QyxDQUFDLENBQ0gsQ0FBQyxDQUFBO1FBQ0osTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFBO1FBQ2YsTUFBTSxHQUFHLEdBQWlCLENBQUMsR0FBRztZQUM1QixDQUFDLENBQUMsU0FBUztZQUNYLENBQUMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxVQUFVO2dCQUMzQixDQUFDLENBQUU7b0JBQ0QsSUFBSSxLQUFLO3dCQUNQLE9BQVEsR0FBVyxFQUFFLENBQUE7b0JBQ3ZCLENBQUM7aUJBQ007Z0JBQ1QsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNaLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNoQyxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFBO1FBRXpCLE1BQU0sY0FBYyxHQUFHO1lBQ3JCLHFHQUFxRztZQUNyRywrU0FBK1M7WUFDL1Msc0xBQXNMO1lBQ3RMLDBHQUEwRztZQUMxRyx1RUFBdUU7WUFDdkUsbUpBQW1KO1lBQ25KLFlBQVksRUFBRSxLQUFLO1NBQ3BCLENBQUE7UUFFRCxNQUFNLENBQUMsR0FBRyxnQkFBZ0IsQ0FDeEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDdEIsQ0FBQyxDQUFDO2dCQUNBLEdBQUcsY0FBYztnQkFDakIsR0FBRyxPQUFPO2dCQUNWLEtBQUssRUFBRSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRTtvQkFDM0IsSUFBSSxLQUFLLFlBQVksaUJBQWlCLEVBQUUsQ0FBQzt3QkFDdkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQzs0QkFDbkYsT0FBTyxLQUFLLENBQUE7d0JBQ2QsQ0FBQztvQkFDSCxDQUFDO29CQUVELE9BQU8sVUFBVSxHQUFHLENBQUMsQ0FBQTtnQkFDdkIsQ0FBQztnQkFDRCxRQUFRO2dCQUNSLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FDNUIsVUFBVSxDQUNSLE9BQU87cUJBQ0osSUFBSSxDQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDdEUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUNsRSxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FDeEUsRUFDSCxFQUFFLE1BQU0sRUFBRSxDQUNYO2FBQ0o7WUFDRCxDQUFDLENBQUM7Z0JBQ0EsR0FBRyxjQUFjO2dCQUNqQixHQUFHLE9BQU87Z0JBQ1YsS0FBSyxFQUFFLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFO29CQUMzQixJQUFJLEtBQUssWUFBWSxpQkFBaUIsRUFBRSxDQUFDO3dCQUN2QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDOzRCQUNuRixPQUFPLEtBQUssQ0FBQTt3QkFDZCxDQUFDO29CQUNILENBQUM7b0JBRUQsT0FBTyxVQUFVLEdBQUcsQ0FBQyxDQUFBO2dCQUN2QixDQUFDO2dCQUNELFFBQVEsRUFBRSxDQUFDLEdBQUcsUUFBUSxFQUFFLEdBQUcsQ0FBQztnQkFDNUIsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUM1QixVQUFVLENBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7cUJBQ2YsSUFBSSxDQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDdEUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUNsRSxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FDeEUsRUFDSCxFQUFFLE1BQU0sRUFBRSxDQUNYO2FBQ0osQ0FDSixDQUFBO1FBRUQsTUFBTSxhQUFhLEdBQUcsVUFBVSxFQUFTLENBQUE7UUFDekMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQXNDLEVBQUUsQ0FDOUQsVUFBVSxDQUFDO1lBQ1QsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLFNBQVM7WUFDakMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsdUZBQXVGO1lBQzlKLFlBQVksRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUs7U0FDakMsQ0FBQyxDQUNILENBQUE7UUFDRCw2REFBNkQ7UUFDN0QsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBRXBILE9BQU87WUFDTCxNQUFNO1lBQ04sUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7WUFDbkMscUdBQXFHO1lBQ3JHLDJGQUEyRjtZQUMzRiwrREFBK0Q7WUFDL0QsQ0FBQyxPQUF3QixFQUFFLEVBQUUsQ0FDM0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQ2hDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ2hHO1lBQ0gsQ0FBQztTQUNLLENBQUE7SUFDVixDQUFDLENBQUE7SUFFRCxTQUFTLFVBQVUsQ0FBTyxDQUl6QjtRQUNDLElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMxQixPQUFPLFdBQVcsQ0FBQyxtQkFBbUIsQ0FDcEMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQ25CO2dCQUNFLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN6RixPQUFPLEVBQUUsQ0FBQyxDQUFDLFlBQVk7YUFDeEIsQ0FDRixDQUFBO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN6QixPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQTtRQUN2RSxDQUFDO1FBRUQsT0FBTyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBc0ZWLENBQ0YsSUFBUyxFQUNULEVBQUU7UUFDRixNQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFekIsT0FBTyxDQUFDLFlBQWtCLEVBQUUsT0FBYSxFQUFFLEVBQUUsQ0FDM0MsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUNoQyxDQUFDLENBQUE7SUFDRCxPQUFPLFFBQVEsQ0FBQTtBQUNqQixDQUFDLENBQUE7QUFLRCxTQUFTLFVBQVUsQ0FBTyxNQUFxQztJQUM3RCxPQUFPLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDO1FBQzNFLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoRixDQUFDLENBQUMsTUFBTSxDQUFBO0FBQ1osQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBRzVCLE9BQVUsRUFDVix1QkFBaUM7SUFXakMsTUFBTSxNQUFNLEdBQUcsdUJBQXVCO1FBQ3BDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7UUFDeEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDMUIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDaEQsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNWLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7SUFDckcsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQTtJQUN0QixDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7SUFDdEgsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQTtJQUN0QixDQUFDO0lBRUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBRWxELE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7UUFDOUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFBO1FBQzFDLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQyxFQUFFLEVBQVMsQ0FBQyxDQUFBO0lBQ2IsT0FBTyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFBO0FBQzFELENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxFQUFFO0lBQ2pDLE1BQU0sV0FBVyxHQUFHLGNBQWMsRUFBRSxDQUFBO0lBRXBDLE1BQU0sQ0FBQyxHQVVILENBQUMsS0FBVSxFQUFFLGFBQWtCLEVBQUUsWUFBa0IsRUFBRSxFQUFFO1FBQ3pELE1BQU0sT0FBTyxHQUFHLFlBQVksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFBO1FBQ3pFLE1BQU0sR0FBRyxHQUFHLFlBQVksS0FBSyxTQUFTO1lBQ3BDLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLGFBQWEsQ0FBQztZQUN6QyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDMUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULFdBQVcsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQ3hDLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDMUQsQ0FBQztJQUNILENBQUMsQ0FBQTtJQUNELE9BQU8sQ0FBQyxDQUFBO0FBQ1YsQ0FBQyxDQUFBIn0=
|
|
415
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHNEQUFzRDtBQUN0RCx3REFBd0Q7QUFDeEQsNERBQTREO0FBQzVELCtEQUErRDtBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQy9ELE9BQU8sS0FBSyxLQUFLLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLG1CQUFtQixDQUFBO0FBSTFELE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUUzQyxPQUFPLEtBQUssSUFBSSxNQUFNLGFBQWEsQ0FBQTtBQUNuQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssV0FBVyxNQUFNLHdDQUF3QyxDQUFBO0FBQ3JFLE9BQU8sS0FBSyxJQUFJLE1BQU0saUNBQWlDLENBQUE7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBb0IsV0FBVyxFQUF5QixlQUFlLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBWSxHQUFHLEVBQUUsT0FBTyxFQUFvQixNQUFNLEtBQUssQ0FBQTtBQUMxSyxPQUFPLEVBQWlELGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsMEJBQTBCLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDeE8sT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQXVCN0MsTUFBTSxzQkFBc0IsR0FBRyxDQUFJLEtBQWMsRUFBRSxFQUFFO0lBQ25ELE1BQU0sS0FBSyxHQUFHLFdBQVcsRUFBRSxDQUFBO0lBQzNCLE1BQU0sVUFBVSxHQUFHLElBQUksZUFB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
|
package/dist/routeParams.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import * as Option from "effect-app/Option";
|
|
2
|
+
import * as S from "effect-app/Schema";
|
|
3
3
|
import type { ParsedQuery } from "query-string";
|
|
4
4
|
export declare function getQueryParam(search: ParsedQuery, param: string): string | null | undefined;
|
|
5
5
|
export declare const getQueryParamO: (search: ParsedQuery, param: string) => Option.Option<string>;
|
|
6
6
|
export declare function parseRouteParamsOption<NER extends Record<string, S.Codec<any, any>>>(query: Record<string, any>, t: NER): {
|
|
7
|
-
[K in keyof NER]: Option.Option<
|
|
7
|
+
[K in keyof NER]: Option.Option<NER[K]["Type"]>;
|
|
8
8
|
};
|
|
9
9
|
export declare function parseRouteParams<NER extends Record<string, S.Codec<any, any>>>(query: Record<string, any>, t: NER): {
|
|
10
|
-
[K in keyof NER]:
|
|
10
|
+
[K in keyof NER]: NER[K]["Type"];
|
|
11
11
|
};
|
|
12
12
|
//# sourceMappingURL=routeParams.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routeParams.d.ts","sourceRoot":"","sources":["../src/routeParams.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"routeParams.d.ts","sourceRoot":"","sources":["../src/routeParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,CAAC,MAAM,mBAAmB,CAAA;AAGtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,6BAM/D;AAED,eAAO,MAAM,cAAc,+DAA4C,CAAA;AAEvE,wBAAgB,sBAAsB,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,GACrH;KACA,CAAC,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;CAChD,CAcA;AAED,wBAAgB,gBAAgB,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAC5E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,CAAC,EAAE,GAAG,GACL;KACA,CAAC,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;CACjC,CAcA"}
|
package/dist/routeParams.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import * as Option from "effect-app/Option";
|
|
2
|
+
import * as S from "effect-app/Schema";
|
|
3
3
|
import { typedKeysOf } from "effect-app/utils";
|
|
4
|
+
import { flow } from "effect/Function";
|
|
4
5
|
export function getQueryParam(search, param) {
|
|
5
6
|
const v = search[param];
|
|
6
7
|
if (Array.isArray(v)) {
|
|
@@ -25,4 +26,4 @@ export function parseRouteParams(query, t // enforce non empty
|
|
|
25
26
|
return prev;
|
|
26
27
|
}, {});
|
|
27
28
|
}
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVQYXJhbXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcm91dGVQYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssQ0FBQyxNQUFNLG1CQUFtQixDQUFBO0FBQ3RDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFHdEMsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUFtQixFQUFFLEtBQWE7SUFDOUQsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3ZCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2IsQ0FBQztJQUNELE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQTtBQUNsQixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBRXZFLE1BQU0sVUFBVSxzQkFBc0IsQ0FBZ0QsS0FBMEIsRUFBRSxDQUFNLENBQUMsb0JBQW9COztJQUkzSSxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQzFCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ1osb0VBQW9FO1FBQ3BFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxjQUFjLENBQUMsS0FBSyxFQUFFLEdBQWEsQ0FBQyxDQUFDLElBQUksQ0FDbkQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBRSxDQUFDLENBQUMsQ0FDL0MsQ0FBQTtRQUVELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQyxFQUNELEVBRUMsQ0FDRixDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsS0FBMEIsRUFDMUIsQ0FBTSxDQUFDLG9CQUFvQjs7SUFJM0IsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUMxQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNaLG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUUsQ0FBQyxDQUNyQyxLQUFhLENBQUMsR0FBRyxDQUFDLENBQ3BCLENBQUE7UUFFRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUMsRUFDRCxFQUVDLENBQ0YsQ0FBQTtBQUNILENBQUMifQ==
|