@plumile/router 0.1.11 → 0.1.13
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/README.md +755 -1
- package/lib/esm/builder.d.ts.map +1 -1
- package/lib/esm/builder.js +10 -3
- package/lib/esm/eslint-rules/index.d.ts +2 -0
- package/lib/esm/eslint-rules/index.d.ts.map +1 -0
- package/lib/esm/eslint-rules/index.js +2 -0
- package/lib/esm/eslint-rules/no-direct-window-location-search.d.ts +4 -0
- package/lib/esm/eslint-rules/no-direct-window-location-search.d.ts.map +1 -0
- package/lib/esm/eslint-rules/no-direct-window-location-search.js +48 -0
- package/lib/esm/history/BrowserHistory.d.ts.map +1 -1
- package/lib/esm/history/BrowserHistory.js +4 -2
- package/lib/esm/index.d.ts +5 -0
- package/lib/esm/index.d.ts.map +1 -1
- package/lib/esm/index.js +6 -1
- package/lib/esm/routing/Link.d.ts +1 -0
- package/lib/esm/routing/Link.d.ts.map +1 -1
- package/lib/esm/routing/Link.js +35 -4
- package/lib/esm/routing/RouteComponentWrapper.d.ts.map +1 -1
- package/lib/esm/routing/RouteComponentWrapper.js +7 -2
- package/lib/esm/routing/createRouter.d.ts +8 -1
- package/lib/esm/routing/createRouter.d.ts.map +1 -1
- package/lib/esm/routing/createRouter.js +540 -17
- package/lib/esm/routing/devtools.d.ts +20 -0
- package/lib/esm/routing/devtools.d.ts.map +1 -0
- package/lib/esm/routing/devtools.js +678 -0
- package/lib/esm/routing/filters.d.ts +97 -0
- package/lib/esm/routing/filters.d.ts.map +1 -0
- package/lib/esm/routing/filters.js +557 -0
- package/lib/esm/routing/index.d.ts +10 -0
- package/lib/esm/routing/index.d.ts.map +1 -1
- package/lib/esm/routing/index.js +11 -1
- package/lib/esm/routing/useActiveFilters.d.ts +9 -0
- package/lib/esm/routing/useActiveFilters.d.ts.map +1 -0
- package/lib/esm/routing/useActiveFilters.js +38 -0
- package/lib/esm/routing/useFilterState.d.ts +10 -0
- package/lib/esm/routing/useFilterState.d.ts.map +1 -0
- package/lib/esm/routing/useFilterState.js +14 -0
- package/lib/esm/routing/useNavigate.d.ts +13 -0
- package/lib/esm/routing/useNavigate.d.ts.map +1 -0
- package/lib/esm/routing/useNavigate.js +11 -0
- package/lib/esm/routing/useNavigateWithQuery.d.ts +15 -0
- package/lib/esm/routing/useNavigateWithQuery.d.ts.map +1 -0
- package/lib/esm/routing/useNavigateWithQuery.js +95 -0
- package/lib/esm/routing/useQuery.d.ts +2 -0
- package/lib/esm/routing/useQuery.d.ts.map +1 -0
- package/lib/esm/routing/useQuery.js +9 -0
- package/lib/esm/routing/useQueryObject.d.ts +18 -0
- package/lib/esm/routing/useQueryObject.d.ts.map +1 -0
- package/lib/esm/routing/useQueryObject.js +107 -0
- package/lib/esm/routing/useQueryState.d.ts +13 -0
- package/lib/esm/routing/useQueryState.d.ts.map +1 -0
- package/lib/esm/routing/useQueryState.js +80 -0
- package/lib/esm/routing/useStableRefEquality.d.ts +5 -0
- package/lib/esm/routing/useStableRefEquality.d.ts.map +1 -0
- package/lib/esm/routing/useStableRefEquality.js +47 -0
- package/lib/esm/routing/useTypedQuery.d.ts +2 -0
- package/lib/esm/routing/useTypedQuery.d.ts.map +1 -0
- package/lib/esm/routing/useTypedQuery.js +36 -0
- package/lib/esm/tools/buildSearch.d.ts +12 -0
- package/lib/esm/tools/buildSearch.d.ts.map +1 -0
- package/lib/esm/tools/buildSearch.js +264 -0
- package/lib/esm/tools/query-dsl.d.ts +28 -0
- package/lib/esm/tools/query-dsl.d.ts.map +1 -0
- package/lib/esm/tools/query-dsl.js +250 -0
- package/lib/esm/tools/query.d.ts +2 -0
- package/lib/esm/tools/query.d.ts.map +1 -0
- package/lib/esm/tools/query.js +43 -0
- package/lib/esm/tools.d.ts +2 -2
- package/lib/esm/tools.d.ts.map +1 -1
- package/lib/esm/tools.js +3 -2
- package/lib/esm/type-tests/query-infer.test-d.d.ts +2 -0
- package/lib/esm/type-tests/query-infer.test-d.d.ts.map +1 -0
- package/lib/esm/type-tests/query-infer.test-d.js +49 -0
- package/lib/esm/types.d.ts +47 -4
- package/lib/esm/types.d.ts.map +1 -1
- package/lib/esm/types.js +1 -1
- package/lib/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/builder.d.ts.map +1 -1
- package/lib/types/eslint-rules/index.d.ts +2 -0
- package/lib/types/eslint-rules/index.d.ts.map +1 -0
- package/lib/types/eslint-rules/no-direct-window-location-search.d.ts +4 -0
- package/lib/types/eslint-rules/no-direct-window-location-search.d.ts.map +1 -0
- package/lib/types/history/BrowserHistory.d.ts.map +1 -1
- package/lib/types/index.d.ts +5 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/routing/Link.d.ts +1 -0
- package/lib/types/routing/Link.d.ts.map +1 -1
- package/lib/types/routing/RouteComponentWrapper.d.ts.map +1 -1
- package/lib/types/routing/createRouter.d.ts +8 -1
- package/lib/types/routing/createRouter.d.ts.map +1 -1
- package/lib/types/routing/devtools.d.ts +20 -0
- package/lib/types/routing/devtools.d.ts.map +1 -0
- package/lib/types/routing/filters.d.ts +97 -0
- package/lib/types/routing/filters.d.ts.map +1 -0
- package/lib/types/routing/index.d.ts +10 -0
- package/lib/types/routing/index.d.ts.map +1 -1
- package/lib/types/routing/useActiveFilters.d.ts +9 -0
- package/lib/types/routing/useActiveFilters.d.ts.map +1 -0
- package/lib/types/routing/useFilterState.d.ts +10 -0
- package/lib/types/routing/useFilterState.d.ts.map +1 -0
- package/lib/types/routing/useNavigate.d.ts +13 -0
- package/lib/types/routing/useNavigate.d.ts.map +1 -0
- package/lib/types/routing/useNavigateWithQuery.d.ts +15 -0
- package/lib/types/routing/useNavigateWithQuery.d.ts.map +1 -0
- package/lib/types/routing/useQuery.d.ts +2 -0
- package/lib/types/routing/useQuery.d.ts.map +1 -0
- package/lib/types/routing/useQueryObject.d.ts +18 -0
- package/lib/types/routing/useQueryObject.d.ts.map +1 -0
- package/lib/types/routing/useQueryState.d.ts +13 -0
- package/lib/types/routing/useQueryState.d.ts.map +1 -0
- package/lib/types/routing/useStableRefEquality.d.ts +5 -0
- package/lib/types/routing/useStableRefEquality.d.ts.map +1 -0
- package/lib/types/routing/useTypedQuery.d.ts +2 -0
- package/lib/types/routing/useTypedQuery.d.ts.map +1 -0
- package/lib/types/tools/buildSearch.d.ts +12 -0
- package/lib/types/tools/buildSearch.d.ts.map +1 -0
- package/lib/types/tools/query-dsl.d.ts +28 -0
- package/lib/types/tools/query-dsl.d.ts.map +1 -0
- package/lib/types/tools/query.d.ts +2 -0
- package/lib/types/tools/query.d.ts.map +1 -0
- package/lib/types/tools.d.ts +2 -2
- package/lib/types/tools.d.ts.map +1 -1
- package/lib/types/type-tests/query-infer.test-d.d.ts +2 -0
- package/lib/types/type-tests/query-infer.test-d.d.ts.map +1 -0
- package/lib/types/types.d.ts +47 -4
- package/lib/types/types.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
const __typedCache = new WeakMap();
|
|
2
|
+
function makeDescriptor(cfg) {
|
|
3
|
+
return {
|
|
4
|
+
__type: undefined,
|
|
5
|
+
optional: cfg.optional === true,
|
|
6
|
+
hasDefault: cfg.defaultValue !== undefined,
|
|
7
|
+
defaultValue: cfg.defaultValue,
|
|
8
|
+
parse: cfg.parse,
|
|
9
|
+
serialize: cfg.serialize,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
function stringDesc() {
|
|
13
|
+
return makeDescriptor({
|
|
14
|
+
parse(values) {
|
|
15
|
+
return values.at(-1);
|
|
16
|
+
},
|
|
17
|
+
serialize(value) {
|
|
18
|
+
return [value];
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
function numberDesc() {
|
|
23
|
+
return makeDescriptor({
|
|
24
|
+
parse(values) {
|
|
25
|
+
const v = values.at(-1);
|
|
26
|
+
if (v == null)
|
|
27
|
+
return undefined;
|
|
28
|
+
const n = Number(v);
|
|
29
|
+
if (Number.isNaN(n))
|
|
30
|
+
return undefined;
|
|
31
|
+
return n;
|
|
32
|
+
},
|
|
33
|
+
serialize(value) {
|
|
34
|
+
return [String(value)];
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
function booleanDesc() {
|
|
39
|
+
return makeDescriptor({
|
|
40
|
+
parse(values) {
|
|
41
|
+
if (values.length === 0)
|
|
42
|
+
return undefined;
|
|
43
|
+
const v = values.at(-1);
|
|
44
|
+
if (v === '' || v == null)
|
|
45
|
+
return true;
|
|
46
|
+
const lower = v.toLowerCase();
|
|
47
|
+
if (lower === '1' || lower === 'true')
|
|
48
|
+
return true;
|
|
49
|
+
if (lower === '0' || lower === 'false')
|
|
50
|
+
return false;
|
|
51
|
+
return undefined;
|
|
52
|
+
},
|
|
53
|
+
serialize(value) {
|
|
54
|
+
if (value) {
|
|
55
|
+
return ['1'];
|
|
56
|
+
}
|
|
57
|
+
return ['0'];
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
function enumDesc(...values) {
|
|
62
|
+
const set = new Set(values);
|
|
63
|
+
return makeDescriptor({
|
|
64
|
+
parse(arr) {
|
|
65
|
+
const v = arr.at(-1);
|
|
66
|
+
if (v != null && set.has(v))
|
|
67
|
+
return v;
|
|
68
|
+
return undefined;
|
|
69
|
+
},
|
|
70
|
+
serialize(value) {
|
|
71
|
+
return [value];
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
function arrayOf(inner) {
|
|
76
|
+
return makeDescriptor({
|
|
77
|
+
parse(values) {
|
|
78
|
+
const out = [];
|
|
79
|
+
values.forEach((v) => {
|
|
80
|
+
const parsed = inner.parse([v]);
|
|
81
|
+
if (parsed !== undefined)
|
|
82
|
+
out.push(parsed);
|
|
83
|
+
});
|
|
84
|
+
return out;
|
|
85
|
+
},
|
|
86
|
+
serialize(value) {
|
|
87
|
+
return value.flatMap((v) => {
|
|
88
|
+
return inner.serialize(v);
|
|
89
|
+
});
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
function optional(d) {
|
|
94
|
+
return { ...d, optional: true };
|
|
95
|
+
}
|
|
96
|
+
function withDefault(d, value) {
|
|
97
|
+
return { ...d, defaultValue: value, hasDefault: true };
|
|
98
|
+
}
|
|
99
|
+
function emptyAsUndefined(d) {
|
|
100
|
+
return {
|
|
101
|
+
...d,
|
|
102
|
+
parse(values) {
|
|
103
|
+
const v = d.parse(values);
|
|
104
|
+
if (v === '')
|
|
105
|
+
return undefined;
|
|
106
|
+
return v;
|
|
107
|
+
},
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
function custom(handlers) {
|
|
111
|
+
return makeDescriptor({
|
|
112
|
+
parse: handlers.parse,
|
|
113
|
+
serialize: handlers.serialize,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
export const q = {
|
|
117
|
+
string: stringDesc,
|
|
118
|
+
number: numberDesc,
|
|
119
|
+
boolean: booleanDesc,
|
|
120
|
+
enum: enumDesc,
|
|
121
|
+
array: arrayOf,
|
|
122
|
+
optional,
|
|
123
|
+
default: withDefault,
|
|
124
|
+
emptyAsUndefined,
|
|
125
|
+
custom,
|
|
126
|
+
};
|
|
127
|
+
export function parseTypedQuery(schema, raw) {
|
|
128
|
+
if (schema == null)
|
|
129
|
+
return raw;
|
|
130
|
+
let cacheForSchema = __typedCache.get(schema);
|
|
131
|
+
if (cacheForSchema == null) {
|
|
132
|
+
cacheForSchema = new Map();
|
|
133
|
+
__typedCache.set(schema, cacheForSchema);
|
|
134
|
+
}
|
|
135
|
+
const canonicalParts = [];
|
|
136
|
+
const sortedKeys = Object.keys(raw).sort();
|
|
137
|
+
for (const k of sortedKeys) {
|
|
138
|
+
const v = raw[k];
|
|
139
|
+
if (Array.isArray(v)) {
|
|
140
|
+
v.forEach((vv) => {
|
|
141
|
+
canonicalParts.push(`${k}=${vv}`);
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
canonicalParts.push(`${k}=${v}`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
const cacheKey = canonicalParts.join('&');
|
|
149
|
+
const cached = cacheForSchema.get(cacheKey);
|
|
150
|
+
if (cached !== undefined)
|
|
151
|
+
return cached;
|
|
152
|
+
const result = {};
|
|
153
|
+
const entries = Object.entries(schema);
|
|
154
|
+
for (const [key, descriptor] of entries) {
|
|
155
|
+
const rawValue = raw[key];
|
|
156
|
+
let values = [];
|
|
157
|
+
if (rawValue != null) {
|
|
158
|
+
if (Array.isArray(rawValue)) {
|
|
159
|
+
values = rawValue;
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
values = [rawValue];
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
let parsed = descriptor.parse(values);
|
|
166
|
+
if (parsed === undefined) {
|
|
167
|
+
if (descriptor.hasDefault)
|
|
168
|
+
parsed = descriptor.defaultValue;
|
|
169
|
+
else if (descriptor.optional)
|
|
170
|
+
parsed = undefined;
|
|
171
|
+
}
|
|
172
|
+
if (parsed !== undefined)
|
|
173
|
+
result[key] = parsed;
|
|
174
|
+
else if (!descriptor.optional && descriptor.hasDefault) {
|
|
175
|
+
result[key] = descriptor.defaultValue;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
let reuse;
|
|
179
|
+
cacheForSchema.forEach((value) => {
|
|
180
|
+
if (reuse != null) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
if (value != null && typeof value === 'object') {
|
|
184
|
+
let equal = true;
|
|
185
|
+
const rKeys = Object.keys(result);
|
|
186
|
+
const vKeys = Object.keys(value);
|
|
187
|
+
if (rKeys.length !== vKeys.length) {
|
|
188
|
+
equal = false;
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
for (const k of rKeys) {
|
|
192
|
+
if (!Object.prototype.hasOwnProperty.call(value, k)) {
|
|
193
|
+
equal = false;
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
const resRec = result;
|
|
197
|
+
const valRec = value;
|
|
198
|
+
const a = resRec[k];
|
|
199
|
+
const b = valRec[k];
|
|
200
|
+
if (Array.isArray(a) && Array.isArray(b)) {
|
|
201
|
+
if (a.length !== b.length) {
|
|
202
|
+
equal = false;
|
|
203
|
+
break;
|
|
204
|
+
}
|
|
205
|
+
for (let i = 0; i < a.length; i += 1) {
|
|
206
|
+
if (a[i] !== b[i]) {
|
|
207
|
+
equal = false;
|
|
208
|
+
break;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
if (!equal)
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
else if (a !== b) {
|
|
215
|
+
equal = false;
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
if (equal) {
|
|
221
|
+
reuse = value;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
if (reuse != null) {
|
|
226
|
+
cacheForSchema.set(cacheKey, reuse);
|
|
227
|
+
return reuse;
|
|
228
|
+
}
|
|
229
|
+
cacheForSchema.set(cacheKey, result);
|
|
230
|
+
return result;
|
|
231
|
+
}
|
|
232
|
+
export function parseSearch(schema, search) {
|
|
233
|
+
let actual = search;
|
|
234
|
+
if (search.startsWith('?')) {
|
|
235
|
+
actual = search.slice(1);
|
|
236
|
+
}
|
|
237
|
+
const params = new URLSearchParams(actual);
|
|
238
|
+
const raw = {};
|
|
239
|
+
params.forEach((value, key) => {
|
|
240
|
+
const existing = raw[key];
|
|
241
|
+
if (existing == null)
|
|
242
|
+
raw[key] = value;
|
|
243
|
+
else if (Array.isArray(existing))
|
|
244
|
+
existing.push(value);
|
|
245
|
+
else
|
|
246
|
+
raw[key] = [existing, value];
|
|
247
|
+
});
|
|
248
|
+
return parseTypedQuery(schema, raw);
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZHNsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rvb2xzL3F1ZXJ5LWRzbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLFlBQVksR0FBRyxJQUFJLE9BQU8sRUFBNEIsQ0FBQztBQUc3RCxTQUFTLGNBQWMsQ0FBSSxHQUsxQjtJQUNDLE9BQU87UUFDTCxNQUFNLEVBQUUsU0FBcUI7UUFDN0IsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRLEtBQUssSUFBSTtRQUMvQixVQUFVLEVBQUUsR0FBRyxDQUFDLFlBQVksS0FBSyxTQUFTO1FBQzFDLFlBQVksRUFBRSxHQUFHLENBQUMsWUFBWTtRQUM5QixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7UUFDaEIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTO0tBQ3pCLENBQUM7QUFDSixDQUFDO0FBR0QsU0FBUyxVQUFVO0lBQ2pCLE9BQU8sY0FBYyxDQUFTO1FBQzVCLEtBQUssQ0FBQyxNQUFNO1lBQ1YsT0FBTyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELFNBQVMsQ0FBQyxLQUFLO1lBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pCLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBR0QsU0FBUyxVQUFVO0lBQ2pCLE9BQU8sY0FBYyxDQUFTO1FBQzVCLEtBQUssQ0FBQyxNQUFNO1lBQ1YsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxJQUFJLElBQUk7Z0JBQUUsT0FBTyxTQUFTLENBQUM7WUFDaEMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQUUsT0FBTyxTQUFTLENBQUM7WUFDdEMsT0FB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LFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sZUFBZSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQVEsQ0FBQztBQUM3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBRdWVyeURlc2NyaXB0b3IsIFF1ZXJ5U2NoZW1hLCBJbmZlclF1ZXJ5IH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG4vLyBXZWFrTWFwIGJhc2VkIGNhY2hlOiBzY2hlbWFSZWYgLT4gKGNhbm9uaWNhbFNlYXJjaCAtPiBwYXJzZWRSZXN1bHQpXG5jb25zdCBfX3R5cGVkQ2FjaGUgPSBuZXcgV2Vha01hcDxvYmplY3QsIE1hcDxzdHJpbmcsIGFueT4+KCk7XG5cbi8qKiBCdWlsZCBhIGRlc2NyaXB0b3Igd2l0aCBkZWZhdWx0cyAqL1xuZnVuY3Rpb24gbWFrZURlc2NyaXB0b3I8VD4oY2ZnOiB7XG4gIHBhcnNlOiBRdWVyeURlc2NyaXB0b3I8VD5bJ3BhcnNlJ107XG4gIHNlcmlhbGl6ZTogUXVlcnlEZXNjcmlwdG9yPFQ+WydzZXJpYWxpemUnXTtcbiAgb3B0aW9uYWw/OiBib29sZWFuO1xuICBkZWZhdWx0VmFsdWU/OiBUO1xufSk6IFF1ZXJ5RGVzY3JpcHRvcjxUPiB7XG4gIHJldHVybiB7XG4gICAgX190eXBlOiB1bmRlZmluZWQgYXMgYW55IGFzIFQsXG4gICAgb3B0aW9uYWw6IGNmZy5vcHRpb25hbCA9PT0gdHJ1ZSxcbiAgICBoYXNEZWZhdWx0OiBjZmcuZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQsXG4gICAgZGVmYXVsdFZhbHVlOiBjZmcuZGVmYXVsdFZhbHVlLFxuICAgIHBhcnNlOiBjZmcucGFyc2UsXG4gICAgc2VyaWFsaXplOiBjZmcuc2VyaWFsaXplLFxuICB9O1xufVxuXG4vKiogU3RyaW5nIGRlc2NyaXB0b3IgKi9cbmZ1bmN0aW9uIHN0cmluZ0Rlc2MoKTogUXVlcnlEZXNjcmlwdG9yPHN0cmluZz4ge1xuICByZXR1cm4gbWFrZURlc2NyaXB0b3I8c3RyaW5nPih7XG4gICAgcGFyc2UodmFsdWVzKSB7XG4gICAgICByZXR1cm4gdmFsdWVzLmF0KC0xKTtcbiAgICB9LFxuICAgIHNlcmlhbGl6ZSh2YWx1ZSkge1xuICAgICAgcmV0dXJuIFt2YWx1ZV07XG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKiBOdW1iZXIgZGVzY3JpcHRvciAqL1xuZnVuY3Rpb24gbnVtYmVyRGVzYygpOiBRdWVyeURlc2NyaXB0b3I8bnVtYmVyPiB7XG4gIHJldHVybiBtYWtlRGVzY3JpcHRvcjxudW1iZXI+KHtcbiAgICBwYXJzZSh2YWx1ZXMpIHtcbiAgICAgIGNvbnN0IHYgPSB2YWx1ZXMuYXQoLTEpO1xuICAgICAgaWYgKHYgPT0gbnVsbCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IG4gPSBOdW1iZXIodik7XG4gICAgICBpZiAoTnVtYmVyLmlzTmFOKG4pKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIG47XG4gICAgfSxcbiAgICBzZXJpYWxpemUodmFsdWUpIHtcbiAgICAgIHJldHVybiBbU3RyaW5nKHZhbHVlKV07XG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKiBCb29sZWFuIGRlc2NyaXB0b3IgKi9cbmZ1bmN0aW9uIGJvb2xlYW5EZXNjKCk6IFF1ZXJ5RGVzY3JpcHRvcjxib29sZWFuPiB7XG4gIHJldHVybiBtYWtlRGVzY3JpcHRvcjxib29sZWFuPih7XG4gICAgcGFyc2UodmFsdWVzKSB7XG4gICAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IHYgPSB2YWx1ZXMuYXQoLTEpO1xuICAgICAgaWYgKHYgPT09ICcnIHx8IHYgPT0gbnVsbCkgcmV0dXJuIHRydWU7XG4gICAgICBjb25zdCBsb3dlciA9IHYudG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmIChsb3dlciA9PT0gJzEnIHx8IGxvd2VyID09PSAndHJ1ZScpIHJldHVybiB0cnVlO1xuICAgICAgaWYgKGxvd2VyID09PSAnMCcgfHwgbG93ZXIgPT09ICdmYWxzZScpIHJldHVybiBmYWxzZTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSxcbiAgICBzZXJpYWxpemUodmFsdWUpIHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gWycxJ107XG4gICAgICB9XG4gICAgICByZXR1cm4gWycwJ107XG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKiBFbnVtIGRlc2NyaXB0b3IgKi9cbmZ1bmN0aW9uIGVudW1EZXNjPFQgZXh0ZW5kcyBzdHJpbmc+KC4uLnZhbHVlczogVFtdKTogUXVlcnlEZXNjcmlwdG9yPFQ+IHtcbiAgY29uc3Qgc2V0ID0gbmV3IFNldCh2YWx1ZXMpO1xuICByZXR1cm4gbWFrZURlc2NyaXB0b3I8VD4oe1xuICAgIHBhcnNlKGFycikge1xuICAgICAgY29uc3QgdiA9IGFyci5hdCgtMSkgYXMgVCB8IHVuZGVmaW5lZDtcbiAgICAgIGlmICh2ICE9IG51bGwgJiYgc2V0Lmhhcyh2KSkgcmV0dXJuIHY7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0sXG4gICAgc2VyaWFsaXplKHZhbHVlKSB7XG4gICAgICByZXR1cm4gW3ZhbHVlXTtcbiAgICB9LFxuICB9KTtcbn1cblxuLyoqIEFycmF5IGRlc2NyaXB0b3IgKi9cbmZ1bmN0aW9uIGFycmF5T2Y8VD4oaW5uZXI6IFF1ZXJ5RGVzY3JpcHRvcjxUPik6IFF1ZXJ5RGVzY3JpcHRvcjxUW10+IHtcbiAgcmV0dXJuIG1ha2VEZXNjcmlwdG9yPFRbXT4oe1xuICAgIHBhcnNlKHZhbHVlcykge1xuICAgICAgY29uc3Qgb3V0OiBUW10gPSBbXTtcbiAgICAgIHZhbHVlcy5mb3JFYWNoKCh2KSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IGlubmVyLnBhcnNlKFt2XSk7XG4gICAgICAgIGlmIChwYXJzZWQgIT09IHVuZGVmaW5lZCkgb3V0LnB1c2gocGFyc2VkKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG91dDtcbiAgICB9LFxuICAgIHNlcmlhbGl6ZSh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlLmZsYXRNYXAoKHYpID0+IHtcbiAgICAgICAgcmV0dXJuIGlubmVyLnNlcmlhbGl6ZSh2KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gIH0pO1xufVxuXG4vKiogTWFyayBkZXNjcmlwdG9yIG9wdGlvbmFsICovXG5mdW5jdGlvbiBvcHRpb25hbDxUPihkOiBRdWVyeURlc2NyaXB0b3I8VD4pOiBRdWVyeURlc2NyaXB0b3I8VCB8IHVuZGVmaW5lZD4ge1xuICByZXR1cm4geyAuLi5kLCBvcHRpb25hbDogdHJ1ZSB9IGFzIGFueTtcbn1cblxuLyoqIEF0dGFjaCBkZWZhdWx0IHZhbHVlICovXG5mdW5jdGlvbiB3aXRoRGVmYXVsdDxUPihkOiBRdWVyeURlc2NyaXB0b3I8VD4sIHZhbHVlOiBUKTogUXVlcnlEZXNjcmlwdG9yPFQ+IHtcbiAgcmV0dXJuIHsgLi4uZCwgZGVmYXVsdFZhbHVlOiB2YWx1ZSwgaGFzRGVmYXVsdDogdHJ1ZSB9O1xufVxuXG4vKiogVHJlYXQgZW1wdHkgc3RyaW5nIHJlc3VsdCBmcm9tIHVuZGVybHlpbmcgZGVzY3JpcHRvciBhcyB1bmRlZmluZWQgKHBhcnNlIHNpZGUgb25seSkgKi9cbmZ1bmN0aW9uIGVtcHR5QXNVbmRlZmluZWQoZDogUXVlcnlEZXNjcmlwdG9yPHN0cmluZz4pOiBRdWVyeURlc2NyaXB0b3I8c3RyaW5nPiB7XG4gIHJldHVybiB7XG4gICAgLi4uZCxcbiAgICBwYXJzZSh2YWx1ZXMpIHtcbiAgICAgIGNvbnN0IHYgPSBkLnBhcnNlKHZhbHVlcyk7XG4gICAgICBpZiAodiA9PT0gJycpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gdjtcbiAgICB9LFxuICB9IGFzIFF1ZXJ5RGVzY3JpcHRvcjxzdHJpbmc+O1xufVxuXG4vKiogQ3VzdG9tIGRlc2NyaXB0b3IgZmFjdG9yeSAqL1xuZnVuY3Rpb24gY3VzdG9tPFQ+KGhhbmRsZXJzOiB7XG4gIHBhcnNlOiAodmFsdWVzOiBzdHJpbmdbXSkgPT4gVCB8IHVuZGVmaW5lZDtcbiAgc2VyaWFsaXplOiAodmFsdWU6IFQpID0+IHN0cmluZ1tdO1xufSk6IFF1ZXJ5RGVzY3JpcHRvcjxUPiB7XG4gIHJldHVybiBtYWtlRGVzY3JpcHRvcjxUPih7XG4gICAgcGFyc2U6IGhhbmRsZXJzLnBhcnNlLFxuICAgIHNlcmlhbGl6ZTogaGFuZGxlcnMuc2VyaWFsaXplLFxuICB9KTtcbn1cblxuZXhwb3J0IGNvbnN0IHEgPSB7XG4gIHN0cmluZzogc3RyaW5nRGVzYyxcbiAgbnVtYmVyOiBudW1iZXJEZXNjLFxuICBib29sZWFuOiBib29sZWFuRGVzYyxcbiAgZW51bTogZW51bURlc2MsXG4gIGFycmF5OiBhcnJheU9mLFxuICBvcHRpb25hbCxcbiAgZGVmYXVsdDogd2l0aERlZmF1bHQsXG4gIGVtcHR5QXNVbmRlZmluZWQsXG4gIGN1c3RvbSxcbn07XG5cbi8qKiBQYXJzZSByYXcgcXVlcnkgb2JqZWN0IHVzaW5nIGEgc2NoZW1hIGludG8gYSB0eXBlZCBvYmplY3QgKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVR5cGVkUXVlcnk8UyBleHRlbmRzIFF1ZXJ5U2NoZW1hIHwgdW5kZWZpbmVkPihcbiAgc2NoZW1hOiBTLFxuICByYXc6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdPixcbik6IFMgZXh0ZW5kcyBRdWVyeVNjaGVtYSA/IEluZmVyUXVlcnk8RXhjbHVkZTxTLCB1bmRlZmluZWQ+PiA6IHR5cGVvZiByYXcge1xuICBpZiAoc2NoZW1hID09IG51bGwpIHJldHVybiByYXcgYXMgYW55O1xuICAvLyBCdWlsZCBjYW5vbmljYWwga2V5IGZyb20gcmF3IGVudHJpZXMgKHNvcnRlZCBrZXlzICYgdmFsdWVzKVxuICBsZXQgY2FjaGVGb3JTY2hlbWEgPSBfX3R5cGVkQ2FjaGUuZ2V0KHNjaGVtYSBhcyB1bmtub3duIGFzIG9iamVjdCk7XG4gIGlmIChjYWNoZUZvclNjaGVtYSA9PSBudWxsKSB7XG4gICAgY2FjaGVGb3JTY2hlbWEgPSBuZXcgTWFwKCk7XG4gICAgX190eXBlZENhY2hlLnNldChzY2hlbWEgYXMgdW5rbm93biBhcyBvYmplY3QsIGNhY2hlRm9yU2NoZW1hKTtcbiAgfVxuICBjb25zdCBjYW5vbmljYWxQYXJ0czogc3RyaW5nW10gPSBbXTtcbiAgY29uc3Qgc29ydGVkS2V5cyA9IE9iamVjdC5rZXlzKHJhdykuc29ydCgpO1xuICBmb3IgKGNvbnN0IGsgb2Ygc29ydGVkS2V5cykge1xuICAgIGNvbnN0IHYgPSByYXdba107XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodikpIHtcbiAgICAgIHYuZm9yRWFjaCgodnYpID0+IHtcbiAgICAgICAgY2Fub25pY2FsUGFydHMucHVzaChgJHtrfT0ke3Z2fWApO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhbm9uaWNhbFBhcnRzLnB1c2goYCR7a309JHt2fWApO1xuICAgIH1cbiAgfVxuICBjb25zdCBjYWNoZUtleSA9IGNhbm9uaWNhbFBhcnRzLmpvaW4oJyYnKTtcbiAgY29uc3QgY2FjaGVkID0gY2FjaGVGb3JTY2hlbWEuZ2V0KGNhY2hlS2V5KTtcbiAgaWYgKGNhY2hlZCAhPT0gdW5kZWZpbmVkKSByZXR1cm4gY2FjaGVkO1xuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKHNjaGVtYSk7XG4gIGZvciAoY29uc3QgW2tleSwgZGVzY3JpcHRvcl0gb2YgZW50cmllcykge1xuICAgIGNvbnN0IHJhd1ZhbHVlID0gcmF3W2tleV07XG4gICAgbGV0IHZhbHVlczogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAocmF3VmFsdWUgIT0gbnVsbCkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmF3VmFsdWUpKSB7XG4gICAgICAgIHZhbHVlcyA9IHJhd1ZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsdWVzID0gW3Jhd1ZhbHVlXTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGV0IHBhcnNlZCA9IGRlc2NyaXB0b3IucGFyc2UodmFsdWVzKTtcbiAgICBpZiAocGFyc2VkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChkZXNjcmlwdG9yLmhhc0RlZmF1bHQpIHBhcnNlZCA9IGRlc2NyaXB0b3IuZGVmYXVsdFZhbHVlO1xuICAgICAgZWxzZSBpZiAoZGVzY3JpcHRvci5vcHRpb25hbCkgcGFyc2VkID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAocGFyc2VkICE9PSB1bmRlZmluZWQpIHJlc3VsdFtrZXldID0gcGFyc2VkO1xuICAgIGVsc2UgaWYgKCFkZXNjcmlwdG9yLm9wdGlvbmFsICYmIGRlc2NyaXB0b3IuaGFzRGVmYXVsdCkge1xuICAgICAgcmVzdWx0W2tleV0gPSBkZXNjcmlwdG9yLmRlZmF1bHRWYWx1ZTtcbiAgICB9XG4gIH1cbiAgLy8gRGVlcCBlcXVhbGl0eTogaWYgYW5vdGhlciBjYWNoZWQgdmFsdWUgaXMgc3RydWN0dXJhbGx5IGVxdWFsLCByZXVzZSBpdHMgcmVmZXJlbmNlIGZvciBzdGFiaWxpdHlcbiAgbGV0IHJldXNlOiBhbnk7XG4gIGNhY2hlRm9yU2NoZW1hLmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgaWYgKHJldXNlICE9IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHZhbHVlICE9IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgbGV0IGVxdWFsID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHJLZXlzID0gT2JqZWN0LmtleXMocmVzdWx0KTtcbiAgICAgIGNvbnN0IHZLZXlzID0gT2JqZWN0LmtleXModmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pO1xuICAgICAgaWYgKHJLZXlzLmxlbmd0aCAhPT0gdktleXMubGVuZ3RoKSB7XG4gICAgICAgIGVxdWFsID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKGNvbnN0IGsgb2YgcktleXMpIHtcbiAgICAgICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgaykpIHtcbiAgICAgICAgICAgIGVxdWFsID0gZmFsc2U7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgcmVzUmVjID0gcmVzdWx0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgICAgIGNvbnN0IHZhbFJlYyA9IHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgICAgIGNvbnN0IGEgPSByZXNSZWNba107XG4gICAgICAgICAgY29uc3QgYiA9IHZhbFJlY1trXTtcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhKSAmJiBBcnJheS5pc0FycmF5KGIpKSB7XG4gICAgICAgICAgICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGVxdWFsID0gZmFsc2U7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgICAgIGlmIChhW2ldICE9PSBiW2ldKSB7XG4gICAgICAgICAgICAgICAgZXF1YWwgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFlcXVhbCkgYnJlYWs7XG4gICAgICAgICAgfSBlbHNlIGlmIChhICE9PSBiKSB7XG4gICAgICAgICAgICBlcXVhbCA9IGZhbHNlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoZXF1YWwpIHtcbiAgICAgICAgcmV1c2UgPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICBpZiAocmV1c2UgIT0gbnVsbCkge1xuICAgIGNhY2hlRm9yU2NoZW1hLnNldChjYWNoZUtleSwgcmV1c2UpO1xuICAgIHJldHVybiByZXVzZTtcbiAgfVxuICBjYWNoZUZvclNjaGVtYS5zZXQoY2FjaGVLZXksIHJlc3VsdCk7XG4gIHJldHVybiByZXN1bHQgYXMgYW55O1xufVxuXG4vKiogQ29udmVuaWVuY2UgYWxpYXM6IHBhcnNlIGZ1bGwgc2VhcmNoIHN0cmluZyB3aXRoIG9wdGlvbmFsIHNjaGVtYSAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU2VhcmNoPFMgZXh0ZW5kcyBRdWVyeVNjaGVtYSB8IHVuZGVmaW5lZD4oXG4gIHNjaGVtYTogUyxcbiAgc2VhcmNoOiBzdHJpbmcsXG4pOiBTIGV4dGVuZHMgUXVlcnlTY2hlbWFcbiAgPyBJbmZlclF1ZXJ5PEV4Y2x1ZGU8UywgdW5kZWZpbmVkPj5cbiAgOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT4ge1xuICBsZXQgYWN0dWFsID0gc2VhcmNoO1xuICBpZiAoc2VhcmNoLnN0YXJ0c1dpdGgoJz8nKSkge1xuICAgIGFjdHVhbCA9IHNlYXJjaC5zbGljZSgxKTtcbiAgfVxuICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGFjdHVhbCk7XG4gIGNvbnN0IHJhdzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+ID0ge307XG4gIHBhcmFtcy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSByYXdba2V5XTtcbiAgICBpZiAoZXhpc3RpbmcgPT0gbnVsbCkgcmF3W2tleV0gPSB2YWx1ZTtcbiAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KGV4aXN0aW5nKSkgZXhpc3RpbmcucHVzaCh2YWx1ZSk7XG4gICAgZWxzZSByYXdba2V5XSA9IFtleGlzdGluZywgdmFsdWVdO1xuICB9KTtcbiAgcmV0dXJuIHBhcnNlVHlwZWRRdWVyeShzY2hlbWEsIHJhdykgYXMgYW55O1xufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/tools/query.ts"],"names":[],"mappings":"AAYA,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAmCnC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
const __rawQueryCache = new Map();
|
|
2
|
+
const __emptyRaw = Object.freeze({});
|
|
3
|
+
export function parseRawQuery(search) {
|
|
4
|
+
if (search == null || search === '' || search === '?')
|
|
5
|
+
return __emptyRaw;
|
|
6
|
+
let raw = search;
|
|
7
|
+
if (raw.startsWith('?'))
|
|
8
|
+
raw = raw.slice(1);
|
|
9
|
+
const params = new URLSearchParams(raw);
|
|
10
|
+
const agg = {};
|
|
11
|
+
params.forEach((value, key) => {
|
|
12
|
+
const existing = agg[key];
|
|
13
|
+
if (existing == null) {
|
|
14
|
+
agg[key] = value;
|
|
15
|
+
}
|
|
16
|
+
else if (Array.isArray(existing)) {
|
|
17
|
+
existing.push(value);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
agg[key] = [existing, value];
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
const parts = [];
|
|
24
|
+
const keys = Object.keys(agg).sort();
|
|
25
|
+
for (const k of keys) {
|
|
26
|
+
const v = agg[k];
|
|
27
|
+
if (Array.isArray(v)) {
|
|
28
|
+
for (const vv of v)
|
|
29
|
+
parts.push(`${k}=${vv}`);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
parts.push(`${k}=${v}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const key = parts.join('&');
|
|
36
|
+
const cached = __rawQueryCache.get(key);
|
|
37
|
+
if (cached != null) {
|
|
38
|
+
return cached;
|
|
39
|
+
}
|
|
40
|
+
__rawQueryCache.set(key, agg);
|
|
41
|
+
return agg;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbHMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQTZDLENBQUM7QUFDN0UsTUFBTSxVQUFVLEdBQXNDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7QUFLeEUsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsTUFBMEI7SUFFMUIsSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sS0FBSyxFQUFFLElBQUksTUFBTSxLQUFLLEdBQUc7UUFBRSxPQUFPLFVBQVUsQ0FBQztJQUN6RSxJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUM7SUFDakIsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXhDLE1BQU0sR0FBRyxHQUFzQyxFQUFFLENBQUM7SUFDbEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUM1QixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUIsSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7WUFDckIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNuQixDQUFDO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDbkMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO2FBQU0sQ0FBQztZQUNOLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7SUFDM0IsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNyQixLQUFLLE1BQU0sRUFBRSxJQUFJLENBQUM7Z0JBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QixNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLElBQUksTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ25CLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM5QixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFBhcnNlIGEgc2VhcmNoIHN0cmluZyBpbnRvIGEgcmF3IHF1ZXJ5IG9iamVjdCBtYXBwaW5nIGtleXMgdG8gc3RyaW5nIHwgc3RyaW5nW10uXG4gKiBEdXBsaWNhdGUga2V5cyBhcmUgYWNjdW11bGF0ZWQgaW50byBhcnJheXMgcHJlc2VydmluZyBlbmNvdW50ZXIgb3JkZXIuXG4gKi9cbi8vIFJhdyBxdWVyeSByZWZlcmVudGlhbCBjYWNoZSAoY2Fub25pY2FsS2V5IC0+IHF1ZXJ5T2JqZWN0KVxuLy8gUHJvdmlkZXMgc3RhYmxlIHJlZmVyZW5jZXMgYWNyb3NzIGlkZW50aWNhbCBzZW1hbnRpYyBxdWVyeSBjb250ZW50c1xuY29uc3QgX19yYXdRdWVyeUNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdPj4oKTtcbmNvbnN0IF9fZW1wdHlSYXc6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdPiA9IE9iamVjdC5mcmVlemUoe30pO1xuXG4vKipcbiAqIFBhcnNlIHJhdyBxdWVyeVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VSYXdRdWVyeShcbiAgc2VhcmNoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4pOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT4ge1xuICBpZiAoc2VhcmNoID09IG51bGwgfHwgc2VhcmNoID09PSAnJyB8fCBzZWFyY2ggPT09ICc/JykgcmV0dXJuIF9fZW1wdHlSYXc7XG4gIGxldCByYXcgPSBzZWFyY2g7XG4gIGlmIChyYXcuc3RhcnRzV2l0aCgnPycpKSByYXcgPSByYXcuc2xpY2UoMSk7XG4gIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocmF3KTtcbiAgLy8gRmlyc3QgYnVpbGQgYWdncmVnYXRlIG9iamVjdFxuICBjb25zdCBhZ2c6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdPiA9IHt9O1xuICBwYXJhbXMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gYWdnW2tleV07XG4gICAgaWYgKGV4aXN0aW5nID09IG51bGwpIHtcbiAgICAgIGFnZ1trZXldID0gdmFsdWU7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGV4aXN0aW5nKSkge1xuICAgICAgZXhpc3RpbmcucHVzaCh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFnZ1trZXldID0gW2V4aXN0aW5nLCB2YWx1ZV07XG4gICAgfVxuICB9KTtcbiAgLy8gQnVpbGQgY2Fub25pY2FsIHNpZ25hdHVyZSAoc29ydGVkIGtleXMsIHByZXNlcnZlIGFycmF5IG9yZGVyKVxuICBjb25zdCBwYXJ0czogc3RyaW5nW10gPSBbXTtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGFnZykuc29ydCgpO1xuICBmb3IgKGNvbnN0IGsgb2Yga2V5cykge1xuICAgIGNvbnN0IHYgPSBhZ2dba107XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodikpIHtcbiAgICAgIGZvciAoY29uc3QgdnYgb2YgdikgcGFydHMucHVzaChgJHtrfT0ke3Z2fWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJ0cy5wdXNoKGAke2t9PSR7dn1gKTtcbiAgICB9XG4gIH1cbiAgY29uc3Qga2V5ID0gcGFydHMuam9pbignJicpO1xuICBjb25zdCBjYWNoZWQgPSBfX3Jhd1F1ZXJ5Q2FjaGUuZ2V0KGtleSk7XG4gIGlmIChjYWNoZWQgIT0gbnVsbCkge1xuICAgIHJldHVybiBjYWNoZWQ7XG4gIH1cbiAgX19yYXdRdWVyeUNhY2hlLnNldChrZXksIGFnZyk7XG4gIHJldHVybiBhZ2c7XG59XG4iXX0=
|
package/lib/esm/tools.d.ts
CHANGED
|
@@ -2,6 +2,6 @@ import type { ParamData } from 'path-to-regexp';
|
|
|
2
2
|
import type { PrepareResult, PreparedMatch, Route, RouterMatchedRoute } from './types.js';
|
|
3
3
|
import type { FlatRoute } from './builder.js';
|
|
4
4
|
export declare function getMatchedRoute<TParams extends ParamData>(routes: FlatRoute<TParams>[], location: Location): RouterMatchedRoute<TParams> | null;
|
|
5
|
-
export declare function prepareMatch<TParams extends ParamData>(match: RouterMatchedRoute<TParams> | null): PreparedMatch<TParams>;
|
|
6
|
-
export declare function r<TPrepared extends PrepareResult, TVariables extends ParamData = ParamData>(route: Route<TPrepared, TVariables>): Route<TPrepared, TVariables>;
|
|
5
|
+
export declare function prepareMatch<TParams extends ParamData>(match: RouterMatchedRoute<TParams> | null, query?: Record<string, unknown>): PreparedMatch<TParams>;
|
|
6
|
+
export declare function r<TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQuery = unknown>(route: Route<TPrepared, TVariables, TQuery>): Route<TPrepared, TVariables, TQuery>;
|
|
7
7
|
//# sourceMappingURL=tools.d.ts.map
|
package/lib/esm/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EAEb,KAAK,EACL,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAW9C,wBAAgB,eAAe,CAAC,OAAO,SAAS,SAAS,EACvD,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAC5B,QAAQ,EAAE,QAAQ,GACjB,kBAAkB,CAAC,OAAO,CAAC,GAAG,IAAI,CAepC;AAUD,wBAAgB,YAAY,CAAC,OAAO,SAAS,SAAS,EACpD,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EAEb,KAAK,EACL,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAW9C,wBAAgB,eAAe,CAAC,OAAO,SAAS,SAAS,EACvD,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAC5B,QAAQ,EAAE,QAAQ,GACjB,kBAAkB,CAAC,OAAO,CAAC,GAAG,IAAI,CAepC;AAUD,wBAAgB,YAAY,CAAC,OAAO,SAAS,SAAS,EACpD,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,IAAI,EACzC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,aAAa,CAAC,OAAO,CAAC,CA+CxB;AAmBD,wBAAgB,CAAC,CACf,SAAS,SAAS,aAAa,EAC/B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,GAAG,OAAO,EAEhB,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,GAC1C,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAEtC"}
|
package/lib/esm/tools.js
CHANGED
|
@@ -13,7 +13,7 @@ export function getMatchedRoute(routes, location) {
|
|
|
13
13
|
}
|
|
14
14
|
return null;
|
|
15
15
|
}
|
|
16
|
-
export function prepareMatch(match) {
|
|
16
|
+
export function prepareMatch(match, query) {
|
|
17
17
|
if (match == null) {
|
|
18
18
|
return {
|
|
19
19
|
match,
|
|
@@ -31,6 +31,7 @@ export function prepareMatch(match) {
|
|
|
31
31
|
matchedRoute,
|
|
32
32
|
resourcePage,
|
|
33
33
|
variables: { ...match.params },
|
|
34
|
+
query: query ?? {},
|
|
34
35
|
});
|
|
35
36
|
}
|
|
36
37
|
if (resourcePage != null) {
|
|
@@ -55,4 +56,4 @@ export function prepareMatch(match) {
|
|
|
55
56
|
export function r(route) {
|
|
56
57
|
return route;
|
|
57
58
|
}
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUJBLE1BQU0sVUFBVSxlQUFlLENBQzdCLE1BQTRCLEVBQzVCLFFBQWtCO0lBRWxCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0IsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsSUFBSSxLQUFLLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDcEIsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7WUFDL0IsT0FBTztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsSUFBSTtnQkFDSixNQUFNO2FBQ1AsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBVUQsTUFBTSxVQUFVLFlBQVksQ0FDMUIsS0FBeUMsRUFDekMsS0FBK0I7SUFFL0IsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbEIsT0FBTztZQUNMLEtBQUs7WUFDTCxNQUFNLEVBQUUsRUFBRTtTQUNYLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUVqQyxNQUFNLE1BQU0sR0FBeUIsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDcEUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztRQUV0RCxJQUFJLFNBQWtCLENBQUM7UUFDdkIsSUFBSSxRQUFtQyxDQUFDO1FBRXhDLElBQUksT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3BCLFFBQVEsR0FBRyxPQUFPLENBQUM7Z0JBQ2pCLEtBQUs7Z0JBQ0wsWUFBWTtnQkFDWixZQUFZO2dCQUVaLFNBQVMsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRTtnQkFDOUIsS0FBSyxFQUFFLEtBQUssSUFBSSxFQUFFO2FBQ25CLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLFlBQVksSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN6QixTQUFTLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQy9CLElBQUksU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUV0QixZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdEIsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPO1lBQ0wsSUFBSTtZQUNKLFFBQVE7WUFDUixVQUFVLEVBQUUsWUFBWSxDQUFDLFVBQVUsSUFBSSxJQUFJO1lBQzNDLE1BQU07WUFDTixZQUFZO1NBQ2IsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTztRQUNMLEtBQUs7UUFDTCxNQUFNO0tBQ1AsQ0FBQztBQUNKLENBQUM7QUFtQkQsTUFBTSxVQUFVLENBQUMsQ0FLZixLQUEyQztJQUUzQyxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBhcmFtRGF0YSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcblxuaW1wb3J0IHR5cGUge1xuICBQcmVwYXJlUmVzdWx0LFxuICBQcmVwYXJlZE1hdGNoLFxuICBQcmVwYXJlZE1hdGNoUm91dGUsXG4gIFJvdXRlLFxuICBSb3V0ZXJNYXRjaGVkUm91dGUsXG59IGZyb20gJy4vdHlwZXMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IEZsYXRSb3V0ZSB9IGZyb20gJy4vYnVpbGRlci5qcyc7XG5cbi8qKlxuICogRmluZHMgdGhlIGZpcnN0IHJvdXRlIHRoYXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gbG9jYXRpb24uXG4gKiBJdGVyYXRlcyB0aHJvdWdoIGFsbCByb3V0ZXMgYW5kIHJldHVybnMgdGhlIGZpcnN0IG1hdGNoIGZvdW5kLlxuICpcbiAqIEB0ZW1wbGF0ZSBUUGFyYW1zIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICogQHBhcmFtIHJvdXRlcyAtIEFycmF5IG9mIGZsYXQgcm91dGVzIHRvIHNlYXJjaCB0aHJvdWdoXG4gKiBAcGFyYW0gbG9jYXRpb24gLSBCcm93c2VyIGxvY2F0aW9uIG9iamVjdCBjb250YWluaW5nIHBhdGhuYW1lIHRvIG1hdGNoXG4gKiBAcmV0dXJucyBUaGUgbWF0Y2hlZCByb3V0ZSB3aXRoIGV4dHJhY3RlZCBwYXJhbWV0ZXJzLCBvciBudWxsIGlmIG5vIG1hdGNoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYXRjaGVkUm91dGU8VFBhcmFtcyBleHRlbmRzIFBhcmFtRGF0YT4oXG4gIHJvdXRlczogRmxhdFJvdXRlPFRQYXJhbXM+W10sXG4gIGxvY2F0aW9uOiBMb2NhdGlvbixcbik6IFJvdXRlck1hdGNoZWRSb3V0ZTxUUGFyYW1zPiB8IG51bGwge1xuICBmb3IgKGNvbnN0IHJvdXRlIG9mIHJvdXRlcykge1xuICAgIGNvbnN0IG1hdGNoID0gcm91dGUubWF0Y2hGdW5jdGlvbihsb2NhdGlvbi5wYXRobmFtZSk7XG4gICAgaWYgKG1hdGNoICE9PSBmYWxzZSkge1xuICAgICAgY29uc3QgeyBwYXRoLCBwYXJhbXMgfSA9IG1hdGNoO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbWF0Y2gsXG4gICAgICAgIHJvdXRlLFxuICAgICAgICBwYXRoLFxuICAgICAgICBwYXJhbXMsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIFByZXBhcmVzIGEgbWF0Y2hlZCByb3V0ZSBmb3IgcmVuZGVyaW5nIGJ5IGxvYWRpbmcgY29tcG9uZW50cyBhbmQgZXhlY3V0aW5nIHByZXBhcmUgZnVuY3Rpb25zLlxuICogVGhpcyBmdW5jdGlvbiBwcm9jZXNzZXMgdGhlIHJvdXRlIGhpZXJhcmNoeSBhbmQgbG9hZHMgYW55IHJlcXVpcmVkIGRhdGEgb3IgY29tcG9uZW50cy5cbiAqXG4gKiBAdGVtcGxhdGUgVFBhcmFtcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqIEBwYXJhbSBtYXRjaCAtIFRoZSBtYXRjaGVkIHJvdXRlIHRvIHByZXBhcmUsIG9yIG51bGwgaWYgbm8gcm91dGUgbWF0Y2hlZFxuICogQHJldHVybnMgUHJlcGFyZWQgbWF0Y2ggd2l0aCBsb2FkZWQgY29tcG9uZW50cyBhbmQgZGF0YSByZWFkeSBmb3IgcmVuZGVyaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlTWF0Y2g8VFBhcmFtcyBleHRlbmRzIFBhcmFtRGF0YT4oXG4gIG1hdGNoOiBSb3V0ZXJNYXRjaGVkUm91dGU8VFBhcmFtcz4gfCBudWxsLFxuICBxdWVyeT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuKTogUHJlcGFyZWRNYXRjaDxUUGFyYW1zPiB7XG4gIGlmIChtYXRjaCA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1hdGNoLFxuICAgICAgcm91dGVzOiBbXSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgbWF0Y2hlZFJvdXRlID0gbWF0Y2gucm91dGU7XG5cbiAgY29uc3Qgcm91dGVzOiBQcmVwYXJlZE1hdGNoUm91dGVbXSA9IG1hdGNoLnJvdXRlLnJvdXRlcy5tYXAoKHJvdXRlKSA9PiB7XG4gICAgY29uc3QgeyBwYXRoLCBwcmVwYXJlLCByZXNvdXJjZVBhZ2UsIHJlbmRlciB9ID0gcm91dGU7XG5cbiAgICBsZXQgQ29tcG9uZW50OiB1bmtub3duO1xuICAgIGxldCBwcmVwYXJlZDogUHJlcGFyZVJlc3VsdCB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChwcmVwYXJlICE9IG51bGwpIHtcbiAgICAgIHByZXBhcmVkID0gcHJlcGFyZSh7XG4gICAgICAgIG1hdGNoLFxuICAgICAgICBtYXRjaGVkUm91dGUsXG4gICAgICAgIHJlc291cmNlUGFnZSxcbiAgICAgICAgLy8gRml4IE9iamVjdC5jcmVhdGUobnVsbCkgaXNzdWUgaW4gcGF0aC10by1yZWdleHBcbiAgICAgICAgdmFyaWFibGVzOiB7IC4uLm1hdGNoLnBhcmFtcyB9LFxuICAgICAgICBxdWVyeTogcXVlcnkgPz8ge30sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAocmVzb3VyY2VQYWdlICE9IG51bGwpIHtcbiAgICAgIENvbXBvbmVudCA9IHJlc291cmNlUGFnZS5nZXQoKTtcbiAgICAgIGlmIChDb21wb25lbnQgPT0gbnVsbCkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWZsb2F0aW5nLXByb21pc2VzXG4gICAgICAgIHJlc291cmNlUGFnZS5sb2FkKCk7IC8vIGVhZ2VybHkgbG9hZFxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgcGF0aCxcbiAgICAgIHByZXBhcmVkLFxuICAgICAgcmVkaXJlY3RUbzogbWF0Y2hlZFJvdXRlLnJlZGlyZWN0VG8gPz8gbnVsbCxcbiAgICAgIHJlbmRlcixcbiAgICAgIHJlc291cmNlUGFnZSxcbiAgICB9O1xuICB9KTtcblxuICByZXR1cm4ge1xuICAgIG1hdGNoLFxuICAgIHJvdXRlcyxcbiAgfTtcbn1cblxuLyoqXG4gKiBUeXBlIGhlbHBlciBmdW5jdGlvbiBmb3IgY3JlYXRpbmcgc3Ryb25nbHktdHlwZWQgcm91dGUgZGVmaW5pdGlvbnMuXG4gKiBUaGlzIGZ1bmN0aW9uIGRvZXNuJ3QgbW9kaWZ5IHRoZSByb3V0ZSwgaXQganVzdCBwcm92aWRlcyBUeXBlU2NyaXB0IHR5cGUgaW5mZXJlbmNlLlxuICpcbiAqIEB0ZW1wbGF0ZSBUUHJlcGFyZWQgLSBUaGUgdHlwZSBvZiBwcmVwYXJlZCBkYXRhIHJldHVybmVkIGJ5IHRoZSByb3V0ZSdzIHByZXBhcmUgZnVuY3Rpb25cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICogQHBhcmFtIHJvdXRlIC0gVGhlIHJvdXRlIGNvbmZpZ3VyYXRpb24gdG8gdHlwZVxuICogQHJldHVybnMgVGhlIHNhbWUgcm91dGUgd2l0aCBwcm9wZXIgVHlwZVNjcmlwdCB0eXBlc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB1c2VyUm91dGUgPSByPHsgdXNlcjogVXNlciB9LCB7IGlkOiBzdHJpbmcgfT4oe1xuICogICBwYXRoOiAnL3VzZXJzLzppZCcsXG4gKiAgIHByZXBhcmU6ICh7IHZhcmlhYmxlcyB9KSA9PiBmZXRjaFVzZXIodmFyaWFibGVzLmlkKSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByPFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnkgPSB1bmtub3duLFxuPihcbiAgcm91dGU6IFJvdXRlPFRQcmVwYXJlZCwgVFZhcmlhYmxlcywgVFF1ZXJ5Pixcbik6IFJvdXRlPFRQcmVwYXJlZCwgVFZhcmlhYmxlcywgVFF1ZXJ5PiB7XG4gIHJldHVybiByb3V0ZTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-infer.test-d.d.ts","sourceRoot":"","sources":["../../../src/type-tests/query-infer.test-d.ts"],"names":[],"mappings":"AAiEA,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { q, parseTypedQuery } from '../tools/query-dsl.js';
|
|
2
|
+
const schema1 = {
|
|
3
|
+
page: q.default(q.number(), 1),
|
|
4
|
+
tag: q.array(q.string()),
|
|
5
|
+
mode: q.optional(q.enum('list', 'grid')),
|
|
6
|
+
flag: q.optional(q.boolean()),
|
|
7
|
+
raw: q.string(),
|
|
8
|
+
};
|
|
9
|
+
const parsed1 = parseTypedQuery(schema1, {
|
|
10
|
+
page: '2',
|
|
11
|
+
tag: ['a', 'b'],
|
|
12
|
+
mode: 'list',
|
|
13
|
+
flag: '1',
|
|
14
|
+
raw: 'x',
|
|
15
|
+
});
|
|
16
|
+
_consume(parsed1);
|
|
17
|
+
expectType(parsed1.page);
|
|
18
|
+
expectType(parsed1.tag);
|
|
19
|
+
expectType(parsed1.mode);
|
|
20
|
+
expectType(parsed1.flag);
|
|
21
|
+
expectType(parsed1.raw);
|
|
22
|
+
expectType(parsed1.page);
|
|
23
|
+
expectType(parsed1.tag);
|
|
24
|
+
const schema2 = { a: q.default(q.optional(q.number()), 5) };
|
|
25
|
+
const parsed2 = parseTypedQuery(schema2, {});
|
|
26
|
+
expectType(parsed2.a);
|
|
27
|
+
expectType(parsed2.a);
|
|
28
|
+
const schema3 = { tags: q.array(q.string()) };
|
|
29
|
+
const parsed3 = parseTypedQuery(schema3, {});
|
|
30
|
+
expectType(parsed3.tags);
|
|
31
|
+
expectType(parsed3.tags);
|
|
32
|
+
parsed1.page;
|
|
33
|
+
parsed2.a;
|
|
34
|
+
parsed3.tags.length;
|
|
35
|
+
const routeWithQuery = {
|
|
36
|
+
path: '/x/:id',
|
|
37
|
+
query: { page: q.number() },
|
|
38
|
+
prepare: ({ variables, query }) => ({
|
|
39
|
+
value: Number(variables.id) + query.page,
|
|
40
|
+
}),
|
|
41
|
+
};
|
|
42
|
+
routeWithQuery.prepare?.({
|
|
43
|
+
match: undefined,
|
|
44
|
+
matchedRoute: undefined,
|
|
45
|
+
resourcePage: undefined,
|
|
46
|
+
variables: { id: '1' },
|
|
47
|
+
query: { page: 2 },
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktaW5mZXIudGVzdC1kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGUtdGVzdHMvcXVlcnktaW5mZXIudGVzdC1kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxDQUFDLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFNM0QsTUFBTSxPQUFPLEdBQUc7SUFDZCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLEdBQUcsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN4QixJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN4QyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0IsR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDUCxDQUFDO0FBS1gsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLE9BQU8sRUFBRTtJQUN2QyxJQUFJLEVBQUUsR0FBRztJQUNULEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDZixJQUFJLEVBQUUsTUFBTTtJQUNaLElBQUksRUFBRSxHQUFHO0lBQ1QsR0FBRyxFQUFFLEdBQUc7Q0FDVCxDQUFDLENBQUM7QUFHSCxRQUFRLENBQTZCLE9BQU8sQ0FBQyxDQUFDO0FBRTlDLFVBQVUsQ0FBUyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakMsVUFBVSxDQUFXLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsQyxVQUFVLENBQThCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0RCxVQUFVLENBQXNCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM5QyxVQUFVLENBQVMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBR2hDLFVBQVUsQ0FBUyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFakMsVUFBVSxDQUFTLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUtoQyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQVcsQ0FBQztBQUNyRSxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRTdDLFVBQVUsQ0FBcUIsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRTFDLFVBQVUsQ0FBUyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFHOUIsTUFBTSxPQUFPLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBVyxDQUFDO0FBQ3ZELE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDN0MsVUFBVSxDQUFXLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUVuQyxVQUFVLENBQVMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBR2pDLE9BQU8sQ0FBQyxJQUFJLENBQUM7QUFDYixPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7QUFVcEIsTUFBTSxjQUFjLEdBQTZCO0lBQy9DLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtJQUMzQixPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSTtLQUN6QyxDQUFDO0NBQ0gsQ0FBQztBQUVGLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUV2QixLQUFLLEVBQUUsU0FBUztJQUVoQixZQUFZLEVBQUUsU0FBZ0I7SUFDOUIsWUFBWSxFQUFFLFNBQVM7SUFDdkIsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRTtJQUN0QixLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFO0NBQ25CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG4vLyBUeXBlIEluZmVyZW5jZSBUZXN0cyBmb3IgUGx1bWlsZSBSb3V0ZXIgUXVlcnkgRFNMXG4vLyBUaGVzZSBhc3NlcnRpb25zIHJlbHkgb24gVHlwZVNjcmlwdCBjb21waWxlLXRpbWUgY2hlY2tpbmcuXG5cbmltcG9ydCB7IHEsIHBhcnNlVHlwZWRRdWVyeSB9IGZyb20gJy4uL3Rvb2xzL3F1ZXJ5LWRzbC5qcyc7XG5pbXBvcnQgdHlwZSB7IEluZmVyUXVlcnksIFJvdXRlIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5kZWNsYXJlIGZ1bmN0aW9uIGV4cGVjdFR5cGU8VD4oX3ZhbHVlOiBUKTogdm9pZDtcblxuLy8gU2NoZW1hIDFcbmNvbnN0IHNjaGVtYTEgPSB7XG4gIHBhZ2U6IHEuZGVmYXVsdChxLm51bWJlcigpLCAxKSxcbiAgdGFnOiBxLmFycmF5KHEuc3RyaW5nKCkpLFxuICBtb2RlOiBxLm9wdGlvbmFsKHEuZW51bSgnbGlzdCcsICdncmlkJykpLFxuICBmbGFnOiBxLm9wdGlvbmFsKHEuYm9vbGVhbigpKSxcbiAgcmF3OiBxLnN0cmluZygpLFxufSBhcyBjb25zdDtcblxuLy8gSGVscGVyIHRvIGNvbnN1bWUgdHlwZXMgbGF0ZXJcbmRlY2xhcmUgZnVuY3Rpb24gX2NvbnN1bWU8VD4oX3Y6IFQpOiB2b2lkO1xuXG5jb25zdCBwYXJzZWQxID0gcGFyc2VUeXBlZFF1ZXJ5KHNjaGVtYTEsIHtcbiAgcGFnZTogJzInLFxuICB0YWc6IFsnYScsICdiJ10sXG4gIG1vZGU6ICdsaXN0JyxcbiAgZmxhZzogJzEnLFxuICByYXc6ICd4Jyxcbn0pO1xuXG4vLyBDb25zdW1lIGluZmVycmVkIHR5cGUgKGFmdGVyIGRlZmluaXRpb24gdG8gYXZvaWQgdGVtcG9yYWwgZGVhZCB6b25lIGlzc3Vlcylcbl9jb25zdW1lPEluZmVyUXVlcnk8dHlwZW9mIHNjaGVtYTE+PihwYXJzZWQxKTtcblxuZXhwZWN0VHlwZTxudW1iZXI+KHBhcnNlZDEucGFnZSk7XG5leHBlY3RUeXBlPHN0cmluZ1tdPihwYXJzZWQxLnRhZyk7XG5leHBlY3RUeXBlPCdsaXN0JyB8ICdncmlkJyB8IHVuZGVmaW5lZD4ocGFyc2VkMS5tb2RlKTtcbmV4cGVjdFR5cGU8Ym9vbGVhbiB8IHVuZGVmaW5lZD4ocGFyc2VkMS5mbGFnKTtcbmV4cGVjdFR5cGU8c3RyaW5nPihwYXJzZWQxLnJhdyk7XG5cbi8vIEB0cy1leHBlY3QtZXJyb3IgcGFnZSBpcyBudW1iZXJcbmV4cGVjdFR5cGU8c3RyaW5nPihwYXJzZWQxLnBhZ2UpO1xuLy8gQHRzLWV4cGVjdC1lcnJvciB0YWcgaXMgc3RyaW5nW11cbmV4cGVjdFR5cGU8c3RyaW5nPihwYXJzZWQxLnRhZyk7XG4vLyBSZW1vdmUgaW5jb3JyZWN0IGV4cGVjdGF0aW9uOiByYXcgaXMgcmVxdWlyZWQgc3RyaW5nOyBhc3NlcnRpbmcgYnJvYWRlciB0eXBlIHNob3VsZCBlcnJvci5cbi8vIChyYXcgbmVnYXRpdmUgdGVzdCBvbWl0dGVkOiB3aWRlbmluZyB0byBzdHJpbmcgfCB1bmRlZmluZWQgd291bGQgbm90IGVycm9yIGluIFRTKVxuXG4vLyBTY2hlbWEgMiAob3B0aW9uYWwgKyBkZWZhdWx0KVxuY29uc3Qgc2NoZW1hMiA9IHsgYTogcS5kZWZhdWx0KHEub3B0aW9uYWwocS5udW1iZXIoKSksIDUpIH0gYXMgY29uc3Q7XG5jb25zdCBwYXJzZWQyID0gcGFyc2VUeXBlZFF1ZXJ5KHNjaGVtYTIsIHt9KTtcbi8vIEN1cnJlbnQgSW5mZXJRdWVyeSBrZWVwcyBvcHRpb25hbCBmbGFnIGV2ZW4gd2l0aCBkZWZhdWx0ID0+IG51bWJlciB8IHVuZGVmaW5lZFxuZXhwZWN0VHlwZTxudW1iZXIgfCB1bmRlZmluZWQ+KHBhcnNlZDIuYSk7XG4vLyBAdHMtZXhwZWN0LWVycm9yIGEgaXMgbm90IGEgc3RyaW5nXG5leHBlY3RUeXBlPHN0cmluZz4ocGFyc2VkMi5hKTtcblxuLy8gU2NoZW1hIDMgYXJyYXkgb25seVxuY29uc3Qgc2NoZW1hMyA9IHsgdGFnczogcS5hcnJheShxLnN0cmluZygpKSB9IGFzIGNvbnN0O1xuY29uc3QgcGFyc2VkMyA9IHBhcnNlVHlwZWRRdWVyeShzY2hlbWEzLCB7fSk7XG5leHBlY3RUeXBlPHN0cmluZ1tdPihwYXJzZWQzLnRhZ3MpO1xuLy8gQHRzLWV4cGVjdC1lcnJvciB0YWdzIGlzIHN0cmluZ1tdXG5leHBlY3RUeXBlPHN0cmluZz4ocGFyc2VkMy50YWdzKTtcblxuLy8gVXNlIGluZmVycmVkIHR5cGVzIHRvIGF2b2lkIHVudXNlZCB3YXJuaW5nc1xucGFyc2VkMS5wYWdlO1xucGFyc2VkMi5hO1xucGFyc2VkMy50YWdzLmxlbmd0aDtcblxuZXhwb3J0IHt9O1xuXG4vLyBSb3V0ZSBnZW5lcmljIHdpdGggZXhwbGljaXQgVFF1ZXJ5XG5pbnRlcmZhY2UgUHJlcERhdGEge1xuICB2YWx1ZTogbnVtYmVyO1xufVxudHlwZSBWYXJzID0geyBpZDogc3RyaW5nOyBbazogc3RyaW5nXTogc3RyaW5nIH07XG50eXBlIFEgPSB7IHBhZ2U6IG51bWJlciB9O1xuY29uc3Qgcm91dGVXaXRoUXVlcnk6IFJvdXRlPFByZXBEYXRhLCBWYXJzLCBRPiA9IHtcbiAgcGF0aDogJy94LzppZCcsXG4gIHF1ZXJ5OiB7IHBhZ2U6IHEubnVtYmVyKCkgfSxcbiAgcHJlcGFyZTogKHsgdmFyaWFibGVzLCBxdWVyeSB9KSA9PiAoe1xuICAgIHZhbHVlOiBOdW1iZXIodmFyaWFibGVzLmlkKSArIHF1ZXJ5LnBhZ2UsXG4gIH0pLFxufTtcbi8vIEVuc3VyZSBwcmVwYXJlIHJlY2VpdmVzIGNvcnJlY3QgdHlwZXNcbnJvdXRlV2l0aFF1ZXJ5LnByZXBhcmU/Lih7XG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgbWF0Y2ggbWlzc2luZ1xuICBtYXRjaDogdW5kZWZpbmVkLFxuICAvLyBtaW5pbWFsIGNhc3QgZm9yIHJlcXVpcmVkIGZpZWxkcyBpbiB0aGlzIGlzb2xhdGVkIHRlc3QgY29udGV4dFxuICBtYXRjaGVkUm91dGU6IHVuZGVmaW5lZCBhcyBhbnksXG4gIHJlc291cmNlUGFnZTogdW5kZWZpbmVkLFxuICB2YXJpYWJsZXM6IHsgaWQ6ICcxJyB9LFxuICBxdWVyeTogeyBwYWdlOiAyIH0sXG59KTtcbiJdfQ==
|
package/lib/esm/types.d.ts
CHANGED
|
@@ -22,6 +22,8 @@ export type RouteRenderOpts<TPrepared extends PrepareResult, TVariables extends
|
|
|
22
22
|
prepared: TPrepared | undefined;
|
|
23
23
|
preparedRoute: PreparedMatchRoute;
|
|
24
24
|
route: FlatRoute<TVariables> | null;
|
|
25
|
+
rawQuery: Record<string, string | string[]>;
|
|
26
|
+
query: any;
|
|
25
27
|
};
|
|
26
28
|
export type RouteRender<TPrepared extends PrepareResult, TVariables extends ParamData = ParamData> = (opts: RouteRenderOpts<TPrepared, TVariables>) => ReactElement<any> | null;
|
|
27
29
|
export type PreparedMatchRoute = {
|
|
@@ -40,6 +42,21 @@ export type RouteEntry<TVariables extends ParamData> = {
|
|
|
40
42
|
location: Location;
|
|
41
43
|
route: RouterMatchedRoute<TVariables> | null;
|
|
42
44
|
forceRerender: boolean;
|
|
45
|
+
rawSearch?: string;
|
|
46
|
+
query: Record<string, string | string[]>;
|
|
47
|
+
typedQuery?: any;
|
|
48
|
+
};
|
|
49
|
+
export type QueryDescriptor<T> = {
|
|
50
|
+
__type: T;
|
|
51
|
+
parse: (values: string[]) => T | undefined;
|
|
52
|
+
serialize: (value: T) => string[];
|
|
53
|
+
optional?: boolean;
|
|
54
|
+
hasDefault?: boolean;
|
|
55
|
+
defaultValue?: T;
|
|
56
|
+
};
|
|
57
|
+
export type QuerySchema = Record<string, QueryDescriptor<any>>;
|
|
58
|
+
export type InferQuery<S extends QuerySchema> = {
|
|
59
|
+
[K in keyof S]: S[K] extends QueryDescriptor<infer O> ? S[K]['optional'] extends true ? S[K]['hasDefault'] extends true ? O : O | undefined : O : never;
|
|
43
60
|
};
|
|
44
61
|
export type RouterRedirectStatus = 301 | 302;
|
|
45
62
|
export type MatchedRoute<TVariables extends ParamData> = {
|
|
@@ -52,19 +69,25 @@ export type Redirect = {
|
|
|
52
69
|
status?: RouterRedirectStatus;
|
|
53
70
|
};
|
|
54
71
|
export type PrepareResult = Record<string, any>;
|
|
55
|
-
export type PrepareParams<TVariables extends ParamData> = {
|
|
72
|
+
export type PrepareParams<TVariables extends ParamData, TQuery = any> = {
|
|
56
73
|
match: RouterMatchedRoute<TVariables>;
|
|
57
74
|
matchedRoute: FlatRoute<TVariables>;
|
|
58
75
|
resourcePage?: ResourcePage | null;
|
|
59
76
|
variables: TVariables;
|
|
77
|
+
query: TQuery;
|
|
60
78
|
};
|
|
61
|
-
export type RoutePrepare<TPrepared extends PrepareResult, TVariables extends ParamData = ParamData> = (params: PrepareParams<TVariables>) => TPrepared;
|
|
62
|
-
export type Route<TPrepared extends PrepareResult, TVariables extends ParamData = ParamData> = {
|
|
79
|
+
export type RoutePrepare<TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQuery = any> = (params: PrepareParams<TVariables, TQuery>) => TPrepared;
|
|
80
|
+
export type Route<TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQuery = any> = {
|
|
63
81
|
children?: (Route<any, any> | Redirect)[];
|
|
64
82
|
resourcePage?: ResourcePage | null;
|
|
65
83
|
path?: string;
|
|
66
|
-
prepare?: RoutePrepare<TPrepared, TVariables>;
|
|
84
|
+
prepare?: RoutePrepare<TPrepared, TVariables, TQuery>;
|
|
67
85
|
render?: RouteRender<TPrepared, TVariables>;
|
|
86
|
+
query?: QuerySchema;
|
|
87
|
+
filterSchema?: {
|
|
88
|
+
__defined: true;
|
|
89
|
+
schema: Record<string, any>;
|
|
90
|
+
};
|
|
68
91
|
};
|
|
69
92
|
export type RouteComponentProps<TVariables extends ParamData> = {
|
|
70
93
|
children: ReactElement<any>;
|
|
@@ -78,6 +101,26 @@ export type RoutingContextType<TVariables extends ParamData> = {
|
|
|
78
101
|
preloadCode: (pathname: string) => void;
|
|
79
102
|
preload: (pathname: string) => void;
|
|
80
103
|
subscribe: (callback: SubscribeCallback<TVariables>) => () => void;
|
|
104
|
+
navigate: (opts: {
|
|
105
|
+
pathname?: string;
|
|
106
|
+
query?: Record<string, any>;
|
|
107
|
+
replace?: boolean;
|
|
108
|
+
filters?: Record<string, any>;
|
|
109
|
+
filterSchema?: {
|
|
110
|
+
__defined: true;
|
|
111
|
+
schema: Record<string, any>;
|
|
112
|
+
};
|
|
113
|
+
batch?: boolean;
|
|
114
|
+
immediate?: boolean;
|
|
115
|
+
}) => void;
|
|
116
|
+
resolveFilterSchema: (pathname: string) => {
|
|
117
|
+
__defined: true;
|
|
118
|
+
schema: Record<string, any>;
|
|
119
|
+
} | undefined;
|
|
120
|
+
currentMergedFilterSchema: () => {
|
|
121
|
+
__defined: true;
|
|
122
|
+
schema: Record<string, any>;
|
|
123
|
+
} | undefined;
|
|
81
124
|
};
|
|
82
125
|
export type ResourcePageReturn = {
|
|
83
126
|
default: ComponentType<any>;
|
package/lib/esm/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMzD,MAAM,MAAM,cAAc,CAAC,UAAU,SAAS,SAAS,IAAI;IAEzD,IAAI,EAAE,MAAM,CAAC;IAEb,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,aAAa,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAEzC,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;CAC3B,CAAC;AAMF,MAAM,MAAM,kBAAkB,CAAC,UAAU,SAAS,SAAS,IAAI;IAE7D,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAEzB,MAAM,EAAE,UAAU,CAAC;IAEnB,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;CAC9B,CAAC;AAMF,MAAM,MAAM,mBAAmB,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAClE,KAAK,EAAE,MAAM,KACV,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;AAOxB,MAAM,MAAM,eAAe,CACzB,SAAS,SAAS,aAAa,EAC/B,UAAU,SAAS,SAAS,GAAG,SAAS,IACtC;IAEF,QAAQ,EAAE,SAAS,CAAC;IAEpB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAEhC,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;IAEhC,aAAa,EAAE,kBAAkB,CAAC;IAElC,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|