@react-navigation/core 8.0.0-alpha.23 → 8.0.0-alpha.24

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.
Files changed (60) hide show
  1. package/lib/module/NavigationBuilderContext.js.map +1 -1
  2. package/lib/module/StaticNavigation.js +1 -1
  3. package/lib/module/StaticNavigation.js.map +1 -1
  4. package/lib/module/createNavigatorFactory.js.map +1 -1
  5. package/lib/module/getPathFromState.js +87 -57
  6. package/lib/module/getPathFromState.js.map +1 -1
  7. package/lib/module/getStateFromPath.js +77 -46
  8. package/lib/module/getStateFromPath.js.map +1 -1
  9. package/lib/module/index.js.map +1 -1
  10. package/lib/module/types.js +13 -0
  11. package/lib/module/types.js.map +1 -1
  12. package/lib/module/useEventEmitter.js +4 -1
  13. package/lib/module/useEventEmitter.js.map +1 -1
  14. package/lib/module/useNavigationBuilder.js +1 -7
  15. package/lib/module/useNavigationBuilder.js.map +1 -1
  16. package/lib/module/useOnAction.js +4 -1
  17. package/lib/module/useOnAction.js.map +1 -1
  18. package/lib/module/useOnPreventRemove.js +35 -24
  19. package/lib/module/useOnPreventRemove.js.map +1 -1
  20. package/lib/module/useRoute.js.map +1 -1
  21. package/lib/module/validatePathConfig.js +50 -37
  22. package/lib/module/validatePathConfig.js.map +1 -1
  23. package/lib/typescript/src/NavigationBuilderContext.d.ts +2 -2
  24. package/lib/typescript/src/NavigationBuilderContext.d.ts.map +1 -1
  25. package/lib/typescript/src/StaticNavigation.d.ts +3 -3
  26. package/lib/typescript/src/StaticNavigation.d.ts.map +1 -1
  27. package/lib/typescript/src/createNavigatorFactory.d.ts +4 -2
  28. package/lib/typescript/src/createNavigatorFactory.d.ts.map +1 -1
  29. package/lib/typescript/src/getPathFromState.d.ts.map +1 -1
  30. package/lib/typescript/src/getStateFromPath.d.ts.map +1 -1
  31. package/lib/typescript/src/index.d.ts +1 -1
  32. package/lib/typescript/src/index.d.ts.map +1 -1
  33. package/lib/typescript/src/types.d.ts +66 -17
  34. package/lib/typescript/src/types.d.ts.map +1 -1
  35. package/lib/typescript/src/useEventEmitter.d.ts +1 -1
  36. package/lib/typescript/src/useEventEmitter.d.ts.map +1 -1
  37. package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
  38. package/lib/typescript/src/useOnAction.d.ts.map +1 -1
  39. package/lib/typescript/src/useOnPreventRemove.d.ts +2 -6
  40. package/lib/typescript/src/useOnPreventRemove.d.ts.map +1 -1
  41. package/lib/typescript/src/useRoute.d.ts +1 -1
  42. package/lib/typescript/src/useRoute.d.ts.map +1 -1
  43. package/lib/typescript/src/utilities.d.ts +4 -38
  44. package/lib/typescript/src/utilities.d.ts.map +1 -1
  45. package/lib/typescript/src/validatePathConfig.d.ts.map +1 -1
  46. package/package.json +5 -5
  47. package/src/NavigationBuilderContext.tsx +5 -1
  48. package/src/StaticNavigation.tsx +7 -6
  49. package/src/createNavigatorFactory.tsx +23 -2
  50. package/src/getPathFromState.tsx +97 -66
  51. package/src/getStateFromPath.tsx +168 -142
  52. package/src/index.tsx +1 -0
  53. package/src/types.tsx +257 -33
  54. package/src/useEventEmitter.tsx +6 -1
  55. package/src/useNavigationBuilder.tsx +1 -8
  56. package/src/useOnAction.tsx +6 -2
  57. package/src/useOnPreventRemove.tsx +68 -36
  58. package/src/useRoute.tsx +3 -5
  59. package/src/utilities.tsx +8 -41
  60. package/src/validatePathConfig.tsx +85 -58
@@ -1 +1 @@
1
- {"version":3,"names":["React","NavigationBuilderContext","createContext","onDispatchAction","undefined","onEmitEvent","onOptionsChange","scheduleUpdate","Error","flushUpdates"],"sourceRoot":"../../src","sources":["NavigationBuilderContext.tsx"],"mappings":";;AAKA,OAAO,KAAKA,KAAK,MAAM,OAAO;AA6C9B;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,gBAAGD,KAAK,CAACE,aAAa,CAkBxD;EACDC,gBAAgB,EAAEA,CAAA,KAAMC,SAAS;EACjCC,WAAW,EAAEA,CAAA,KAAMD,SAAS;EAC5BE,eAAe,EAAEA,CAAA,KAAMF,SAAS;EAChCG,cAAc,EAAEA,CAAA,KAAM;IACpB,MAAM,IAAIC,KAAK,CAAC,iDAAiD,CAAC;EACpE,CAAC;EACDC,YAAY,EAAEA,CAAA,KAAM;IAClB,MAAM,IAAID,KAAK,CAAC,+CAA+C,CAAC;EAClE;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","NavigationBuilderContext","createContext","onDispatchAction","undefined","onEmitEvent","onOptionsChange","scheduleUpdate","Error","flushUpdates"],"sourceRoot":"../../src","sources":["NavigationBuilderContext.tsx"],"mappings":";;AAMA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAgD9B;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,gBAAGD,KAAK,CAACE,aAAa,CAkBxD;EACDC,gBAAgB,EAAEA,CAAA,KAAMC,SAAS;EACjCC,WAAW,EAAEA,CAAA,KAAMD,SAAS;EAC5BE,eAAe,EAAEA,CAAA,KAAMF,SAAS;EAChCG,cAAc,EAAEA,CAAA,KAAM;IACpB,MAAM,IAAIC,KAAK,CAAC,iDAAiD,CAAC;EACpE,CAAC;EACDC,YAAY,EAAEA,CAAA,KAAM;IAClB,MAAM,IAAID,KAAK,CAAC,+CAA+C,CAAC;EAClE;AACF,CAAC,CAAC","ignoreList":[]}
@@ -21,7 +21,7 @@ import { useRoute } from "./useRoute.js";
21
21
  // `= ParamsForScreen<C> | ParamsForScreen<S>`
22
22
 
23
23
  // Only infer params from linking if it's a pattern (i.e., contains ':')
24
- // or if parse is present for query params.
24
+ // or if parse is present, which can also define query params.
25
25
  // This avoids inferring non-literals like 'string' without parse.
26
26
 
27
27
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["React","isValidElementType","combinePatternParts","getPatternParts","useRoute","jsx","_jsx","createScreenFactory","config","MemoizedScreen","memo","component","route","children","createElement","displayName","getItemsFromScreens","Screen","screens","Object","entries","map","name","item","props","useIf","isNavigator","screen","if","_if","rest","getComponent","Error","element","shouldRender","createComponentForStaticConfig","tree","Navigator","Group","groups","items","key","push","group","groupItems","navigationKey","length","NavigatorComponent","_","screenOptions","options","screenListeners","markSharedPathConfigs","sources","blocked","candidates","Map","collect","parentParts","disabled","values","parts","path","exact","has","add","pattern","part","segment","join","get","set","shared","entry","source","undefined","some","candidate","createPathConfigForStaticNavigation","auto","initialScreenHasPath","initialScreenConfig","hasEmptyPath","WeakSet","WeakMap","createPathConfigForTree","t","o","skipInitialDetection","allowAutoEmptyPath","initialRouteName","routeNames","Set","keys","forEach","createPathConfigForScreens","fromEntries","sort","a","b","screenConfig","normalizePath","replace","linking","assign","alias","hasExplicitScreens","hasDisabledLinking","childOptions","includes","skipInitialDetectionInChild","allowAutoEmptyPathInChild","toLowerCase","filter"],"sourceRoot":"../../src","sources":["StaticNavigation.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","isValidElementType","combinePatternParts","getPatternParts","useRoute","jsx","_jsx","createScreenFactory","config","MemoizedScreen","memo","component","route","children","createElement","displayName","getItemsFromScreens","Screen","screens","Object","entries","map","name","item","props","useIf","isNavigator","screen","if","_if","rest","getComponent","Error","element","shouldRender","createComponentForStaticConfig","tree","Navigator","Group","groups","items","key","push","group","groupItems","navigationKey","length","NavigatorComponent","_","screenOptions","options","screenListeners","markSharedPathConfigs","sources","blocked","candidates","Map","collect","parentParts","disabled","values","parts","path","exact","has","add","pattern","part","segment","join","get","set","shared","entry","source","undefined","some","candidate","createPathConfigForStaticNavigation","auto","initialScreenHasPath","initialScreenConfig","hasEmptyPath","WeakSet","WeakMap","createPathConfigForTree","t","o","skipInitialDetection","allowAutoEmptyPath","initialRouteName","routeNames","Set","keys","forEach","createPathConfigForScreens","fromEntries","sort","a","b","screenConfig","normalizePath","replace","linking","assign","alias","hasExplicitScreens","hasDisabledLinking","childOptions","includes","skipInitialDetectionInChild","allowAutoEmptyPathInChild","toLowerCase","filter"],"sourceRoot":"../../src","sources":["StaticNavigation.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","Group","Screen","createComponentForStaticConfig","createNavigatorFactory","Navigator","displayName","name","createNavigator","config","NavigatorComponent","with","DecoratorComponent","WithComponent","createElement","getComponent"],"sourceRoot":"../../src","sources":["createNavigatorFactory.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,MAAM,QAAQ,aAAU;AACjC,SACEC,8BAA8B,QAGzB,uBAAoB;AAqC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CACpCC,SAAmC,EACH;EAChC,MAAMC,WAAW,GAAGD,SAAS,CAACC,WAAW,IAAID,SAAS,CAACE,IAAI,IAAI,WAAW;EAE1E,SAASC,eAAeA,CAACC,MAAY,EAAO;IAC1C,IAAIA,MAAM,IAAI,IAAI,EAAE;MAClB,MAAMC,kBAAkB,GAAGP,8BAA8B,CACvD;QACEE,SAAS;QACTH,MAAM;QACND,KAAK;QACLQ;MACF,CAAC,EACDH,WACF,CAAC;MAED,OAAO;QACLG,MAAM;QACNE,IAAIA,CACFC,kBAEE,EACF;UACA,MAAMC,aAAa,GAAGA,CAAA,KAAM;YAC1B,oBAAOb,KAAK,CAACc,aAAa,CAACF,kBAAkB,EAAE;cAC7CP,SAAS,EAAEK;YACb,CAAC,CAAC;UACJ,CAAC;UAEDG,aAAa,CAACP,WAAW,GAAG,GAAGA,WAAW,MAAM;UAEhD,OAAO;YACLG,MAAM;YACNM,YAAY,EAAEA,CAAA,KAAMF;UACtB,CAAC;QACH,CAAC;QACDE,YAAYA,CAAA,EAAG;UACb,OAAOL,kBAAkB;QAC3B;MACF,CAAC;IACH;IAEA,OAAO;MACLL,SAAS;MACTH,MAAM;MACND;IACF,CAAC;EACH;EAEA,OAAOO,eAAe;AACxB","ignoreList":[]}
1
+ {"version":3,"names":["React","Group","Screen","createComponentForStaticConfig","createNavigatorFactory","Navigator","displayName","name","createNavigator","config","NavigatorComponent","with","DecoratorComponent","WithComponent","createElement","getComponent"],"sourceRoot":"../../src","sources":["createNavigatorFactory.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,MAAM,QAAQ,aAAU;AACjC,SACEC,8BAA8B,QAGzB,uBAAoB;AA0D3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CACpCC,SAAmC,EACH;EAChC,MAAMC,WAAW,GAAGD,SAAS,CAACC,WAAW,IAAID,SAAS,CAACE,IAAI,IAAI,WAAW;EAE1E,SAASC,eAAeA,CAACC,MAAY,EAAO;IAC1C,IAAIA,MAAM,IAAI,IAAI,EAAE;MAClB,MAAMC,kBAAkB,GAAGP,8BAA8B,CACvD;QACEE,SAAS;QACTH,MAAM;QACND,KAAK;QACLQ;MACF,CAAC,EACDH,WACF,CAAC;MAED,OAAO;QACLG,MAAM;QACNE,IAAIA,CACFC,kBAEE,EACF;UACA,MAAMC,aAAa,GAAGA,CAAA,KAAM;YAC1B,oBAAOb,KAAK,CAACc,aAAa,CAACF,kBAAkB,EAAE;cAC7CP,SAAS,EAAEK;YACb,CAAC,CAAC;UACJ,CAAC;UAEDG,aAAa,CAACP,WAAW,GAAG,GAAGA,WAAW,MAAM;UAEhD,OAAO;YACLG,MAAM;YACNM,YAAY,EAAEA,CAAA,KAAMF;UACtB,CAAC;QACH,CAAC;QACDE,YAAYA,CAAA,EAAG;UACb,OAAOL,kBAAkB;QAC3B;MACF,CAAC;IACH;IAEA,OAAO;MACLL,SAAS;MACTH,MAAM;MACND;IACF,CAAC;EACH;EAEA,OAAOO,eAAe;AACxB","ignoreList":[]}
@@ -4,6 +4,15 @@ import queryString from 'query-string';
4
4
  import { getPatternParts } from "./getPatternParts.js";
5
5
  import { getStateFromRouteParams } from "./getStateFromRouteParams.js";
6
6
  import { validatePathConfig } from "./validatePathConfig.js";
7
+ const encodePathParam = value => {
8
+ let result = '';
9
+ for (const char of value) {
10
+ const charCode = char.charCodeAt(0);
11
+ const safe = charCode >= 65 && charCode <= 90 || charCode >= 97 && charCode <= 122 || charCode >= 48 && charCode <= 57 || "-._~!$&'()*+,;=:@".includes(char);
12
+ result += safe ? char : encodeURIComponent(char);
13
+ }
14
+ return result;
15
+ };
7
16
  const getActiveRoute = state => {
8
17
  const route = typeof state.index === 'number' ? state.routes[state.index] : state.routes[state.routes.length - 1];
9
18
  if (route == null) {
@@ -110,42 +119,45 @@ export function getPathFromState(state, options) {
110
119
  nestedRouteNames.push(route.name);
111
120
  if (route.params) {
112
121
  const options = config;
113
- const currentParams = Object.fromEntries(Object.entries(route.params).map(([key, value]) => {
122
+ const params = route.params;
123
+ const currentParams = {};
124
+ for (const key in params) {
125
+ const value = params[key];
114
126
  if (value === undefined) {
115
- if (options) {
116
- const optional = options.parts?.find(part => part.param === key)?.optional;
117
- if (optional) {
118
- return null;
127
+ let optional = false;
128
+ for (const part of options.parts ?? []) {
129
+ if (part.param === key) {
130
+ optional = part.optional === true;
131
+ break;
119
132
  }
120
- } else {
121
- return null;
133
+ }
134
+ if (optional) {
135
+ continue;
122
136
  }
123
137
  }
124
- const stringify = options?.stringify?.[key] ?? String;
125
- return [key, stringify(value)];
126
- }).filter(entry => entry != null));
138
+ const stringify = options.stringify?.[key] ?? String;
139
+ currentParams[key] = stringify(value);
140
+ }
127
141
  if (parts?.length) {
128
142
  Object.assign(allParams, currentParams);
129
143
  }
130
144
  if (focusedRoute === route) {
131
145
  // If this is the focused route, keep the params for later use
132
146
  // We save it here since it's been stringified already
133
- focusedParams = {
134
- ...currentParams
135
- };
136
- parts
137
- // eslint-disable-next-line no-loop-func
138
- ?.forEach(({
139
- param
140
- }) => {
141
- if (param) {
142
- // Remove the params present in the pattern since we'll only use the rest for query string
143
- if (focusedParams) {
144
- // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
145
- delete focusedParams[param];
147
+ focusedParams = {};
148
+ for (const key in currentParams) {
149
+ let inPattern = false;
150
+ for (const part of parts ?? []) {
151
+ if (part.param === key) {
152
+ inPattern = true;
153
+ break;
146
154
  }
147
155
  }
148
- });
156
+ const value = currentParams[key];
157
+ if (!inPattern && value !== undefined && value !== 'undefined') {
158
+ focusedParams[key] = value;
159
+ }
160
+ }
149
161
  }
150
162
  }
151
163
 
@@ -171,47 +183,58 @@ export function getPathFromState(state, options) {
171
183
  }
172
184
  }
173
185
  if (currentOptions[route.name] != null) {
174
- path += parts?.map(({
175
- segment,
176
- param,
177
- optional
178
- }) => {
179
- // We don't know what to show for wildcard patterns
180
- // Showing the route name seems ok, though whatever we show here will be incorrect
181
- // Since the page doesn't actually exist
182
- if (segment === '*') {
183
- return route.name;
184
- }
186
+ if (parts) {
187
+ let index = 0;
188
+ for (const {
189
+ segment,
190
+ param,
191
+ optional
192
+ } of parts) {
193
+ if (index > 0) {
194
+ path += '/';
195
+ }
196
+ index++;
185
197
 
186
- // If the path has a pattern for a param, put the param in the path
187
- if (param) {
188
- const value = allParams[param];
189
- if (value === undefined && optional) {
190
- // Optional params without value assigned in route.params should be ignored
191
- return '';
198
+ // We don't know what to show for wildcard patterns
199
+ // Showing the route name seems ok, though whatever we show here will be incorrect
200
+ // Since the page doesn't actually exist
201
+ if (segment === '*') {
202
+ path += route.name;
203
+ continue;
192
204
  }
193
205
 
194
- // Valid characters according to
195
- // https://datatracker.ietf.org/doc/html/rfc3986#section-3.3 (see pchar definition)
196
- return Array.from(String(value)).map(char => /[^A-Za-z0-9\-._~!$&'()*+,;=:@]/g.test(char) ? encodeURIComponent(char) : char).join('');
206
+ // If the path has a pattern for a param, put the param in the path
207
+ if (param) {
208
+ const value = allParams[param];
209
+ if (value === undefined && optional) {
210
+ // Optional params without value assigned in route.params should be ignored
211
+ continue;
212
+ }
213
+
214
+ // Valid characters according to
215
+ // https://datatracker.ietf.org/doc/html/rfc3986#section-3.3 (see pchar definition)
216
+ path += encodePathParam(String(value));
217
+ continue;
218
+ }
219
+ path += encodeURIComponent(segment);
197
220
  }
198
- return encodeURIComponent(segment);
199
- }).join('/');
221
+ }
200
222
  } else {
201
223
  path += encodeURIComponent(route.name);
202
224
  }
203
225
  if (!focusedParams && focusedRoute.params) {
204
- focusedParams = Object.fromEntries(Object.entries(focusedRoute.params).map(([key, value]) => [key, String(value)]));
226
+ focusedParams = {};
227
+ const params = focusedRoute.params;
228
+ for (const key in params) {
229
+ const value = String(params[key]);
230
+ if (value !== 'undefined') {
231
+ focusedParams[key] = value;
232
+ }
233
+ }
205
234
  }
206
235
  if (route.state) {
207
236
  path += '/';
208
237
  } else if (focusedParams) {
209
- for (const param in focusedParams) {
210
- if (focusedParams[param] === 'undefined') {
211
- // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
212
- delete focusedParams[param];
213
- }
214
- }
215
238
  const query = queryString.stringify(focusedParams, {
216
239
  sort: false
217
240
  });
@@ -265,8 +288,15 @@ const createConfigItem = (config, parentParts) => {
265
288
  screens
266
289
  };
267
290
  };
268
- const createNormalizedConfigs = (options, parts) => Object.fromEntries(Object.entries(options).map(([name, c]) => {
269
- const result = createConfigItem(c, parts);
270
- return [name, result];
271
- }));
291
+ const createNormalizedConfigs = (options, parts) => {
292
+ const configs = {};
293
+ const screens = options;
294
+ for (const name in screens) {
295
+ const config = screens[name];
296
+ if (config !== undefined) {
297
+ configs[name] = createConfigItem(config, parts);
298
+ }
299
+ }
300
+ return configs;
301
+ };
272
302
  //# sourceMappingURL=getPathFromState.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["queryString","getPatternParts","getStateFromRouteParams","validatePathConfig","getActiveRoute","state","route","index","routes","length","Error","cachedNormalizedConfigs","WeakMap","getNormalizedConfigs","options","screens","cached","get","normalizedConfigs","createNormalizedConfigs","set","getTransformedState","configs","map","config","name","params","screen","nestedState","getPathFromState","String","transformedState","path","current","allParams","initialRoute","parts","focusedParams","currentOptions","focusedRoute","nestedRouteNames","hasNext","push","currentParams","Object","fromEntries","entries","key","value","undefined","optional","find","part","param","stringify","filter","entry","assign","forEach","nextRoute","nestedConfig","segment","Array","from","char","test","encodeURIComponent","join","query","sort","replace","startsWith","createConfigItem","parentParts","exact","c","result"],"sourceRoot":"../../src","sources":["getPathFromState.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["queryString","getPatternParts","getStateFromRouteParams","validatePathConfig","encodePathParam","value","result","char","charCode","charCodeAt","safe","includes","encodeURIComponent","getActiveRoute","state","route","index","routes","length","Error","cachedNormalizedConfigs","WeakMap","getNormalizedConfigs","options","screens","cached","get","normalizedConfigs","createNormalizedConfigs","set","getTransformedState","configs","map","config","name","params","screen","nestedState","getPathFromState","String","transformedState","path","current","allParams","initialRoute","parts","focusedParams","currentOptions","focusedRoute","nestedRouteNames","hasNext","push","currentParams","key","undefined","optional","part","param","stringify","Object","assign","inPattern","nextRoute","nestedConfig","segment","query","sort","replace","startsWith","createConfigItem","parentParts","exact"],"sourceRoot":"../../src","sources":["getPathFromState.tsx"],"mappings":"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","ignoreList":[]}
@@ -12,7 +12,14 @@ const INVALID_PARSER_ERROR = 'Invalid parser. Expected a function or a Standard
12
12
  const PARAM_GROUP_PREFIX = 'param_';
13
13
  const NESTED_SCREEN_PARAM_NAMES = ['screen', 'params', 'initial', 'path', 'merge', 'pop'];
14
14
  const getExplicitParamNames = parse => {
15
- const names = Object.entries(parse ?? {}).filter(([, parser]) => parser != null).map(([name]) => name);
15
+ const names = [];
16
+ if (parse) {
17
+ for (const name in parse) {
18
+ if (parse[name] != null) {
19
+ names.push(name);
20
+ }
21
+ }
22
+ }
16
23
  return names.length ? new Set(names) : undefined;
17
24
  };
18
25
  const getStandardSchema = parser => {
@@ -63,7 +70,7 @@ export function getStateFromPath(path, options, previous) {
63
70
  // pick the one that best matches the current navigation state
64
71
  const resolveSharedConfig = config => {
65
72
  if (config.shared) {
66
- const candidates = configsByPattern[config.segments.join('/')];
73
+ const candidates = configsByPattern[config.pattern];
67
74
  if (candidates) {
68
75
  return selectSharedConfig(config, candidates, previous, initialRoutes);
69
76
  }
@@ -114,7 +121,7 @@ export function getStateFromPath(path, options, previous) {
114
121
  if (remaining === '/') {
115
122
  // We need to add special handling of empty path so navigation to empty path also works
116
123
  // When handling empty path, we should only look at the root level config
117
- const match = configs.find(config => config.segments.join('/') === '');
124
+ const match = configs.find(config => config.pattern === '');
118
125
  if (match) {
119
126
  const config = resolveSharedConfig(match);
120
127
  return createNestedStateObject(path, config.routeNames.map(name => ({
@@ -172,7 +179,7 @@ function prepareConfigResources(options) {
172
179
  const configsByPattern = {};
173
180
  for (const c of configs) {
174
181
  (configsByScreen[c.screen] ??= []).push(c);
175
- (configsByPattern[c.segments.join('/')] ??= []).push(c);
182
+ (configsByPattern[c.pattern] ??= []).push(c);
176
183
  }
177
184
  return {
178
185
  initialRoutes,
@@ -193,10 +200,17 @@ function getInitialRoutes(options) {
193
200
  }
194
201
  function getSortedNormalizedConfigs(initialRoutes, screens = {}) {
195
202
  // Create a normalized configs array which will be easier to use
196
- return [].concat(...Object.keys(screens).map(key => createNormalizedConfigs(key, screens, initialRoutes, [], [], []))).map((config, order) => ({
197
- ...config,
198
- order
199
- })).sort((a, b) => {
203
+ const configs = [];
204
+ for (const key in screens) {
205
+ configs.push(...createNormalizedConfigs(key, screens, initialRoutes, [], [], []));
206
+ }
207
+ for (let order = 0; order < configs.length; order++) {
208
+ const config = configs[order];
209
+ if (config) {
210
+ config.order = order;
211
+ }
212
+ }
213
+ return configs.sort((a, b) => {
200
214
  // Sort config from most specific to least specific:
201
215
  // - more segments
202
216
  // - static segments
@@ -278,23 +292,23 @@ function getSortedNormalizedConfigs(initialRoutes, screens = {}) {
278
292
  }
279
293
  function checkForDuplicatedConfigs(configs) {
280
294
  // Check for duplicate patterns in the config
281
- configs.reduce((acc, config) => {
282
- const pattern = config.segments.join('/');
283
- if (acc[pattern]) {
284
- const a = acc[pattern].routeNames;
295
+ const patterns = {};
296
+ for (const config of configs) {
297
+ const pattern = config.pattern;
298
+ const existing = patterns[pattern];
299
+ if (existing) {
300
+ const a = existing.routeNames;
285
301
  const b = config.routeNames;
286
302
 
287
303
  // It's not a problem if the path string omitted from a inner most screen
288
304
  // For example, it's ok if a path resolves to `A > B > C` or `A > B`
289
305
  const intersects = a.length > b.length ? b.every((it, i) => a[i] === it) : a.every((it, i) => b[i] === it);
290
- if (!intersects && (!acc[pattern].shared || !config.shared)) {
306
+ if (!intersects && (!existing.shared || !config.shared)) {
291
307
  throw new Error(`Found conflicting screens with the same pattern. The pattern '${pattern}' resolves to both '${a.join(' > ')}' and '${b.join(' > ')}'. Patterns must be unique and cannot resolve to more than one screen unless shared: true is specified.`);
292
308
  }
293
309
  }
294
- return Object.assign(acc, {
295
- [pattern]: config
296
- });
297
- }, {});
310
+ patterns[pattern] = config;
311
+ }
298
312
  }
299
313
  const matchAgainstConfig = (remaining, config, configsByScreen) => {
300
314
  if (!config.regex) {
@@ -311,16 +325,19 @@ const matchAgainstConfig = (remaining, config, configsByScreen) => {
311
325
  // at different levels or branches in config
312
326
  const routeConfig = configsByScreen[routeName]?.find(c => index === c.routeNames.length - 1 && arrayStartsWith(config.routeNames, c.routeNames) && arrayStartsWith(config.segments, c.segments));
313
327
  let params;
328
+ let hasParams = false;
314
329
  if (routeConfig && match.groups) {
315
- const paramEntries = [];
316
- for (const [key, value] of Object.entries(match.groups)) {
330
+ params = {};
331
+ for (const key in match.groups) {
332
+ const value = match.groups[key];
317
333
  const index = Number(key.replace(PARAM_GROUP_PREFIX, ''));
318
334
  const param = routeConfig.params.find(it => it.index === index);
319
- if (param?.screen !== routeName || !param.name) {
335
+ if (!param || param.screen !== routeName) {
320
336
  continue;
321
337
  }
322
338
  if (value == null) {
323
- paramEntries.push([param.name, undefined]);
339
+ params[param.name] = undefined;
340
+ hasParams = true;
324
341
  continue;
325
342
  }
326
343
  let decoded;
@@ -331,7 +348,8 @@ const matchAgainstConfig = (remaining, config, configsByScreen) => {
331
348
  }
332
349
  const parser = routeConfig.parse?.[param.name];
333
350
  if (!parser) {
334
- paramEntries.push([param.name, decoded]);
351
+ params[param.name] = decoded;
352
+ hasParams = true;
335
353
  continue;
336
354
  }
337
355
  const schema = getStandardSchema(parser);
@@ -341,11 +359,13 @@ const matchAgainstConfig = (remaining, config, configsByScreen) => {
341
359
  validationFailed = true;
342
360
  break;
343
361
  }
344
- paramEntries.push([param.name, result.value]);
362
+ params[param.name] = result.value;
363
+ hasParams = true;
345
364
  continue;
346
365
  }
347
366
  if (typeof parser === 'function') {
348
- paramEntries.push([param.name, parser(decoded)]);
367
+ params[param.name] = parser(decoded);
368
+ hasParams = true;
349
369
  continue;
350
370
  }
351
371
  throw new Error(INVALID_PARSER_ERROR);
@@ -354,11 +374,8 @@ const matchAgainstConfig = (remaining, config, configsByScreen) => {
354
374
  // A failed param validation invalidates the whole nested route chain for this config.
355
375
  break;
356
376
  }
357
- if (paramEntries.length) {
358
- params = Object.fromEntries(paramEntries);
359
- }
360
377
  }
361
- if (params && Object.keys(params).length) {
378
+ if (params && hasParams) {
362
379
  matchedRoutes.push({
363
380
  name: routeName,
364
381
  params
@@ -420,7 +437,7 @@ const createNormalizedConfigs = (screen, routeConfig, initials, parts, parentScr
420
437
  if (typeof config !== 'string' && typeof config.path !== 'string' && config.alias?.length) {
421
438
  throw new Error(`Screen '${screen}' doesn't specify a 'path'. A 'path' needs to be specified in order to use 'alias'.`);
422
439
  }
423
- if (hasNestedScreens) {
440
+ if (nestedScreens) {
424
441
  // property `initialRouteName` without `screens` has no purpose
425
442
  if ('initialRouteName' in config && typeof config.initialRouteName === 'string') {
426
443
  initials.push({
@@ -428,33 +445,46 @@ const createNormalizedConfigs = (screen, routeConfig, initials, parts, parentScr
428
445
  parentScreens
429
446
  });
430
447
  }
431
- Object.keys(nestedScreens).forEach(nestedConfig => {
448
+ for (const nestedConfig in nestedScreens) {
432
449
  const result = createNormalizedConfigs(nestedConfig, nestedScreens, initials, currentParts, [...parentScreens], routeNames);
433
450
  configs.push(...result);
434
- });
451
+ }
435
452
  }
436
453
  }
437
454
  routeNames.pop();
438
455
  return configs;
439
456
  };
440
457
  const createConfigItem = (screen, routeNames, parts, parse, hasNestedScreens = false, shared = false) => {
441
- const regex = parts.length ? new RegExp(`^(${parts.map((it, i) => {
442
- if (it.param) {
443
- const reg = it.regex || '[^/]+';
444
- return `(((?<${PARAM_GROUP_PREFIX}${i}>${reg})\\/)${it.optional ? '?' : ''})`;
445
- }
446
- return `${it.segment === '*' ? '.*' : escape(it.segment)}\\/`;
447
- }).join('')})$`) : undefined;
448
- const segments = parts.map(it => it.segment);
449
- const params = parts.map((it, i) => it.param ? {
450
- index: i,
451
- screen: it.screen,
452
- name: it.param
453
- } : null).filter(it => it != null);
458
+ let regex;
459
+ const segments = [];
460
+ const params = [];
461
+ if (parts.length) {
462
+ let regexString = '^(';
463
+ let index = 0;
464
+ for (const part of parts) {
465
+ segments.push(part.segment);
466
+ if (part.param) {
467
+ const reg = part.regex || '[^/]+';
468
+ regexString += `(((?<${PARAM_GROUP_PREFIX}${index}>${reg})\\/)${part.optional ? '?' : ''})`;
469
+ params.push({
470
+ index,
471
+ screen: part.screen,
472
+ name: part.param
473
+ });
474
+ } else {
475
+ regexString += `${part.segment === '*' ? '.*' : escape(part.segment)}\\/`;
476
+ }
477
+ index++;
478
+ }
479
+ regexString += ')$';
480
+ regex = new RegExp(regexString);
481
+ }
482
+ const pattern = segments.join('/');
454
483
  return {
455
484
  screen,
456
485
  order: 0,
457
486
  regex,
487
+ pattern,
458
488
  segments,
459
489
  params,
460
490
  routeNames,
@@ -619,7 +649,7 @@ const createNestedStateObject = (path, routes, initialRoutes, routeConfig) => {
619
649
  return undefined;
620
650
  }
621
651
  focusedRoute.path = path.replace(/\/$/, '');
622
- const pathParamNames = new Set(routeConfig?.params.filter(param => param.screen === routeConfig.screen && typeof param.name === 'string').map(param => param.name));
652
+ const pathParamNames = new Set(routeConfig?.params.filter(param => param.screen === routeConfig.screen).map(param => param.name));
623
653
  const queryParams = parseQueryParams(path, routeConfig?.parse, pathParamNames, routeConfig?.explicitParamNames, routeConfig?.hasNestedScreens, focusedRoute.params);
624
654
  if (!queryParams.valid) {
625
655
  return undefined;
@@ -642,7 +672,8 @@ const parseQueryParams = (path, parseConfig, pathParamNames = new Set(), explici
642
672
  delete params[name];
643
673
  }
644
674
  if (parseConfig) {
645
- for (const [name, parser] of Object.entries(parseConfig)) {
675
+ for (const name in parseConfig) {
676
+ const parser = parseConfig[name];
646
677
  if (!parser || pathParamNames.has(name)) {
647
678
  continue;
648
679
  }