one 1.2.19 → 1.2.21
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/cjs/createHandleRequest.cjs +10 -6
- package/dist/cjs/createHandleRequest.js +10 -6
- package/dist/cjs/createHandleRequest.js.map +1 -1
- package/dist/cjs/createHandleRequest.native.js +11 -7
- package/dist/cjs/createHandleRequest.native.js.map +1 -1
- package/dist/cjs/fork/NavigationContainer.cjs +1 -1
- package/dist/cjs/fork/NavigationContainer.js +4 -1
- package/dist/cjs/fork/NavigationContainer.js.map +1 -1
- package/dist/cjs/fork/NavigationContainer.native.js +1 -1
- package/dist/cjs/fork/NavigationContainer.native.js.map +1 -1
- package/dist/cjs/fork/createMemoryHistory.cjs +2 -2
- package/dist/cjs/fork/createMemoryHistory.js +2 -2
- package/dist/cjs/fork/createMemoryHistory.js.map +1 -1
- package/dist/cjs/fork/createMemoryHistory.native.js +2 -2
- package/dist/cjs/fork/createMemoryHistory.native.js.map +1 -1
- package/dist/cjs/fork/extractPathFromURL.cjs +1 -1
- package/dist/cjs/fork/extractPathFromURL.js +1 -1
- package/dist/cjs/fork/extractPathFromURL.js.map +1 -1
- package/dist/cjs/fork/extractPathFromURL.native.js +1 -1
- package/dist/cjs/fork/extractPathFromURL.native.js.map +1 -1
- package/dist/cjs/fork/getPathFromState-mods.cjs +1 -1
- package/dist/cjs/fork/getPathFromState-mods.js +1 -1
- package/dist/cjs/fork/getPathFromState-mods.js.map +1 -1
- package/dist/cjs/fork/getPathFromState-mods.native.js +1 -1
- package/dist/cjs/fork/getPathFromState-mods.native.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath-mods.cjs +20 -19
- package/dist/cjs/fork/getStateFromPath-mods.js +18 -15
- package/dist/cjs/fork/getStateFromPath-mods.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath-mods.native.js +19 -18
- package/dist/cjs/fork/getStateFromPath-mods.native.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath.cjs +1 -1
- package/dist/cjs/fork/getStateFromPath.js +1 -1
- package/dist/cjs/fork/getStateFromPath.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath.native.js +1 -1
- package/dist/cjs/fork/getStateFromPath.native.js.map +1 -1
- package/dist/cjs/fork/useLinking.cjs +26 -19
- package/dist/cjs/fork/useLinking.js +31 -19
- package/dist/cjs/fork/useLinking.js.map +2 -2
- package/dist/cjs/fork/useLinking.native.js +2 -1
- package/dist/cjs/fork/useLinking.native.js.map +1 -1
- package/dist/cjs/getReactNavigationConfig.cjs +2 -4
- package/dist/cjs/getReactNavigationConfig.js +2 -5
- package/dist/cjs/getReactNavigationConfig.js.map +1 -1
- package/dist/cjs/getReactNavigationConfig.native.js +2 -4
- package/dist/cjs/getReactNavigationConfig.native.js.map +1 -1
- package/dist/cjs/hooks.cjs +1 -1
- package/dist/cjs/hooks.js +1 -1
- package/dist/cjs/hooks.js.map +1 -1
- package/dist/cjs/hooks.native.js +4 -1
- package/dist/cjs/hooks.native.js.map +1 -1
- package/dist/cjs/router/getRoutes.cjs +4 -5
- package/dist/cjs/router/getRoutes.js +2 -2
- package/dist/cjs/router/getRoutes.js.map +1 -1
- package/dist/cjs/router/getRoutes.native.js +4 -5
- package/dist/cjs/router/getRoutes.native.js.map +1 -1
- package/dist/cjs/router/matchers.cjs +9 -1
- package/dist/cjs/router/matchers.js +4 -1
- package/dist/cjs/router/matchers.js.map +1 -1
- package/dist/cjs/router/matchers.native.js +10 -2
- package/dist/cjs/router/matchers.native.js.map +1 -1
- package/dist/cjs/router/matchers.test.cjs +7 -1
- package/dist/cjs/router/matchers.test.js +1 -1
- package/dist/cjs/router/matchers.test.js.map +1 -1
- package/dist/cjs/router/matchers.test.native.js +7 -1
- package/dist/cjs/router/matchers.test.native.js.map +1 -1
- package/dist/cjs/router/router.cjs +35 -5
- package/dist/cjs/router/router.js +26 -5
- package/dist/cjs/router/router.js.map +1 -1
- package/dist/cjs/router/router.native.js +32 -5
- package/dist/cjs/router/router.native.js.map +1 -1
- package/dist/cjs/router/utils/getNavigateAction.cjs +2 -2
- package/dist/cjs/router/utils/getNavigateAction.js +2 -2
- package/dist/cjs/router/utils/getNavigateAction.js.map +1 -1
- package/dist/cjs/router/utils/getNavigateAction.native.js +2 -2
- package/dist/cjs/router/utils/getNavigateAction.native.js.map +1 -1
- package/dist/cjs/server/oneServe.cjs +4 -3
- package/dist/cjs/server/oneServe.js +12 -4
- package/dist/cjs/server/oneServe.js.map +1 -1
- package/dist/cjs/server/oneServe.native.js +5 -4
- package/dist/cjs/server/oneServe.native.js.map +1 -1
- package/dist/cjs/setup.native.js.map +1 -6
- package/dist/cjs/vite/one.cjs +9 -12
- package/dist/cjs/vite/one.js +7 -7
- package/dist/cjs/vite/one.js.map +1 -1
- package/dist/cjs/vite/one.native.js +10 -15
- package/dist/cjs/vite/one.native.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +12 -7
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +11 -7
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +12 -7
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/esm/createHandleRequest.js +10 -6
- package/dist/esm/createHandleRequest.js.map +1 -1
- package/dist/esm/createHandleRequest.mjs +10 -6
- package/dist/esm/createHandleRequest.mjs.map +1 -1
- package/dist/esm/createHandleRequest.native.js +10 -6
- package/dist/esm/createHandleRequest.native.js.map +1 -1
- package/dist/esm/fork/NavigationContainer.js +4 -1
- package/dist/esm/fork/NavigationContainer.js.map +1 -1
- package/dist/esm/fork/NavigationContainer.mjs +1 -1
- package/dist/esm/fork/NavigationContainer.mjs.map +1 -1
- package/dist/esm/fork/NavigationContainer.native.js +1 -1
- package/dist/esm/fork/NavigationContainer.native.js.map +1 -1
- package/dist/esm/fork/createMemoryHistory.js +2 -2
- package/dist/esm/fork/createMemoryHistory.js.map +1 -1
- package/dist/esm/fork/createMemoryHistory.mjs +2 -2
- package/dist/esm/fork/createMemoryHistory.mjs.map +1 -1
- package/dist/esm/fork/createMemoryHistory.native.js +2 -2
- package/dist/esm/fork/createMemoryHistory.native.js.map +1 -1
- package/dist/esm/fork/extractPathFromURL.js +1 -1
- package/dist/esm/fork/extractPathFromURL.js.map +1 -1
- package/dist/esm/fork/extractPathFromURL.mjs +1 -1
- package/dist/esm/fork/extractPathFromURL.mjs.map +1 -1
- package/dist/esm/fork/extractPathFromURL.native.js +1 -1
- package/dist/esm/fork/extractPathFromURL.native.js.map +1 -1
- package/dist/esm/fork/getPathFromState-mods.js +2 -2
- package/dist/esm/fork/getPathFromState-mods.js.map +1 -1
- package/dist/esm/fork/getPathFromState-mods.mjs +2 -2
- package/dist/esm/fork/getPathFromState-mods.mjs.map +1 -1
- package/dist/esm/fork/getPathFromState-mods.native.js +2 -2
- package/dist/esm/fork/getPathFromState-mods.native.js.map +1 -1
- package/dist/esm/fork/getStateFromPath-mods.js +18 -15
- package/dist/esm/fork/getStateFromPath-mods.js.map +1 -1
- package/dist/esm/fork/getStateFromPath-mods.mjs +20 -19
- package/dist/esm/fork/getStateFromPath-mods.mjs.map +1 -1
- package/dist/esm/fork/getStateFromPath-mods.native.js +19 -18
- package/dist/esm/fork/getStateFromPath-mods.native.js.map +1 -1
- package/dist/esm/fork/getStateFromPath.js +1 -1
- package/dist/esm/fork/getStateFromPath.js.map +1 -1
- package/dist/esm/fork/getStateFromPath.mjs +1 -1
- package/dist/esm/fork/getStateFromPath.mjs.map +1 -1
- package/dist/esm/fork/getStateFromPath.native.js +1 -1
- package/dist/esm/fork/useLinking.js +31 -18
- package/dist/esm/fork/useLinking.js.map +1 -1
- package/dist/esm/fork/useLinking.mjs +26 -19
- package/dist/esm/fork/useLinking.mjs.map +1 -1
- package/dist/esm/fork/useLinking.native.js +2 -1
- package/dist/esm/fork/useLinking.native.js.map +1 -1
- package/dist/esm/getReactNavigationConfig.js +3 -6
- package/dist/esm/getReactNavigationConfig.js.map +1 -1
- package/dist/esm/getReactNavigationConfig.mjs +3 -5
- package/dist/esm/getReactNavigationConfig.mjs.map +1 -1
- package/dist/esm/getReactNavigationConfig.native.js +3 -5
- package/dist/esm/getReactNavigationConfig.native.js.map +1 -1
- package/dist/esm/hooks.js +1 -1
- package/dist/esm/hooks.js.map +1 -1
- package/dist/esm/hooks.mjs +1 -1
- package/dist/esm/hooks.mjs.map +1 -1
- package/dist/esm/hooks.native.js +4 -1
- package/dist/esm/hooks.native.js.map +1 -1
- package/dist/esm/router/getRoutes.js +2 -3
- package/dist/esm/router/getRoutes.js.map +1 -1
- package/dist/esm/router/getRoutes.mjs +5 -6
- package/dist/esm/router/getRoutes.mjs.map +1 -1
- package/dist/esm/router/getRoutes.native.js +5 -6
- package/dist/esm/router/getRoutes.native.js.map +1 -1
- package/dist/esm/router/matchers.js +4 -1
- package/dist/esm/router/matchers.js.map +1 -1
- package/dist/esm/router/matchers.mjs +9 -1
- package/dist/esm/router/matchers.mjs.map +1 -1
- package/dist/esm/router/matchers.native.js +10 -2
- package/dist/esm/router/matchers.native.js.map +1 -1
- package/dist/esm/router/matchers.test.js +1 -1
- package/dist/esm/router/matchers.test.js.map +1 -1
- package/dist/esm/router/matchers.test.mjs +7 -1
- package/dist/esm/router/matchers.test.mjs.map +1 -1
- package/dist/esm/router/matchers.test.native.js +7 -1
- package/dist/esm/router/matchers.test.native.js.map +1 -1
- package/dist/esm/router/router.js +26 -5
- package/dist/esm/router/router.js.map +1 -1
- package/dist/esm/router/router.mjs +35 -5
- package/dist/esm/router/router.mjs.map +1 -1
- package/dist/esm/router/router.native.js +32 -5
- package/dist/esm/router/router.native.js.map +1 -1
- package/dist/esm/router/utils/getNavigateAction.js +2 -2
- package/dist/esm/router/utils/getNavigateAction.js.map +1 -1
- package/dist/esm/router/utils/getNavigateAction.mjs +2 -2
- package/dist/esm/router/utils/getNavigateAction.mjs.map +1 -1
- package/dist/esm/router/utils/getNavigateAction.native.js +2 -2
- package/dist/esm/router/utils/getNavigateAction.native.js.map +1 -1
- package/dist/esm/server/oneServe.js +12 -4
- package/dist/esm/server/oneServe.js.map +1 -1
- package/dist/esm/server/oneServe.mjs +4 -3
- package/dist/esm/server/oneServe.mjs.map +1 -1
- package/dist/esm/server/oneServe.native.js +4 -3
- package/dist/esm/server/oneServe.native.js.map +1 -1
- package/dist/esm/vite/one.js +9 -9
- package/dist/esm/vite/one.js.map +1 -1
- package/dist/esm/vite/one.mjs +9 -12
- package/dist/esm/vite/one.mjs.map +1 -1
- package/dist/esm/vite/one.native.js +10 -15
- package/dist/esm/vite/one.native.js.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +11 -7
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +12 -7
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +12 -7
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/package.json +10 -10
- package/src/createHandleRequest.ts +34 -0
- package/src/fork/NavigationContainer.tsx +8 -0
- package/src/fork/createMemoryHistory.tsx +8 -0
- package/src/fork/extractPathFromURL.ts +6 -0
- package/src/fork/getPathFromState-mods.ts +2 -7
- package/src/fork/getStateFromPath-mods.ts +43 -17
- package/src/fork/getStateFromPath.ts +1 -1
- package/src/fork/useLinking.native.ts +1 -1
- package/src/fork/useLinking.ts +80 -5
- package/src/getReactNavigationConfig.ts +7 -9
- package/src/hooks.tsx +21 -19
- package/src/router/getRoutes.ts +3 -6
- package/src/router/matchers.test.ts +2 -2
- package/src/router/matchers.ts +22 -6
- package/src/router/router.ts +45 -0
- package/src/router/utils/getNavigateAction.ts +3 -2
- package/src/server/oneServe.ts +13 -0
- package/src/vite/one.ts +9 -13
- package/src/vite/plugins/fileSystemRouterPlugin.tsx +17 -5
- package/types/createHandleRequest.d.ts.map +1 -1
- package/types/fork/NavigationContainer.d.ts.map +1 -1
- package/types/fork/createMemoryHistory.d.ts.map +1 -1
- package/types/fork/extractPathFromURL.d.ts.map +1 -1
- package/types/fork/getStateFromPath-mods.d.ts +7 -10
- package/types/fork/getStateFromPath-mods.d.ts.map +1 -1
- package/types/fork/useLinking.d.ts.map +1 -1
- package/types/getReactNavigationConfig.d.ts.map +1 -1
- package/types/hooks.d.ts.map +1 -1
- package/types/router/getRoutes.d.ts.map +1 -1
- package/types/router/matchers.d.ts +10 -3
- package/types/router/matchers.d.ts.map +1 -1
- package/types/router/router.d.ts.map +1 -1
- package/types/router/utils/getNavigateAction.d.ts.map +1 -1
- package/types/server/oneServe.d.ts.map +1 -1
- package/types/vite/one.d.ts.map +1 -1
- package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
package/src/fork/useLinking.ts
CHANGED
|
@@ -22,6 +22,7 @@ import isEqual from 'fast-deep-equal'
|
|
|
22
22
|
import * as React from 'react'
|
|
23
23
|
// @modified - start
|
|
24
24
|
// import { ServerContext } from '@react-navigation/web';
|
|
25
|
+
import { rootState as routerRootState } from '../router/router'
|
|
25
26
|
import { ServerLocationContext } from '../router/serverLocationContext'
|
|
26
27
|
import { createMemoryHistory } from './createMemoryHistory'
|
|
27
28
|
import { appendBaseUrl } from './getPathFromState-mods'
|
|
@@ -158,7 +159,7 @@ export function useLinking(
|
|
|
158
159
|
const rootState = navigation?.getRootState()
|
|
159
160
|
// Make sure that the routes in the state exist in the root navigator
|
|
160
161
|
// Otherwise there's an error in the linking configuration
|
|
161
|
-
return state?.routes.some((r) => !rootState?.routeNames
|
|
162
|
+
return state?.routes.some((r) => !rootState?.routeNames?.includes(r.name))
|
|
162
163
|
},
|
|
163
164
|
[ref]
|
|
164
165
|
)
|
|
@@ -180,8 +181,15 @@ export function useLinking(
|
|
|
180
181
|
|
|
181
182
|
const path = location ? location.pathname + location.search : undefined
|
|
182
183
|
|
|
184
|
+
if (process.env.ONE_DEBUG_ROUTER) {
|
|
185
|
+
console.info(`[one] 🔍 getInitialState path=${path}`)
|
|
186
|
+
}
|
|
187
|
+
|
|
183
188
|
if (path) {
|
|
184
189
|
value = getStateFromPathRef.current(path, configRef.current)
|
|
190
|
+
if (process.env.ONE_DEBUG_ROUTER) {
|
|
191
|
+
console.info(`[one] 🔍 getInitialState result:`, JSON.stringify(value, null, 2))
|
|
192
|
+
}
|
|
185
193
|
}
|
|
186
194
|
|
|
187
195
|
// If the link were handled, it gets cleared in NavigationContainer
|
|
@@ -223,6 +231,12 @@ export function useLinking(
|
|
|
223
231
|
|
|
224
232
|
const previousIndex = previousIndexRef.current ?? 0
|
|
225
233
|
|
|
234
|
+
if (process.env.ONE_DEBUG_ROUTER) {
|
|
235
|
+
console.info(
|
|
236
|
+
`[one] 📜 history.listen path=${path} index=${index} prevIndex=${previousIndex}`
|
|
237
|
+
)
|
|
238
|
+
}
|
|
239
|
+
|
|
226
240
|
previousIndexRef.current = index
|
|
227
241
|
pendingPopStatePathRef.current = path
|
|
228
242
|
|
|
@@ -232,12 +246,19 @@ export function useLinking(
|
|
|
232
246
|
const record = history.get(index)
|
|
233
247
|
|
|
234
248
|
if (record?.path === path && record?.state) {
|
|
249
|
+
if (process.env.ONE_DEBUG_ROUTER) {
|
|
250
|
+
console.info(`[one] 📜 history record found, resetRoot to:`, record.state)
|
|
251
|
+
}
|
|
235
252
|
navigation.resetRoot(record.state)
|
|
236
253
|
return
|
|
237
254
|
}
|
|
238
255
|
|
|
239
256
|
const state = getStateFromPathRef.current(path, configRef.current)
|
|
240
257
|
|
|
258
|
+
if (process.env.ONE_DEBUG_ROUTER) {
|
|
259
|
+
console.info(`[one] 📜 getStateFromPath result:`, state)
|
|
260
|
+
}
|
|
261
|
+
|
|
241
262
|
// We should only dispatch an action when going forward
|
|
242
263
|
// Otherwise the action will likely add items to history, which would mess things up
|
|
243
264
|
if (state) {
|
|
@@ -246,6 +267,9 @@ export function useLinking(
|
|
|
246
267
|
// Make sure that the routes in the state exist in the root navigator
|
|
247
268
|
// Otherwise there's an error in the linking configuration
|
|
248
269
|
if (validateRoutesNotExistInRootState(state)) {
|
|
270
|
+
if (process.env.ONE_DEBUG_ROUTER) {
|
|
271
|
+
console.info(`[one] 📜 routes not in root state, skipping`)
|
|
272
|
+
}
|
|
249
273
|
return
|
|
250
274
|
}
|
|
251
275
|
|
|
@@ -256,6 +280,10 @@ export function useLinking(
|
|
|
256
280
|
) {
|
|
257
281
|
const action = getActionFromStateRef.current(state, configRef.current)
|
|
258
282
|
|
|
283
|
+
if (process.env.ONE_DEBUG_ROUTER) {
|
|
284
|
+
console.info(`[one] 📜 dispatching action:`, action)
|
|
285
|
+
}
|
|
286
|
+
|
|
259
287
|
if (action !== undefined) {
|
|
260
288
|
try {
|
|
261
289
|
navigation.dispatch(action)
|
|
@@ -269,13 +297,22 @@ export function useLinking(
|
|
|
269
297
|
)
|
|
270
298
|
}
|
|
271
299
|
} else {
|
|
300
|
+
if (process.env.ONE_DEBUG_ROUTER) {
|
|
301
|
+
console.info(`[one] 📜 no action, resetRoot`)
|
|
302
|
+
}
|
|
272
303
|
navigation.resetRoot(state)
|
|
273
304
|
}
|
|
274
305
|
} else {
|
|
306
|
+
if (process.env.ONE_DEBUG_ROUTER) {
|
|
307
|
+
console.info(`[one] 📜 going back, resetRoot`)
|
|
308
|
+
}
|
|
275
309
|
navigation.resetRoot(state)
|
|
276
310
|
}
|
|
277
311
|
} else {
|
|
278
312
|
// if current path didn't return any state, we should revert to initial state
|
|
313
|
+
if (process.env.ONE_DEBUG_ROUTER) {
|
|
314
|
+
console.info(`[one] 📜 no state for path, resetRoot to undefined`)
|
|
315
|
+
}
|
|
279
316
|
navigation.resetRoot(state)
|
|
280
317
|
}
|
|
281
318
|
})
|
|
@@ -292,6 +329,11 @@ export function useLinking(
|
|
|
292
329
|
): string => {
|
|
293
330
|
let path
|
|
294
331
|
|
|
332
|
+
if (process.env.ONE_DEBUG_ROUTER) {
|
|
333
|
+
console.info(`[one] 📜 getPathForRoute - route:`, route)
|
|
334
|
+
console.info(`[one] 📜 getPathForRoute - state:`, JSON.stringify(state, null, 2))
|
|
335
|
+
}
|
|
336
|
+
|
|
295
337
|
// If the `route` object contains a `path`, use that path as long as `route.name` and `params` still match
|
|
296
338
|
// This makes sure that we preserve the original URL for wildcard routes
|
|
297
339
|
if (route?.path) {
|
|
@@ -315,6 +357,9 @@ export function useLinking(
|
|
|
315
357
|
|
|
316
358
|
if (path == null) {
|
|
317
359
|
path = getPathFromStateRef.current(state, configRef.current)
|
|
360
|
+
if (process.env.ONE_DEBUG_ROUTER) {
|
|
361
|
+
console.info(`[one] 📜 getPathForRoute - computed from state:`, path)
|
|
362
|
+
}
|
|
318
363
|
}
|
|
319
364
|
|
|
320
365
|
// @modified - start: One will handle hashes itself, so these lines are not needed
|
|
@@ -340,14 +385,41 @@ export function useLinking(
|
|
|
340
385
|
if (ref.current) {
|
|
341
386
|
// We need to record the current metadata on the first render if they aren't set
|
|
342
387
|
// This will allow the initial state to be in the history entry
|
|
343
|
-
|
|
388
|
+
// @modified - start: Use routerRootState instead of getRootState() to avoid stale state
|
|
389
|
+
// getRootState() can return incomplete state during initial render before children mount
|
|
390
|
+
// routerRootState is updated via navigation listener callbacks which only fire with complete state
|
|
391
|
+
const refState = ref.current.getRootState()
|
|
392
|
+
const state = (routerRootState || refState) as NavigationState | undefined
|
|
393
|
+
|
|
394
|
+
if (process.env.ONE_DEBUG_ROUTER) {
|
|
395
|
+
console.info(
|
|
396
|
+
`[one] 📜 useEffect initial state check - refState:`,
|
|
397
|
+
JSON.stringify(refState, null, 2)
|
|
398
|
+
)
|
|
399
|
+
console.info(
|
|
400
|
+
`[one] 📜 useEffect initial state check - routerRootState:`,
|
|
401
|
+
JSON.stringify(routerRootState, null, 2)
|
|
402
|
+
)
|
|
403
|
+
}
|
|
404
|
+
// @modified - end
|
|
344
405
|
|
|
345
406
|
if (state) {
|
|
346
407
|
const route = findFocusedRoute(state)
|
|
408
|
+
|
|
409
|
+
if (process.env.ONE_DEBUG_ROUTER) {
|
|
410
|
+
console.info(`[one] 📜 useEffect focused route:`, route)
|
|
411
|
+
}
|
|
412
|
+
|
|
347
413
|
const path = getPathForRoute(route, state)
|
|
348
414
|
|
|
415
|
+
if (process.env.ONE_DEBUG_ROUTER) {
|
|
416
|
+
console.info(`[one] 📜 initial history.replace - state:`, JSON.stringify(state, null, 2))
|
|
417
|
+
console.info(`[one] 📜 initial history.replace - focusedRoute:`, route)
|
|
418
|
+
console.info(`[one] 📜 initial history.replace - computed path:`, path)
|
|
419
|
+
}
|
|
420
|
+
|
|
349
421
|
if (previousStateRef.current === undefined) {
|
|
350
|
-
previousStateRef.current =
|
|
422
|
+
previousStateRef.current = refState
|
|
351
423
|
}
|
|
352
424
|
|
|
353
425
|
history.replace({ path, state })
|
|
@@ -362,7 +434,10 @@ export function useLinking(
|
|
|
362
434
|
}
|
|
363
435
|
|
|
364
436
|
const previousState = previousStateRef.current
|
|
365
|
-
|
|
437
|
+
// @modified - start: Use routerRootState for path calculation, refState for comparison
|
|
438
|
+
const refState = navigation.getRootState()
|
|
439
|
+
const state = (routerRootState || refState) as NavigationState | undefined
|
|
440
|
+
// @modified - end
|
|
366
441
|
|
|
367
442
|
// root state may not available, for example when root navigators switch inside the container
|
|
368
443
|
if (!state) {
|
|
@@ -373,7 +448,7 @@ export function useLinking(
|
|
|
373
448
|
const route = findFocusedRoute(state)
|
|
374
449
|
const path = getPathForRoute(route, state)
|
|
375
450
|
|
|
376
|
-
previousStateRef.current =
|
|
451
|
+
previousStateRef.current = refState
|
|
377
452
|
pendingPopStatePathRef.current = undefined
|
|
378
453
|
|
|
379
454
|
// To detect the kind of state change, we need to:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { matchDynamicName } from './router/matchers'
|
|
2
2
|
import type { RouteNode } from './router/Route'
|
|
3
3
|
|
|
4
4
|
export type Screen =
|
|
@@ -22,14 +22,12 @@ function convertDynamicRouteToReactNavigation(segment: string): string {
|
|
|
22
22
|
return '*not-found'
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
const
|
|
26
|
-
if (
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
if (typeof dynamicName === 'string') {
|
|
32
|
-
return `:${dynamicName}`
|
|
25
|
+
const dynamicMatch = matchDynamicName(segment)
|
|
26
|
+
if (dynamicMatch) {
|
|
27
|
+
if (dynamicMatch.deep) {
|
|
28
|
+
return '*' + dynamicMatch.name
|
|
29
|
+
}
|
|
30
|
+
return `:${dynamicMatch.name}`
|
|
33
31
|
}
|
|
34
32
|
|
|
35
33
|
return segment
|
package/src/hooks.tsx
CHANGED
|
@@ -133,24 +133,26 @@ export function useParams<TParams extends Object = SearchParams>(): Partial<TPar
|
|
|
133
133
|
const params = React.useContext(RouteParamsContext) ?? {}
|
|
134
134
|
|
|
135
135
|
return Object.fromEntries(
|
|
136
|
-
Object.entries(params)
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
136
|
+
Object.entries(params)
|
|
137
|
+
.filter(([_, value]) => value !== undefined)
|
|
138
|
+
.map(([key, value]) => {
|
|
139
|
+
if (Array.isArray(value)) {
|
|
140
|
+
return [
|
|
141
|
+
key,
|
|
142
|
+
value.map((v) => {
|
|
143
|
+
try {
|
|
144
|
+
return decodeURIComponent(v)
|
|
145
|
+
} catch {
|
|
146
|
+
return v
|
|
147
|
+
}
|
|
148
|
+
}),
|
|
149
|
+
]
|
|
150
|
+
}
|
|
151
|
+
try {
|
|
152
|
+
return [key, decodeURIComponent(value as string)]
|
|
153
|
+
} catch {
|
|
154
|
+
return [key, value]
|
|
155
|
+
}
|
|
156
|
+
})
|
|
155
157
|
) as TParams
|
|
156
158
|
}
|
package/src/router/getRoutes.ts
CHANGED
|
@@ -3,7 +3,6 @@ import { getPageExport } from '../utils/getPageExport'
|
|
|
3
3
|
import type { One } from '../vite/types'
|
|
4
4
|
import {
|
|
5
5
|
matchArrayGroupName,
|
|
6
|
-
matchDeepDynamicRouteName,
|
|
7
6
|
matchDynamicName,
|
|
8
7
|
matchGroupName,
|
|
9
8
|
removeSupportedExtensions,
|
|
@@ -479,11 +478,9 @@ export function generateDynamic(path: string): DynamicConvention[] | null {
|
|
|
479
478
|
}
|
|
480
479
|
}
|
|
481
480
|
|
|
482
|
-
const
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
if (!dynamicName) return null
|
|
486
|
-
return { name: dynamicName, deep: !!deepDynamicName }
|
|
481
|
+
const dynamicMatch = matchDynamicName(part)
|
|
482
|
+
if (!dynamicMatch) return null
|
|
483
|
+
return { name: dynamicMatch.name, deep: dynamicMatch.deep }
|
|
487
484
|
})
|
|
488
485
|
.filter((part): part is DynamicConvention => !!part)
|
|
489
486
|
|
|
@@ -46,8 +46,8 @@ describe(matchDynamicName, () => {
|
|
|
46
46
|
it(`matches`, () => {
|
|
47
47
|
expect(matchDynamicName('[[...foobar]]')).toEqual(undefined)
|
|
48
48
|
expect(matchDynamicName('[[foobar]]')).toEqual(undefined)
|
|
49
|
-
expect(matchDynamicName('[...foobar]')).toEqual(
|
|
50
|
-
expect(matchDynamicName('[foobar]')).toEqual('foobar')
|
|
49
|
+
expect(matchDynamicName('[...foobar]')).toEqual({ name: 'foobar', deep: true })
|
|
50
|
+
expect(matchDynamicName('[foobar]')).toEqual({ name: 'foobar', deep: false })
|
|
51
51
|
expect(matchDynamicName('foobar')).toEqual(undefined)
|
|
52
52
|
})
|
|
53
53
|
})
|
package/src/router/matchers.ts
CHANGED
|
@@ -1,11 +1,27 @@
|
|
|
1
|
-
/** Match `[page]` -> `page` */
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
/** Match `[page]` -> `page` or `[...page]` -> `page` with deep flag */
|
|
2
|
+
const dynamicNameRe = /^\[([^[\]]+?)\]$/
|
|
3
|
+
|
|
4
|
+
export interface DynamicNameMatch {
|
|
5
|
+
name: string
|
|
6
|
+
deep: boolean
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** Match `[page]` -> `{ name: 'page', deep: false }` or `[...page]` -> `{ name: 'page', deep: true }` */
|
|
10
|
+
export function matchDynamicName(name: string): DynamicNameMatch | undefined {
|
|
11
|
+
const paramName = name.match(dynamicNameRe)?.[1]
|
|
12
|
+
if (paramName == null) {
|
|
13
|
+
return undefined
|
|
14
|
+
} else if (paramName.startsWith('...')) {
|
|
15
|
+
return { name: paramName.slice(3), deep: true }
|
|
16
|
+
} else {
|
|
17
|
+
return { name: paramName, deep: false }
|
|
18
|
+
}
|
|
6
19
|
}
|
|
7
20
|
|
|
8
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* Match `[...page]` -> `page`
|
|
23
|
+
* @deprecated Use matchDynamicName instead which returns {name, deep}
|
|
24
|
+
*/
|
|
9
25
|
export function matchDeepDynamicRouteName(name: string): string | undefined {
|
|
10
26
|
return name.match(/^\[\.\.\.([^/]+?)\]$/)?.[1]
|
|
11
27
|
}
|
package/src/router/router.ts
CHANGED
|
@@ -65,6 +65,30 @@ export function initialize(
|
|
|
65
65
|
throw new Error('No routes found')
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
+
if (process.env.ONE_DEBUG_ROUTER && routeNode) {
|
|
69
|
+
const formatRouteTree = (node: RouteNode, indent = '', isLast = true): string => {
|
|
70
|
+
const prefix = indent + (isLast ? '└─ ' : '├─ ')
|
|
71
|
+
const childIndent = indent + (isLast ? ' ' : '│ ')
|
|
72
|
+
|
|
73
|
+
const dynamicBadge = node.dynamic ? ` [${node.dynamic.map((d) => d.name).join(', ')}]` : ''
|
|
74
|
+
const typeBadge = node.type !== 'layout' ? ` (${node.type})` : ''
|
|
75
|
+
const routeName = node.route || '/'
|
|
76
|
+
|
|
77
|
+
let line = `${prefix}${routeName}${dynamicBadge}${typeBadge}`
|
|
78
|
+
|
|
79
|
+
const visibleChildren = node.children.filter((child) => !child.internal)
|
|
80
|
+
for (let i = 0; i < visibleChildren.length; i++) {
|
|
81
|
+
const child = visibleChildren[i]
|
|
82
|
+
const childIsLast = i === visibleChildren.length - 1
|
|
83
|
+
line += '\n' + formatRouteTree(child, childIndent, childIsLast)
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return line
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
console.info(`[one] 📍 Route structure:\n${formatRouteTree(routeNode)}`)
|
|
90
|
+
}
|
|
91
|
+
|
|
68
92
|
navigationRef = ref
|
|
69
93
|
setupLinkingAndRouteInfo(initialLocation)
|
|
70
94
|
subscribeToNavigationChanges()
|
|
@@ -156,6 +180,9 @@ export function push(url: OneRouter.Href, options?: OneRouter.LinkToOptions) {
|
|
|
156
180
|
}
|
|
157
181
|
|
|
158
182
|
export function dismiss(count?: number) {
|
|
183
|
+
if (process.env.ONE_DEBUG_ROUTER) {
|
|
184
|
+
console.info(`[one] 🔙 dismiss${count ? ` (${count})` : ''}`)
|
|
185
|
+
}
|
|
159
186
|
navigationRef?.dispatch(StackActions.pop(count))
|
|
160
187
|
}
|
|
161
188
|
|
|
@@ -172,10 +199,16 @@ export function setParams(params: OneRouter.InpurRouteParamsGeneric = {}) {
|
|
|
172
199
|
}
|
|
173
200
|
|
|
174
201
|
export function dismissAll() {
|
|
202
|
+
if (process.env.ONE_DEBUG_ROUTER) {
|
|
203
|
+
console.info(`[one] 🔙 dismissAll`)
|
|
204
|
+
}
|
|
175
205
|
navigationRef?.dispatch(StackActions.popToTop())
|
|
176
206
|
}
|
|
177
207
|
|
|
178
208
|
export function goBack() {
|
|
209
|
+
if (process.env.ONE_DEBUG_ROUTER) {
|
|
210
|
+
console.info(`[one] 🔙 goBack`)
|
|
211
|
+
}
|
|
179
212
|
assertIsReady(navigationRef)
|
|
180
213
|
navigationRef?.current?.goBack()
|
|
181
214
|
}
|
|
@@ -217,6 +250,14 @@ export function updateState(state: OneRouter.ResultState, nextStateParam = state
|
|
|
217
250
|
const nextRouteInfo = getRouteInfo(state)
|
|
218
251
|
|
|
219
252
|
if (!deepEqual(routeInfo, nextRouteInfo)) {
|
|
253
|
+
if (process.env.ONE_DEBUG_ROUTER) {
|
|
254
|
+
const from = routeInfo?.pathname || '(initial)'
|
|
255
|
+
const to = nextRouteInfo.pathname
|
|
256
|
+
const params = Object.keys(nextRouteInfo.params || {}).length
|
|
257
|
+
? nextRouteInfo.params
|
|
258
|
+
: undefined
|
|
259
|
+
console.info(`[one] 🧭 ${from} → ${to}`, params ? { params } : '')
|
|
260
|
+
}
|
|
220
261
|
routeInfo = nextRouteInfo
|
|
221
262
|
}
|
|
222
263
|
}
|
|
@@ -361,6 +402,10 @@ export function preloadRoute(href: string) {
|
|
|
361
402
|
}
|
|
362
403
|
|
|
363
404
|
export async function linkTo(href: string, event?: string, options?: OneRouter.LinkToOptions) {
|
|
405
|
+
if (process.env.ONE_DEBUG_ROUTER) {
|
|
406
|
+
console.info(`[one] 🔗 ${event || 'NAVIGATE'} ${href}`)
|
|
407
|
+
}
|
|
408
|
+
|
|
364
409
|
if (href[0] === '#') {
|
|
365
410
|
// this is just linking to a section of the current page on web
|
|
366
411
|
return
|
|
@@ -39,14 +39,15 @@ export function getNavigateAction(
|
|
|
39
39
|
const childState = actionStateRoute.state
|
|
40
40
|
const nextNavigationState = stateRoute.state
|
|
41
41
|
|
|
42
|
-
const
|
|
42
|
+
const dynamicMatch = matchDynamicName(actionStateRoute.name)
|
|
43
43
|
|
|
44
44
|
const didActionAndCurrentStateDiverge =
|
|
45
45
|
actionStateRoute.name !== stateRoute.name ||
|
|
46
46
|
// !deepEqual(actionStateRoute.params, stateRoute.params) ||
|
|
47
47
|
!childState ||
|
|
48
48
|
!nextNavigationState ||
|
|
49
|
-
(
|
|
49
|
+
(dynamicMatch &&
|
|
50
|
+
actionStateRoute.params?.[dynamicMatch.name] !== stateRoute.params?.[dynamicMatch.name])
|
|
50
51
|
|
|
51
52
|
if (didActionAndCurrentStateDiverge) {
|
|
52
53
|
break
|
package/src/server/oneServe.ts
CHANGED
|
@@ -18,6 +18,8 @@ import { toAbsolute } from '../utils/toAbsolute'
|
|
|
18
18
|
import type { One } from '../vite/types'
|
|
19
19
|
import type { RouteInfoCompiled } from './createRoutesManifest'
|
|
20
20
|
|
|
21
|
+
const debugRouter = process.env.ONE_DEBUG_ROUTER
|
|
22
|
+
|
|
21
23
|
export async function oneServe(oneOptions: One.PluginOptions, buildInfo: One.BuildInfo, app: Hono) {
|
|
22
24
|
const { resolveAPIRoute, resolveLoaderRoute, resolvePageRoute } = await import(
|
|
23
25
|
'../createHandleRequest'
|
|
@@ -36,6 +38,9 @@ export async function oneServe(oneOptions: One.PluginOptions, buildInfo: One.Bui
|
|
|
36
38
|
const paramName = param.substring(1)
|
|
37
39
|
return context.req.param(paramName) || ''
|
|
38
40
|
})
|
|
41
|
+
if (debugRouter) {
|
|
42
|
+
console.info(`[one] ↪ redirect ${context.req.path} → ${destinationUrl}`)
|
|
43
|
+
}
|
|
39
44
|
return context.redirect(destinationUrl, redirect.permanent ? 301 : 302)
|
|
40
45
|
})
|
|
41
46
|
}
|
|
@@ -180,11 +185,19 @@ url: ${url}`)
|
|
|
180
185
|
|
|
181
186
|
switch (route.type) {
|
|
182
187
|
case 'api': {
|
|
188
|
+
if (debugRouter) {
|
|
189
|
+
console.info(`[one] ⚡ ${url.pathname} → matched API route: ${route.page}`)
|
|
190
|
+
}
|
|
183
191
|
return resolveAPIRoute(requestHandlers, request, url, route)
|
|
184
192
|
}
|
|
185
193
|
case 'ssg':
|
|
186
194
|
case 'spa':
|
|
187
195
|
case 'ssr': {
|
|
196
|
+
if (debugRouter) {
|
|
197
|
+
console.info(
|
|
198
|
+
`[one] ⚡ ${url.pathname} → matched page route: ${route.page} (${route.type})`
|
|
199
|
+
)
|
|
200
|
+
}
|
|
188
201
|
return resolvePageRoute(requestHandlers, request, url, route)
|
|
189
202
|
}
|
|
190
203
|
}
|
package/src/vite/one.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import events from 'node:events'
|
|
2
|
-
import path from 'node:path'
|
|
3
1
|
import { configureVXRNCompilerPlugin } from '@vxrn/compiler'
|
|
4
2
|
import { resolvePath } from '@vxrn/resolve'
|
|
5
3
|
import type {
|
|
6
4
|
ExpoManifestRequestHandlerPluginPluginOptions,
|
|
7
5
|
MetroPluginOptions,
|
|
8
6
|
} from '@vxrn/vite-plugin-metro'
|
|
7
|
+
import events from 'node:events'
|
|
8
|
+
import path from 'node:path'
|
|
9
9
|
import type { Plugin, PluginOption } from 'vite'
|
|
10
10
|
import { barrel } from 'vite-plugin-barrel'
|
|
11
11
|
import tsconfigPaths from 'vite-tsconfig-paths'
|
|
12
|
-
import { autoDepOptimizePlugin,
|
|
12
|
+
import { autoDepOptimizePlugin, getOptionsFilled, loadEnv } from 'vxrn'
|
|
13
13
|
import vxrnVitePlugin from 'vxrn/vite-plugin'
|
|
14
14
|
import { CACHE_KEY } from '../constants'
|
|
15
15
|
import { getViteMetroPluginOptions } from '../metro-config/getViteMetroPluginOptions'
|
|
@@ -121,15 +121,6 @@ export function one(options: One.PluginOptions = {}): PluginOption {
|
|
|
121
121
|
void ensureTSConfig()
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
-
// build is superset for now
|
|
125
|
-
const { optimizeDeps } = getOptimizeDeps('build')
|
|
126
|
-
const optimizeIds = optimizeDeps.include
|
|
127
|
-
const optimizeIdRegex = new RegExp(
|
|
128
|
-
// santize ids for regex
|
|
129
|
-
// https://stackoverflow.com/questions/6300183/sanitize-string-of-regex-characters-before-regexp-build
|
|
130
|
-
`${optimizeIds.map((id) => id.replace(/[#-.]|[[-^]|[?|{}]/g, '\\$&')).join('|')}`
|
|
131
|
-
)
|
|
132
|
-
|
|
133
124
|
let tsConfigPathsPlugin: Plugin | null = null
|
|
134
125
|
|
|
135
126
|
const vxrnOptions = getOptionsFilled()
|
|
@@ -167,7 +158,12 @@ export function one(options: One.PluginOptions = {}): PluginOption {
|
|
|
167
158
|
userConfig?.envPrefix
|
|
168
159
|
)
|
|
169
160
|
return {
|
|
170
|
-
define:
|
|
161
|
+
define: {
|
|
162
|
+
...clientEnvDefine,
|
|
163
|
+
...(process.env.ONE_DEBUG_ROUTER && {
|
|
164
|
+
'process.env.ONE_DEBUG_ROUTER': JSON.stringify(process.env.ONE_DEBUG_ROUTER),
|
|
165
|
+
}),
|
|
166
|
+
},
|
|
171
167
|
}
|
|
172
168
|
},
|
|
173
169
|
},
|
|
@@ -17,6 +17,8 @@ import type { One } from '../../vite/types'
|
|
|
17
17
|
import { setServerContext } from '../one-server-only'
|
|
18
18
|
import { virtalEntryIdClient, virtualEntryId } from './virtualEntryConstants'
|
|
19
19
|
|
|
20
|
+
const debugRouter = process.env.ONE_DEBUG_ROUTER
|
|
21
|
+
|
|
20
22
|
// server needs better dep optimization
|
|
21
23
|
const USE_SERVER_ENV = false //!!process.env.USE_SERVER_ENV
|
|
22
24
|
|
|
@@ -329,7 +331,9 @@ export function createFileSystemRouterPlugin(options: One.PluginOptions): Plugin
|
|
|
329
331
|
})
|
|
330
332
|
}
|
|
331
333
|
|
|
332
|
-
|
|
334
|
+
if (debugRouter) {
|
|
335
|
+
console.info(`[one] ↪ redirect ${url.pathname} → ${destination}`)
|
|
336
|
+
}
|
|
333
337
|
|
|
334
338
|
res.writeHead(redirect.permanent ? 301 : 302, { Location: destination })
|
|
335
339
|
res.end()
|
|
@@ -338,13 +342,21 @@ export function createFileSystemRouterPlugin(options: One.PluginOptions): Plugin
|
|
|
338
342
|
}
|
|
339
343
|
}
|
|
340
344
|
|
|
341
|
-
const reply = await handleRequest.handler(
|
|
345
|
+
const reply = await handleRequest.handler(convertIncomingMessageToRequest(req))
|
|
342
346
|
|
|
343
347
|
if (!reply) {
|
|
344
348
|
return next()
|
|
345
349
|
}
|
|
346
350
|
|
|
347
351
|
if (typeof reply !== 'string' && isResponse(reply)) {
|
|
352
|
+
if (debugRouter) {
|
|
353
|
+
const headers: Record<string, string> = {}
|
|
354
|
+
reply.headers.forEach((v, k) => {
|
|
355
|
+
headers[k] = v
|
|
356
|
+
})
|
|
357
|
+
console.info(`[one] 📤 response ${reply.status}`, headers)
|
|
358
|
+
}
|
|
359
|
+
|
|
348
360
|
reply.headers.forEach((value, key) => {
|
|
349
361
|
if (key === 'set-cookie') {
|
|
350
362
|
// for some reason it wasnt doing working without this?
|
|
@@ -359,7 +371,9 @@ export function createFileSystemRouterPlugin(options: One.PluginOptions): Plugin
|
|
|
359
371
|
|
|
360
372
|
if (isStatusRedirect(reply.status)) {
|
|
361
373
|
const location = `${reply.headers.get('location') || ''}`
|
|
362
|
-
|
|
374
|
+
if (debugRouter) {
|
|
375
|
+
console.info(`[one] ↪ response redirect → ${location}`)
|
|
376
|
+
}
|
|
363
377
|
if (location) {
|
|
364
378
|
res.writeHead(reply.status, {
|
|
365
379
|
Location: location,
|
|
@@ -373,8 +387,6 @@ export function createFileSystemRouterPlugin(options: One.PluginOptions): Plugin
|
|
|
373
387
|
res.statusCode = reply.status
|
|
374
388
|
res.statusMessage = reply.statusText
|
|
375
389
|
|
|
376
|
-
let outString = ''
|
|
377
|
-
|
|
378
390
|
if (reply.body) {
|
|
379
391
|
if (reply.body.locked) {
|
|
380
392
|
console.warn(`Body is locked??`, req.url)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createHandleRequest.d.ts","sourceRoot":"","sources":["../src/createHandleRequest.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAK1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACzD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAC3D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACxD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;CACpD,CAAA;AAED,KAAK,mBAAmB,CAAC,eAAe,SAAS,MAAM,GAAG,EAAE,IAAI;IAC9D,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,eAAe,CAAA;IAC1C,GAAG,EAAE,GAAG,CAAA;IACR,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA;AAED,KAAK,sBAAsB,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"createHandleRequest.d.ts","sourceRoot":"","sources":["../src/createHandleRequest.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAK1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACzD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAC3D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACxD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;CACpD,CAAA;AAED,KAAK,mBAAmB,CAAC,eAAe,SAAS,MAAM,GAAG,EAAE,IAAI;IAC9D,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,eAAe,CAAA;IAC1C,GAAG,EAAE,GAAG,CAAA;IACR,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA;AAED,KAAK,sBAAsB,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAA;AAItD,wBAAsB,cAAc,CAClC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,GACnC,OAAO,CAAC,QAAQ,CAAC,CA4DnB;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,iBAAiB,qBA0CzB;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,iBAAiB,qBAuCzB;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,iBAAiB,qBAyBzB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,OAMpD;AASD,wBAAgB,eAAe,CAAC,QAAQ,EAAE;IAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IAAC,SAAS,EAAE,SAAS,EAAE,CAAA;CAAE,GAAG;IAC9F,UAAU,EAAE,iBAAiB,EAAE,CAAA;IAC/B,SAAS,EAAE,iBAAiB,EAAE,CAAA;CAC/B,CAKA;AAGD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE;;uBAUW,OAAO,KAAG,OAAO,CAAC,sBAAsB,CAAC;EA4E3F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationContainer.d.ts","sourceRoot":"","sources":["../../src/fork/NavigationContainer.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAKL,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAK5B,MAAM,wBAAwB,CAAA;AAO/B,OAAO,EAEL,KAAK,oBAAoB,EAEzB,KAAK,cAAc,EAEnB,KAAK,eAAe,EAErB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS9B,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,yBAAyB,EAAE,OAAO,CACpC,sBAAsB,CAAC,GAAG,CAAC,EAC3B;QAAE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAA;KAAE,CAC1C,CAAA;CACF;AAID,KAAK,KAAK,CAAC,SAAS,SAAS,EAAE,IAAI,wBAAwB,GAAG;IAC5D,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACnC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,aAAa,CAAC,EAAE,oBAAoB,CAAA;CACrC,CAAA;
|
|
1
|
+
{"version":3,"file":"NavigationContainer.d.ts","sourceRoot":"","sources":["../../src/fork/NavigationContainer.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAKL,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAK5B,MAAM,wBAAwB,CAAA;AAO/B,OAAO,EAEL,KAAK,oBAAoB,EAEzB,KAAK,cAAc,EAEnB,KAAK,eAAe,EAErB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS9B,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,yBAAyB,EAAE,OAAO,CACpC,sBAAsB,CAAC,GAAG,CAAC,EAC3B;QAAE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAA;KAAE,CAC1C,CAAA;CACF;AAID,KAAK,KAAK,CAAC,SAAS,SAAS,EAAE,IAAI,wBAAwB,GAAG;IAC5D,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACnC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,aAAa,CAAC,EAAE,oBAAoB,CAAA;CACrC,CAAA;AA+ID,eAAO,MAAM,mBAAmB,EAAiD,CAC/E,aAAa,SAAS,EAAE,GAAG,eAAe,CAAC,aAAa,EAExD,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG;IAC5B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,CAAA;CACvD,KACE,KAAK,CAAC,YAAY,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMemoryHistory.d.ts","sourceRoot":"","sources":["../../src/fork/createMemoryHistory.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAG7D,KAAK,aAAa,GAAG;IAEnB,EAAE,EAAE,MAAM,CAAA;IAEV,KAAK,EAAE,eAAe,CAAA;IAEtB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,wBAAgB,mBAAmB;oBAmBlB,MAAM;eAcR,MAAM;wBAIG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;0BAad;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,eAAe,CAAA;KAAE;
|
|
1
|
+
{"version":3,"file":"createMemoryHistory.d.ts","sourceRoot":"","sources":["../../src/fork/createMemoryHistory.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAG7D,KAAK,aAAa,GAAG;IAEnB,EAAE,EAAE,MAAM,CAAA;IAEV,KAAK,EAAE,eAAe,CAAA;IAEtB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,wBAAgB,mBAAmB;oBAmBlB,MAAM;eAcR,MAAM;wBAIG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;0BAad;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,eAAe,CAAA;KAAE;6BAuBrC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,eAAe,CAAA;KAAE;UAwC3D,MAAM;qBA2FK,MAAM,IAAI;EAiB9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractPathFromURL.d.ts","sourceRoot":"","sources":["../../src/fork/extractPathFromURL.ts"],"names":[],"mappings":"AAAA,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,MAAM,GAAG;IAC7D,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB,CAUA;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI3D;
|
|
1
|
+
{"version":3,"file":"extractPathFromURL.d.ts","sourceRoot":"","sources":["../../src/fork/extractPathFromURL.ts"],"names":[],"mappings":"AAAA,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,MAAM,GAAG;IAC7D,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB,CAUA;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI3D;AA8GD,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,SAAK,UAMnE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,UAMjF;AAED,eAAO,MAAM,kBAAkB,+BAAyB,CAAA"}
|
|
@@ -12,20 +12,15 @@ export type AdditionalRouteConfig = {
|
|
|
12
12
|
hasChildren: boolean;
|
|
13
13
|
expandedRouteNames: string[];
|
|
14
14
|
parts: string[];
|
|
15
|
+
staticPartCount: number;
|
|
15
16
|
};
|
|
16
|
-
|
|
17
|
+
interface UrlWithReactNavigationConcessions {
|
|
17
18
|
path: string;
|
|
18
|
-
cleanUrl: string;
|
|
19
19
|
nonstandardPathname: string;
|
|
20
|
-
|
|
21
|
-
pathWithoutGroups?: undefined;
|
|
22
|
-
} | {
|
|
23
|
-
path: string;
|
|
24
|
-
nonstandardPathname: string;
|
|
25
|
-
url: URL;
|
|
20
|
+
hash: string;
|
|
26
21
|
pathWithoutGroups: string;
|
|
27
|
-
|
|
28
|
-
|
|
22
|
+
}
|
|
23
|
+
export declare function getUrlWithReactNavigationConcessions(path: string, baseUrl?: string | undefined): UrlWithReactNavigationConcessions;
|
|
29
24
|
export declare function matchForEmptyPath(configs: RouteConfig[]): {
|
|
30
25
|
path: string;
|
|
31
26
|
screen: string;
|
|
@@ -42,6 +37,7 @@ export declare function matchForEmptyPath(configs: RouteConfig[]): {
|
|
|
42
37
|
hasChildren: boolean;
|
|
43
38
|
expandedRouteNames: string[];
|
|
44
39
|
parts: string[];
|
|
40
|
+
staticPartCount: number;
|
|
45
41
|
} | undefined;
|
|
46
42
|
export declare function appendIsInitial(initialRoutes: InitialRouteConfig[]): (config: RouteConfig) => RouteConfig;
|
|
47
43
|
export declare function getRouteConfigSorter(previousSegments?: string[]): (a: RouteConfig, b: RouteConfig) => number;
|
|
@@ -54,4 +50,5 @@ export declare function populateParams(routes?: ParsedRoute[], params?: Record<s
|
|
|
54
50
|
export declare function createConfigItemAdditionalProperties(screen: string, pattern: string, routeNames: string[], config?: Record<string, any>): Omit<AdditionalRouteConfig, 'isInitial'>;
|
|
55
51
|
export declare function parseQueryParamsExtended(path: string, route: ParsedRoute, parseConfig?: Record<string, (value: string) => any>, hash?: string): Record<string, string | string[]> | undefined;
|
|
56
52
|
export declare function stripBaseUrl(path: string, baseUrl?: string | undefined): string;
|
|
53
|
+
export {};
|
|
57
54
|
//# sourceMappingURL=getStateFromPath-mods.d.ts.map
|