/
opt
/
canhelp
/
node_modules
/
next
/
dist
/
shared
/
lib
/
router
/
utils
/
/opt/canhelp/node_modules/next/dist/shared/lib/router/utils
mkdir
upload
Name
Size
Mode
Actions
add-locale.d.ts
365
0644
edit
dl
rm
add-locale.js
1049
0644
edit
dl
rm
add-locale.js.map
1715
0644
edit
dl
rm
add-path-prefix.d.ts
200
0644
edit
dl
rm
add-path-prefix.js
536
0644
edit
dl
rm
add-path-prefix.js.map
885
0644
edit
dl
rm
add-path-suffix.d.ts
258
0644
edit
dl
rm
add-path-suffix.js
536
0644
edit
dl
rm
add-path-suffix.js.map
944
0644
edit
dl
rm
app-paths.d.ts
900
0644
edit
dl
rm
app-paths.js
1504
0644
edit
dl
rm
app-paths.js.map
2712
0644
edit
dl
rm
as-path-to-search-params.d.ts
79
0644
edit
dl
rm
as-path-to-search-params.js
484
0644
edit
dl
rm
as-path-to-search-params.js.map
565
0644
edit
dl
rm
cache-busting-search-param.d.ts
257
0644
edit
dl
rm
cache-busting-search-param.js
832
0644
edit
dl
rm
cache-busting-search-param.js.map
1315
0644
edit
dl
rm
compare-states.d.ts
146
0644
edit
dl
rm
compare-states.js
1070
0644
edit
dl
rm
compare-states.js.map
1931
0644
edit
dl
rm
disable-smooth-scroll.d.ts
304
0644
edit
dl
rm
disable-smooth-scroll.js
2515
0644
edit
dl
rm
disable-smooth-scroll.js.map
3621
0644
edit
dl
rm
escape-path-delimiters.d.ts
96
0644
edit
dl
rm
escape-path-delimiters.js
508
0644
edit
dl
rm
escape-path-delimiters.js.map
753
0644
edit
dl
rm
format-next-pathname-info.d.ts
261
0644
edit
dl
rm
format-next-pathname-info.js
1290
0644
edit
dl
rm
format-next-pathname-info.js.map
2090
0644
edit
dl
rm
format-url.d.ts
216
0644
edit
dl
rm
format-url.js
3955
0644
edit
dl
rm
format-url.js.map
5739
0644
edit
dl
rm
get-asset-path-from-route.d.ts
84
0644
edit
dl
rm
get-asset-path-from-route.js
639
0644
edit
dl
rm
get-asset-path-from-route.js.map
846
0644
edit
dl
rm
get-dynamic-param.d.ts
2775
0644
edit
dl
rm
get-dynamic-param.js
3976
0644
edit
dl
rm
get-dynamic-param.js.map
7442
0644
edit
dl
rm
get-next-pathname-info.d.ts
1450
0644
edit
dl
rm
get-next-pathname-info.js
2479
0644
edit
dl
rm
get-next-pathname-info.js.map
5178
0644
edit
dl
rm
get-route-from-asset-path.d.ts
88
0644
edit
dl
rm
get-route-from-asset-path.js
931
0644
edit
dl
rm
get-route-from-asset-path.js.map
1324
0644
edit
dl
rm
html-bots.d.ts
53
0644
edit
dl
rm
html-bots.js
1135
0644
edit
dl
rm
html-bots.js.map
1145
0644
edit
dl
rm
index.d.ts
121
0644
edit
dl
rm
index.js
766
0644
edit
dl
rm
index.js.map
430
0644
edit
dl
rm
interception-routes.d.ts
312
0644
edit
dl
rm
interception-routes.js
4354
0644
edit
dl
rm
interception-routes.js.map
5054
0644
edit
dl
rm
interpolate-as.d.ts
195
0644
edit
dl
rm
interpolate-as.js
2242
0644
edit
dl
rm
interpolate-as.js.map
3801
0644
edit
dl
rm
is-bot.d.ts
291
0644
edit
dl
rm
is-bot.js
1764
0644
edit
dl
rm
is-bot.js.map
1998
0644
edit
dl
rm
is-dynamic.d.ts
316
0644
edit
dl
rm
is-dynamic.js
867
0644
edit
dl
rm
is-dynamic.js.map
1489
0644
edit
dl
rm
is-local-url.d.ts
147
0644
edit
dl
rm
is-local-url.js
854
0644
edit
dl
rm
is-local-url.js.map
1271
0644
edit
dl
rm
middleware-route-matcher.d.ts
463
0644
edit
dl
rm
middleware-route-matcher.js
947
0644
edit
dl
rm
middleware-route-matcher.js.map
1762
0644
edit
dl
rm
omit.d.ts
126
0644
edit
dl
rm
omit.js
440
0644
edit
dl
rm
omit.js.map
778
0644
edit
dl
rm
parse-path.d.ts
320
0644
edit
dl
rm
parse-path.js
1041
0644
edit
dl
rm
parse-path.js.map
1510
0644
edit
dl
rm
parse-relative-url.d.ts
745
0644
edit
dl
rm
parse-relative-url.js
1476
0644
edit
dl
rm
parse-relative-url.js.map
3015
0644
edit
dl
rm
parse-url.d.ts
365
0644
edit
dl
rm
parse-url.js
954
0644
edit
dl
rm
parse-url.js.map
1843
0644
edit
dl
rm
path-has-prefix.d.ts
364
0644
edit
dl
rm
path-has-prefix.js
535
0644
edit
dl
rm
path-has-prefix.js.map
996
0644
edit
dl
rm
path-match.d.ts
989
0644
edit
dl
rm
path-match.js
1961
0644
edit
dl
rm
path-match.js.map
3773
0644
edit
dl
rm
prepare-destination.d.ts
1527
0644
edit
dl
rm
prepare-destination.js
10637
0644
edit
dl
rm
prepare-destination.js.map
17187
0644
edit
dl
rm
querystring.d.ts
348
0644
edit
dl
rm
querystring.js
2281
0644
edit
dl
rm
querystring.js.map
3287
0644
edit
dl
rm
relativize-url.d.ts
679
0644
edit
dl
rm
relativize-url.js
1121
0644
edit
dl
rm
relativize-url.js.map
1872
0644
edit
dl
rm
remove-path-prefix.d.ts
389
0644
edit
dl
rm
remove-path-prefix.js
1261
0644
edit
dl
rm
remove-path-prefix.js.map
2000
0644
edit
dl
rm
remove-trailing-slash.d.ts
259
0644
edit
dl
rm
remove-trailing-slash.js
552
0644
edit
dl
rm
remove-trailing-slash.js.map
598
0644
edit
dl
rm
resolve-rewrites.d.ts
682
0644
edit
dl
rm
resolve-rewrites.js
4670
0644
edit
dl
rm
resolve-rewrites.js.map
7781
0644
edit
dl
rm
route-match-utils.d.ts
1513
0644
edit
dl
rm
route-match-utils.js
3675
0644
edit
dl
rm
route-match-utils.js.map
5754
0644
edit
dl
rm
route-matcher.d.ts
384
0644
edit
dl
rm
route-matcher.js
1509
0644
edit
dl
rm
route-matcher.js.map
2558
0644
edit
dl
rm
route-regex.d.ts
3492
0644
edit
dl
rm
route-regex.js
9498
0644
edit
dl
rm
route-regex.js.map
17577
0644
edit
dl
rm
sortable-routes.d.ts
4249
0644
edit
dl
rm
sortable-routes.js
6321
0644
edit
dl
rm
sortable-routes.js.map
12530
0644
edit
dl
rm
sorted-routes.d.ts
344
0644
edit
dl
rm
sorted-routes.js
11664
0644
edit
dl
rm
sorted-routes.js.map
14788
0644
edit
dl
rm
Edit:
/opt/canhelp/node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js.map
(7442B)
{"version":3,"sources":["../../../../../src/shared/lib/router/utils/get-dynamic-param.ts"],"sourcesContent":["import type { DynamicParam } from '../../../../server/app-render/app-render'\nimport type { DynamicParamTypesShort } from '../../../../server/app-render/types'\nimport type { FallbackRouteParams } from '../../../../server/request/fallback-params'\n\n/**\n *\n * Shared logic on client and server for creating a dynamic param value.\n *\n * This code needs to be shared with the client so it can extract dynamic route\n * params from the URL without a server request.\n *\n * Because everything in this module is sent to the client, we should aim to\n * keep this code as simple as possible. The special case handling for catchall\n * and optional is, alas, unfortunate.\n */\nexport function getDynamicParam(\n params: { [key: string]: any },\n segmentKey: string,\n dynamicParamType: DynamicParamTypesShort,\n pagePath: string,\n fallbackRouteParams: FallbackRouteParams | null\n): DynamicParam {\n let value = params[segmentKey]\n\n if (fallbackRouteParams && fallbackRouteParams.has(segmentKey)) {\n value = fallbackRouteParams.get(segmentKey)\n } else if (Array.isArray(value)) {\n value = value.map((i) => encodeURIComponent(i))\n } else if (typeof value === 'string') {\n value = encodeURIComponent(value)\n }\n\n if (!value) {\n const isCatchall = dynamicParamType === 'c'\n const isOptionalCatchall = dynamicParamType === 'oc'\n\n if (isCatchall || isOptionalCatchall) {\n // handle the case where an optional catchall does not have a value,\n // e.g. `/dashboard/[[...slug]]` when requesting `/dashboard`\n if (isOptionalCatchall) {\n return {\n param: segmentKey,\n value: null,\n type: dynamicParamType,\n treeSegment: [segmentKey, '', dynamicParamType],\n }\n }\n\n // handle the case where a catchall or optional catchall does not have a value,\n // e.g. `/foo/bar/hello` and `@slot/[...catchall]` or `@slot/[[...catchall]]` is matched\n value = pagePath\n .split('/')\n // remove the first empty string\n .slice(1)\n // replace any dynamic params with the actual values\n .flatMap((pathSegment) => {\n const param = parseParameter(pathSegment)\n // if the segment matches a param, return the param value\n // otherwise, it's a static segment, so just return that\n return params[param.key] ?? param.key\n })\n\n return {\n param: segmentKey,\n value,\n type: dynamicParamType,\n // This value always has to be a string.\n treeSegment: [segmentKey, value.join('/'), dynamicParamType],\n }\n }\n }\n\n return {\n param: segmentKey,\n // The value that is passed to user code.\n value: value,\n // The value that is rendered in the router tree.\n treeSegment: [\n segmentKey,\n Array.isArray(value) ? value.join('/') : value,\n dynamicParamType,\n ],\n type: dynamicParamType,\n }\n}\n\n/**\n * Regular expression pattern used to match route parameters.\n * Matches both single parameters and parameter groups.\n * Examples:\n * - `[[...slug]]` matches parameter group with key 'slug', repeat: true, optional: true\n * - `[...slug]` matches parameter group with key 'slug', repeat: true, optional: false\n * - `[[foo]]` matches parameter with key 'foo', repeat: false, optional: true\n * - `[bar]` matches parameter with key 'bar', repeat: false, optional: false\n */\nexport const PARAMETER_PATTERN = /^([^[]*)\\[((?:\\[[^\\]]*\\])|[^\\]]+)\\](.*)$/\n\n/**\n * Parses a given parameter from a route to a data structure that can be used\n * to generate the parametrized route.\n * Examples:\n * - `[[...slug]]` -> `{ key: 'slug', repeat: true, optional: true }`\n * - `[...slug]` -> `{ key: 'slug', repeat: true, optional: false }`\n * - `[[foo]]` -> `{ key: 'foo', repeat: false, optional: true }`\n * - `[bar]` -> `{ key: 'bar', repeat: false, optional: false }`\n * - `fizz` -> `{ key: 'fizz', repeat: false, optional: false }`\n * @param param - The parameter to parse.\n * @returns The parsed parameter as a data structure.\n */\nexport function parseParameter(param: string) {\n const match = param.match(PARAMETER_PATTERN)\n\n if (!match) {\n return parseMatchedParameter(param)\n }\n\n return parseMatchedParameter(match[2])\n}\n\n/**\n * Parses a matched parameter from the PARAMETER_PATTERN regex to a data structure that can be used\n * to generate the parametrized route.\n * Examples:\n * - `[...slug]` -> `{ key: 'slug', repeat: true, optional: true }`\n * - `...slug` -> `{ key: 'slug', repeat: true, optional: false }`\n * - `[foo]` -> `{ key: 'foo', repeat: false, optional: true }`\n * - `bar` -> `{ key: 'bar', repeat: false, optional: false }`\n * @param param - The matched parameter to parse.\n * @returns The parsed parameter as a data structure.\n */\nexport function parseMatchedParameter(param: string) {\n const optional = param.startsWith('[') && param.endsWith(']')\n if (optional) {\n param = param.slice(1, -1)\n }\n const repeat = param.startsWith('...')\n if (repeat) {\n param = param.slice(3)\n }\n return { key: param, repeat, optional }\n}\n"],"names":["PARAMETER_PATTERN","getDynamicParam","parseMatchedParameter","parseParameter","params","segmentKey","dynamicParamType","pagePath","fallbackRouteParams","value","has","get","Array","isArray","map","i","encodeURIComponent","isCatchall","isOptionalCatchall","param","type","treeSegment","split","slice","flatMap","pathSegment","key","join","match","optional","startsWith","endsWith","repeat"],"mappings":";;;;;;;;;;;;;;;;;IA+FaA,iBAAiB;eAAjBA;;IAhFGC,eAAe;eAAfA;;IAmHAC,qBAAqB;eAArBA;;IArBAC,cAAc;eAAdA;;;AA9FT,SAASF,gBACdG,MAA8B,EAC9BC,UAAkB,EAClBC,gBAAwC,EACxCC,QAAgB,EAChBC,mBAA+C;IAE/C,IAAIC,QAAQL,MAAM,CAACC,WAAW;IAE9B,IAAIG,uBAAuBA,oBAAoBE,GAAG,CAACL,aAAa;QAC9DI,QAAQD,oBAAoBG,GAAG,CAACN;IAClC,OAAO,IAAIO,MAAMC,OAAO,CAACJ,QAAQ;QAC/BA,QAAQA,MAAMK,GAAG,CAAC,CAACC,IAAMC,mBAAmBD;IAC9C,OAAO,IAAI,OAAON,UAAU,UAAU;QACpCA,QAAQO,mBAAmBP;IAC7B;IAEA,IAAI,CAACA,OAAO;QACV,MAAMQ,aAAaX,qBAAqB;QACxC,MAAMY,qBAAqBZ,qBAAqB;QAEhD,IAAIW,cAAcC,oBAAoB;YACpC,oEAAoE;YACpE,6DAA6D;YAC7D,IAAIA,oBAAoB;gBACtB,OAAO;oBACLC,OAAOd;oBACPI,OAAO;oBACPW,MAAMd;oBACNe,aAAa;wBAAChB;wBAAY;wBAAIC;qBAAiB;gBACjD;YACF;YAEA,+EAA+E;YAC/E,wFAAwF;YACxFG,QAAQF,SACLe,KAAK,CAAC,IACP,gCAAgC;aAC/BC,KAAK,CAAC,EACP,oDAAoD;aACnDC,OAAO,CAAC,CAACC;gBACR,MAAMN,QAAQhB,eAAesB;oBAGtBrB;gBAFP,yDAAyD;gBACzD,wDAAwD;gBACxD,OAAOA,CAAAA,oBAAAA,MAAM,CAACe,MAAMO,GAAG,CAAC,YAAjBtB,oBAAqBe,MAAMO,GAAG;YACvC;YAEF,OAAO;gBACLP,OAAOd;gBACPI;gBACAW,MAAMd;gBACN,wCAAwC;gBACxCe,aAAa;oBAAChB;oBAAYI,MAAMkB,IAAI,CAAC;oBAAMrB;iBAAiB;YAC9D;QACF;IACF;IAEA,OAAO;QACLa,OAAOd;QACP,yCAAyC;QACzCI,OAAOA;QACP,iDAAiD;QACjDY,aAAa;YACXhB;YACAO,MAAMC,OAAO,CAACJ,SAASA,MAAMkB,IAAI,CAAC,OAAOlB;YACzCH;SACD;QACDc,MAAMd;IACR;AACF;AAWO,MAAMN,oBAAoB;AAc1B,SAASG,eAAegB,KAAa;IAC1C,MAAMS,QAAQT,MAAMS,KAAK,CAAC5B;IAE1B,IAAI,CAAC4B,OAAO;QACV,OAAO1B,sBAAsBiB;IAC/B;IAEA,OAAOjB,sBAAsB0B,KAAK,CAAC,EAAE;AACvC;AAaO,SAAS1B,sBAAsBiB,KAAa;IACjD,MAAMU,WAAWV,MAAMW,UAAU,CAAC,QAAQX,MAAMY,QAAQ,CAAC;IACzD,IAAIF,UAAU;QACZV,QAAQA,MAAMI,KAAK,CAAC,GAAG,CAAC;IAC1B;IACA,MAAMS,SAASb,MAAMW,UAAU,CAAC;IAChC,IAAIE,QAAQ;QACVb,QAAQA,MAAMI,KAAK,CAAC;IACtB;IACA,OAAO;QAAEG,KAAKP;QAAOa;QAAQH;IAAS;AACxC","ignoreList":[0]}
Save
cmd:
run