@geometra/router 1.10.9 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/path.d.ts +3 -2
- package/dist/path.d.ts.map +1 -1
- package/dist/path.js +13 -6
- package/dist/path.js.map +1 -1
- package/package.json +2 -2
package/dist/path.d.ts
CHANGED
|
@@ -15,8 +15,9 @@ export type PathParams<Path extends string> = {
|
|
|
15
15
|
* dynamic `:id` and optional `:id?` are filled from `params`; splat `*rest` (or a lone `*`, key `'*'`)
|
|
16
16
|
* inserts the remainder with internal slashes preserved (slashes are not percent-encoded; string values are still
|
|
17
17
|
* passed through `String.prototype.toWellFormed` so lone surrogates match `:param` / query parity). For optional segments, `null`, `undefined`,
|
|
18
|
-
* empty string, a non-finite number (`NaN`, `±Infinity`),
|
|
19
|
-
*
|
|
18
|
+
* empty string, a non-finite number (`NaN`, `±Infinity`), a `BigInt`, or any value that is not a primitive
|
|
19
|
+
* string or finite number (`boolean`, boxed numbers, plain objects, symbols, …) omits the segment (same as leaving the key unset).
|
|
20
|
+
* Required dynamic and splat params throw when missing, empty, or when the value fails that scalar guard. `:param` values are
|
|
20
21
|
* percent-encoded after `String.prototype.toWellFormed` (parity with `stringifyQuery` in `query.ts`).
|
|
21
22
|
* Leading and trailing slashes on `pattern` are trimmed before building.
|
|
22
23
|
*/
|
package/dist/path.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../src/path.ts"],"names":[],"mappings":"AAAA,KAAK,gBAAgB,CAAC,IAAI,SAAS,MAAM,IACvC,IAAI,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,IAAI,EAAE,GACtC,gBAAgB,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAC/C,IAAI,SAAS,IAAI,MAAM,KAAK,GAAG,GAC7B,KAAK,GACL,IAAI,SAAS,IAAI,MAAM,KAAK,EAAE,GAC5B,KAAK,GACL,IAAI,SAAS,IAAI,MAAM,KAAK,EAAE,GAC5B,CAAC,KAAK,SAAS,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC,GAChC,KAAK,CAAA;AAEjB,KAAK,wBAAwB,CAAC,IAAI,SAAS,MAAM,IAC/C,IAAI,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,IAAI,EAAE,GACtC,wBAAwB,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,IAAI,CAAC,GAC/D,IAAI,SAAS,IAAI,MAAM,KAAK,EAAE,GAC5B,CAAC,KAAK,SAAS,GAAG,MAAM,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,GAC5C,IAAI,SAAS,IAAI,MAAM,KAAK,EAAE,GAC5B,CAAC,KAAK,SAAS,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC,GAChC,KAAK,CAAA;AAEf,KAAK,wBAAwB,CAAC,IAAI,SAAS,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAA;AAEpH;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,IAAI,SAAS,MAAM,IAAI;KAC3C,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,MAAM;CACvD,GAAG;KACD,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;CACxD,CAAA;
|
|
1
|
+
{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../src/path.ts"],"names":[],"mappings":"AAAA,KAAK,gBAAgB,CAAC,IAAI,SAAS,MAAM,IACvC,IAAI,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,IAAI,EAAE,GACtC,gBAAgB,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAC/C,IAAI,SAAS,IAAI,MAAM,KAAK,GAAG,GAC7B,KAAK,GACL,IAAI,SAAS,IAAI,MAAM,KAAK,EAAE,GAC5B,KAAK,GACL,IAAI,SAAS,IAAI,MAAM,KAAK,EAAE,GAC5B,CAAC,KAAK,SAAS,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC,GAChC,KAAK,CAAA;AAEjB,KAAK,wBAAwB,CAAC,IAAI,SAAS,MAAM,IAC/C,IAAI,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,IAAI,EAAE,GACtC,wBAAwB,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,IAAI,CAAC,GAC/D,IAAI,SAAS,IAAI,MAAM,KAAK,EAAE,GAC5B,CAAC,KAAK,SAAS,GAAG,MAAM,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,GAC5C,IAAI,SAAS,IAAI,MAAM,KAAK,EAAE,GAC5B,CAAC,KAAK,SAAS,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC,GAChC,KAAK,CAAA;AAEf,KAAK,wBAAwB,CAAC,IAAI,SAAS,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAA;AAEpH;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,IAAI,SAAS,MAAM,IAAI;KAC3C,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,MAAM;CACvD,GAAG;KACD,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;CACxD,CAAA;AA+BD;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,IAAI,SAAS,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAkC9F"}
|
package/dist/path.js
CHANGED
|
@@ -11,23 +11,30 @@ function wellFormedSplatRemainder(value) {
|
|
|
11
11
|
const raw = typeof value === 'string' ? value.toWellFormed() : String(value);
|
|
12
12
|
return trimSlashes(raw);
|
|
13
13
|
}
|
|
14
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* True when a param value should participate in the path. Only **primitive** `string` and finite
|
|
16
|
+
* `number` count — same scalar guard as {@link import('./query.js').stringifyQuery} (no `boolean`,
|
|
17
|
+
* boxed numbers, objects, symbols, `bigint`, or non-finite doubles).
|
|
18
|
+
*/
|
|
15
19
|
function paramValuePresent(value) {
|
|
16
20
|
if (value == null || value === '')
|
|
17
21
|
return false;
|
|
18
22
|
if (typeof value === 'bigint')
|
|
19
23
|
return false;
|
|
20
|
-
if (typeof value === 'number'
|
|
21
|
-
return
|
|
22
|
-
|
|
24
|
+
if (typeof value === 'number')
|
|
25
|
+
return Number.isFinite(value);
|
|
26
|
+
if (typeof value === 'string')
|
|
27
|
+
return true;
|
|
28
|
+
return false;
|
|
23
29
|
}
|
|
24
30
|
/**
|
|
25
31
|
* Build a pathname from a route pattern and {@link PathParams}. Static segments are copied as-is;
|
|
26
32
|
* dynamic `:id` and optional `:id?` are filled from `params`; splat `*rest` (or a lone `*`, key `'*'`)
|
|
27
33
|
* inserts the remainder with internal slashes preserved (slashes are not percent-encoded; string values are still
|
|
28
34
|
* passed through `String.prototype.toWellFormed` so lone surrogates match `:param` / query parity). For optional segments, `null`, `undefined`,
|
|
29
|
-
* empty string, a non-finite number (`NaN`, `±Infinity`),
|
|
30
|
-
*
|
|
35
|
+
* empty string, a non-finite number (`NaN`, `±Infinity`), a `BigInt`, or any value that is not a primitive
|
|
36
|
+
* string or finite number (`boolean`, boxed numbers, plain objects, symbols, …) omits the segment (same as leaving the key unset).
|
|
37
|
+
* Required dynamic and splat params throw when missing, empty, or when the value fails that scalar guard. `:param` values are
|
|
31
38
|
* percent-encoded after `String.prototype.toWellFormed` (parity with `stringifyQuery` in `query.ts`).
|
|
32
39
|
* Leading and trailing slashes on `pattern` are trimmed before building.
|
|
33
40
|
*/
|
package/dist/path.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path.js","sourceRoot":"","sources":["../src/path.ts"],"names":[],"mappings":"AAgCA,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;AACxC,CAAC;AAED,SAAS,cAAc,CAAC,KAAsB;IAC5C,kGAAkG;IAClG,MAAM,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC1E,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAA;AAC9B,CAAC;AAED,0HAA0H;AAC1H,SAAS,wBAAwB,CAAC,KAAsB;IACtD,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC5E,OAAO,WAAW,CAAC,GAAG,CAAC,CAAA;AACzB,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"path.js","sourceRoot":"","sources":["../src/path.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geometra/router",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.12.0",
|
|
4
4
|
"description": "Routing primitives for Geometra",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -34,6 +34,6 @@
|
|
|
34
34
|
"check": "tsc --noEmit"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@geometra/core": "^1.
|
|
37
|
+
"@geometra/core": "^1.12.0"
|
|
38
38
|
}
|
|
39
39
|
}
|