@tanstack/router-core 0.0.1-beta.156 → 0.0.1-beta.157
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/build/cjs/searchParams.js +25 -8
- package/build/cjs/searchParams.js.map +1 -1
- package/build/esm/index.js +25 -8
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +116 -116
- package/build/types/index.d.ts +1 -1
- package/build/umd/index.development.js +25 -8
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +2 -2
- package/build/umd/index.production.js.map +1 -1
- package/package.json +2 -2
- package/src/searchParams.ts +32 -8
|
@@ -15,7 +15,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
15
15
|
var qss = require('./qss.js');
|
|
16
16
|
|
|
17
17
|
const defaultParseSearch = parseSearchWith(JSON.parse);
|
|
18
|
-
const defaultStringifySearch = stringifySearchWith(JSON.stringify);
|
|
18
|
+
const defaultStringifySearch = stringifySearchWith(JSON.stringify, JSON.parse);
|
|
19
19
|
function parseSearchWith(parser) {
|
|
20
20
|
return searchStr => {
|
|
21
21
|
if (searchStr.substring(0, 1) === '?') {
|
|
@@ -37,7 +37,26 @@ function parseSearchWith(parser) {
|
|
|
37
37
|
return query;
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
-
function stringifySearchWith(stringify) {
|
|
40
|
+
function stringifySearchWith(stringify, parser) {
|
|
41
|
+
function stringifyValue(val) {
|
|
42
|
+
if (typeof val === 'object' && val !== null) {
|
|
43
|
+
try {
|
|
44
|
+
return stringify(val);
|
|
45
|
+
} catch (err) {
|
|
46
|
+
// silent
|
|
47
|
+
}
|
|
48
|
+
} else if (typeof val === 'string' && typeof parser === 'function') {
|
|
49
|
+
try {
|
|
50
|
+
// Check if it's a valid parseable string.
|
|
51
|
+
// If it is, then stringify it again.
|
|
52
|
+
parser(val);
|
|
53
|
+
return stringify(val);
|
|
54
|
+
} catch (err) {
|
|
55
|
+
// silent
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return val;
|
|
59
|
+
}
|
|
41
60
|
return search => {
|
|
42
61
|
search = {
|
|
43
62
|
...search
|
|
@@ -47,12 +66,10 @@ function stringifySearchWith(stringify) {
|
|
|
47
66
|
const val = search[key];
|
|
48
67
|
if (typeof val === 'undefined' || val === undefined) {
|
|
49
68
|
delete search[key];
|
|
50
|
-
} else if (val
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
// silent
|
|
55
|
-
}
|
|
69
|
+
} else if (Array.isArray(val)) {
|
|
70
|
+
search[key] = val.map(stringifyValue);
|
|
71
|
+
} else {
|
|
72
|
+
search[key] = stringifyValue(val);
|
|
56
73
|
}
|
|
57
74
|
});
|
|
58
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchParams.js","sources":["../../src/searchParams.ts"],"sourcesContent":["import { decode, encode } from './qss'\nimport { AnySearchSchema } from './route'\n\nexport const defaultParseSearch = parseSearchWith(JSON.parse)\nexport const defaultStringifySearch = stringifySearchWith(JSON.stringify)\n\nexport function parseSearchWith(parser: (str: string) => any) {\n return (searchStr: string): AnySearchSchema => {\n if (searchStr.substring(0, 1) === '?') {\n searchStr = searchStr.substring(1)\n }\n\n let query: Record<string, unknown> = decode(searchStr)\n\n // Try to parse any query params that might be json\n for (let key in query) {\n const value = query[key]\n if (typeof value === 'string') {\n try {\n query[key] = parser(value)\n } catch (err) {\n //\n }\n }\n }\n\n return query\n }\n}\n\nexport function stringifySearchWith(stringify: (search: any) => string) {\n return (search: Record<string, any>) => {\n search = { ...search }\n\n if (search) {\n Object.keys(search).forEach((key) => {\n const val = search[key]\n if (typeof val === 'undefined' || val === undefined) {\n delete search[key]\n } else if (val
|
|
1
|
+
{"version":3,"file":"searchParams.js","sources":["../../src/searchParams.ts"],"sourcesContent":["import { decode, encode } from './qss'\nimport { AnySearchSchema } from './route'\n\nexport const defaultParseSearch = parseSearchWith(JSON.parse)\nexport const defaultStringifySearch = stringifySearchWith(\n JSON.stringify,\n JSON.parse,\n)\n\nexport function parseSearchWith(parser: (str: string) => any) {\n return (searchStr: string): AnySearchSchema => {\n if (searchStr.substring(0, 1) === '?') {\n searchStr = searchStr.substring(1)\n }\n\n let query: Record<string, unknown> = decode(searchStr)\n\n // Try to parse any query params that might be json\n for (let key in query) {\n const value = query[key]\n if (typeof value === 'string') {\n try {\n query[key] = parser(value)\n } catch (err) {\n //\n }\n }\n }\n\n return query\n }\n}\n\nexport function stringifySearchWith(\n stringify: (search: any) => string,\n parser?: (str: string) => any,\n) {\n function stringifyValue(val: any) {\n if (typeof val === 'object' && val !== null) {\n try {\n return stringify(val)\n } catch (err) {\n // silent\n }\n } else if (typeof val === 'string' && typeof parser === 'function') {\n try {\n // Check if it's a valid parseable string.\n // If it is, then stringify it again.\n parser(val)\n return stringify(val)\n } catch (err) {\n // silent\n }\n }\n return val\n }\n\n return (search: Record<string, any>) => {\n search = { ...search }\n\n if (search) {\n Object.keys(search).forEach((key) => {\n const val = search[key]\n if (typeof val === 'undefined' || val === undefined) {\n delete search[key]\n } else if (Array.isArray(val)) {\n search[key] = val.map(stringifyValue)\n } else {\n search[key] = stringifyValue(val)\n }\n })\n }\n\n const searchStr = encode(search as Record<string, string>).toString()\n\n return searchStr ? `?${searchStr}` : ''\n }\n}\n"],"names":["defaultParseSearch","parseSearchWith","JSON","parse","defaultStringifySearch","stringifySearchWith","stringify","parser","searchStr","substring","query","decode","key","value","err","stringifyValue","val","search","Object","keys","forEach","undefined","Array","isArray","map","encode","toString"],"mappings":";;;;;;;;;;;;;;;;AAGO,MAAMA,kBAAkB,GAAGC,eAAe,CAACC,IAAI,CAACC,KAAK,EAAC;AAChDC,MAAAA,sBAAsB,GAAGC,mBAAmB,CACvDH,IAAI,CAACI,SAAS,EACdJ,IAAI,CAACC,KACP,EAAC;AAEM,SAASF,eAAeA,CAACM,MAA4B,EAAE;AAC5D,EAAA,OAAQC,SAAiB,IAAsB;IAC7C,IAAIA,SAAS,CAACC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE;AACrCD,MAAAA,SAAS,GAAGA,SAAS,CAACC,SAAS,CAAC,CAAC,CAAC,CAAA;AACpC,KAAA;AAEA,IAAA,IAAIC,KAA8B,GAAGC,UAAM,CAACH,SAAS,CAAC,CAAA;;AAEtD;AACA,IAAA,KAAK,IAAII,GAAG,IAAIF,KAAK,EAAE;AACrB,MAAA,MAAMG,KAAK,GAAGH,KAAK,CAACE,GAAG,CAAC,CAAA;AACxB,MAAA,IAAI,OAAOC,KAAK,KAAK,QAAQ,EAAE;QAC7B,IAAI;AACFH,UAAAA,KAAK,CAACE,GAAG,CAAC,GAAGL,MAAM,CAACM,KAAK,CAAC,CAAA;SAC3B,CAAC,OAAOC,GAAG,EAAE;AACZ;AAAA,SAAA;AAEJ,OAAA;AACF,KAAA;AAEA,IAAA,OAAOJ,KAAK,CAAA;GACb,CAAA;AACH,CAAA;AAEO,SAASL,mBAAmBA,CACjCC,SAAkC,EAClCC,MAA6B,EAC7B;EACA,SAASQ,cAAcA,CAACC,GAAQ,EAAE;IAChC,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAIA,GAAG,KAAK,IAAI,EAAE;MAC3C,IAAI;QACF,OAAOV,SAAS,CAACU,GAAG,CAAC,CAAA;OACtB,CAAC,OAAOF,GAAG,EAAE;AACZ;AAAA,OAAA;KAEH,MAAM,IAAI,OAAOE,GAAG,KAAK,QAAQ,IAAI,OAAOT,MAAM,KAAK,UAAU,EAAE;MAClE,IAAI;AACF;AACA;QACAA,MAAM,CAACS,GAAG,CAAC,CAAA;QACX,OAAOV,SAAS,CAACU,GAAG,CAAC,CAAA;OACtB,CAAC,OAAOF,GAAG,EAAE;AACZ;AAAA,OAAA;AAEJ,KAAA;AACA,IAAA,OAAOE,GAAG,CAAA;AACZ,GAAA;AAEA,EAAA,OAAQC,MAA2B,IAAK;AACtCA,IAAAA,MAAM,GAAG;MAAE,GAAGA,MAAAA;KAAQ,CAAA;AAEtB,IAAA,IAAIA,MAAM,EAAE;MACVC,MAAM,CAACC,IAAI,CAACF,MAAM,CAAC,CAACG,OAAO,CAAER,GAAG,IAAK;AACnC,QAAA,MAAMI,GAAG,GAAGC,MAAM,CAACL,GAAG,CAAC,CAAA;QACvB,IAAI,OAAOI,GAAG,KAAK,WAAW,IAAIA,GAAG,KAAKK,SAAS,EAAE;UACnD,OAAOJ,MAAM,CAACL,GAAG,CAAC,CAAA;SACnB,MAAM,IAAIU,KAAK,CAACC,OAAO,CAACP,GAAG,CAAC,EAAE;UAC7BC,MAAM,CAACL,GAAG,CAAC,GAAGI,GAAG,CAACQ,GAAG,CAACT,cAAc,CAAC,CAAA;AACvC,SAAC,MAAM;AACLE,UAAAA,MAAM,CAACL,GAAG,CAAC,GAAGG,cAAc,CAACC,GAAG,CAAC,CAAA;AACnC,SAAA;AACF,OAAC,CAAC,CAAA;AACJ,KAAA;IAEA,MAAMR,SAAS,GAAGiB,UAAM,CAACR,MAAgC,CAAC,CAACS,QAAQ,EAAE,CAAA;AAErE,IAAA,OAAOlB,SAAS,GAAI,CAAA,CAAA,EAAGA,SAAU,CAAA,CAAC,GAAG,EAAE,CAAA;GACxC,CAAA;AACH;;;;;;;"}
|
package/build/esm/index.js
CHANGED
|
@@ -636,7 +636,7 @@ class FileRoute {
|
|
|
636
636
|
}
|
|
637
637
|
|
|
638
638
|
const defaultParseSearch = parseSearchWith(JSON.parse);
|
|
639
|
-
const defaultStringifySearch = stringifySearchWith(JSON.stringify);
|
|
639
|
+
const defaultStringifySearch = stringifySearchWith(JSON.stringify, JSON.parse);
|
|
640
640
|
function parseSearchWith(parser) {
|
|
641
641
|
return searchStr => {
|
|
642
642
|
if (searchStr.substring(0, 1) === '?') {
|
|
@@ -658,7 +658,26 @@ function parseSearchWith(parser) {
|
|
|
658
658
|
return query;
|
|
659
659
|
};
|
|
660
660
|
}
|
|
661
|
-
function stringifySearchWith(stringify) {
|
|
661
|
+
function stringifySearchWith(stringify, parser) {
|
|
662
|
+
function stringifyValue(val) {
|
|
663
|
+
if (typeof val === 'object' && val !== null) {
|
|
664
|
+
try {
|
|
665
|
+
return stringify(val);
|
|
666
|
+
} catch (err) {
|
|
667
|
+
// silent
|
|
668
|
+
}
|
|
669
|
+
} else if (typeof val === 'string' && typeof parser === 'function') {
|
|
670
|
+
try {
|
|
671
|
+
// Check if it's a valid parseable string.
|
|
672
|
+
// If it is, then stringify it again.
|
|
673
|
+
parser(val);
|
|
674
|
+
return stringify(val);
|
|
675
|
+
} catch (err) {
|
|
676
|
+
// silent
|
|
677
|
+
}
|
|
678
|
+
}
|
|
679
|
+
return val;
|
|
680
|
+
}
|
|
662
681
|
return search => {
|
|
663
682
|
search = {
|
|
664
683
|
...search
|
|
@@ -668,12 +687,10 @@ function stringifySearchWith(stringify) {
|
|
|
668
687
|
const val = search[key];
|
|
669
688
|
if (typeof val === 'undefined' || val === undefined) {
|
|
670
689
|
delete search[key];
|
|
671
|
-
} else if (val
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
// silent
|
|
676
|
-
}
|
|
690
|
+
} else if (Array.isArray(val)) {
|
|
691
|
+
search[key] = val.map(stringifyValue);
|
|
692
|
+
} else {
|
|
693
|
+
search[key] = stringifyValue(val);
|
|
677
694
|
}
|
|
678
695
|
});
|
|
679
696
|
}
|