@buzola/router 0.0.14 → 0.0.15
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/define/create-page.d.ts.map +1 -1
- package/dist/define/create-page.js +17 -2
- package/dist/define/create-page.js.map +1 -1
- package/dist/engine/router.d.ts.map +1 -1
- package/dist/engine/router.js +7 -0
- package/dist/engine/router.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/react.test.tsx +116 -0
- package/src/__tests__/router.test.ts +40 -0
- package/src/define/create-page.tsx +18 -2
- package/src/engine/router.ts +7 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-page.d.ts","sourceRoot":"","sources":["../../src/define/create-page.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAA8D,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"create-page.d.ts","sourceRoot":"","sources":["../../src/define/create-page.tsx"],"names":[],"mappings":"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"}
|
|
@@ -74,6 +74,21 @@ function combineLoaders(loaders) {
|
|
|
74
74
|
return Object.assign({}, ...results);
|
|
75
75
|
};
|
|
76
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Follow a loader redirect, unless it points at the URL the page is already on —
|
|
79
|
+
* that navigation re-runs the loader, which returns the same redirect, forever.
|
|
80
|
+
*/
|
|
81
|
+
function followRedirect(router, target) {
|
|
82
|
+
if (!router)
|
|
83
|
+
return;
|
|
84
|
+
const current = router.getState().location;
|
|
85
|
+
const href = new URL(router.buildPagePath(target.pageId, target.params), current).href;
|
|
86
|
+
if (href === current.href) {
|
|
87
|
+
console.warn(`[buzola] Loader redirected to "${target.pageId}", which is the page it is already on. Ignoring to avoid a redirect loop.`);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
router.navigateToPage(target.pageId, target.params, { replace: true });
|
|
91
|
+
}
|
|
77
92
|
// ─── Component factory ──────────────────────────────────────────────────────
|
|
78
93
|
function createPageComponent(schema, paramsMeta, loaderFn, routePattern, RenderComponent, catchHandler) {
|
|
79
94
|
const arrayParams = new Set(paramsMeta.filter(m => m.array).map(m => m.name));
|
|
@@ -146,7 +161,7 @@ function createPageComponent(schema, paramsMeta, loaderFn, routePattern, RenderC
|
|
|
146
161
|
onBackgroundSettled: (outcome) => {
|
|
147
162
|
if (outcome.ok) {
|
|
148
163
|
if (outcome.result instanceof BuzolaRedirect) {
|
|
149
|
-
router
|
|
164
|
+
followRedirect(router, outcome.result);
|
|
150
165
|
return;
|
|
151
166
|
}
|
|
152
167
|
loaderState.commitBackgroundResult(outcome.result);
|
|
@@ -164,7 +179,7 @@ function createPageComponent(schema, paramsMeta, loaderFn, routePattern, RenderC
|
|
|
164
179
|
else {
|
|
165
180
|
const result = use(instruction.promise);
|
|
166
181
|
if (result instanceof BuzolaRedirect) {
|
|
167
|
-
router
|
|
182
|
+
followRedirect(router, result);
|
|
168
183
|
shouldRedirect = true;
|
|
169
184
|
}
|
|
170
185
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-page.js","sourceRoot":"","sources":["../../src/define/create-page.tsx"],"names":[],"mappings":";AACA,OAAO,EAAsB,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACtG,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"create-page.js","sourceRoot":"","sources":["../../src/define/create-page.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/engine/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAGvG;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;;CAKhD;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;AAE3D,MAAM,WAAW,aAAa;IAC7B,iCAAiC;IACjC,MAAM,EAAE,SAAS,CAAA;IACjB,8CAA8C;IAC9C,OAAO,EAAE,iBAAiB,CAAA;IAC1B,mDAAmD;IACnD,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/C;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;GAGG;AACH,qBAAa,MAAM;IAClB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAA8B;IAClE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,qBAAqB,CAAoD;IACjF,OAAO,CAAC,iBAAiB,CAA2C;IACpE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;gBAE1C,OAAO,EAAE,aAAa;IA0BlC;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;;OAGG;IACH,IAAI,WAAW,IAAI,WAAW,GAAG,SAAS,CAEzC;IAED;;OAEG;IACH,QAAQ,IAAI,WAAW;IAIvB;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,gBAAgB,GAAG,MAAM,IAAI;IAOnD;;;OAGG;IACH,KAAK,IAAI,MAAM,IAAI;
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/engine/router.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/router.js
CHANGED
|
@@ -132,6 +132,7 @@ export class Router {
|
|
|
132
132
|
return;
|
|
133
133
|
// Perform the DOM update
|
|
134
134
|
const doUpdate = () => {
|
|
135
|
+
const previousHref = this.state.location.href;
|
|
135
136
|
this.setState({
|
|
136
137
|
location: url,
|
|
137
138
|
matches,
|
|
@@ -139,6 +140,12 @@ export class Router {
|
|
|
139
140
|
pendingLocation: undefined,
|
|
140
141
|
navigationState: this.adapter.getState(),
|
|
141
142
|
});
|
|
143
|
+
// Going to the URL we are already on is still a navigation — a browser
|
|
144
|
+
// re-requests the document for it. Loader data is keyed by href, so it
|
|
145
|
+
// would silently keep serving stale data without an explicit invalidation.
|
|
146
|
+
if (previousHref === url.href) {
|
|
147
|
+
this.invalidateAll();
|
|
148
|
+
}
|
|
142
149
|
};
|
|
143
150
|
if (useViewTransition && typeof document !== 'undefined' && 'startViewTransition' in document) {
|
|
144
151
|
;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/engine/router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/engine/router.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,6 +2,7 @@ import './setup-dom.js'
|
|
|
2
2
|
import { act, cleanup, fireEvent, render, renderHook } from '@testing-library/react'
|
|
3
3
|
import { afterEach, describe, expect, it, mock, spyOn } from 'bun:test'
|
|
4
4
|
import React from 'react'
|
|
5
|
+
import { BuzolaRedirect, createPage } from '../define/create-page.js'
|
|
5
6
|
import { createMemoryNavigationAdapter } from '../engine/navigation-adapter.js'
|
|
6
7
|
import { buildRouteTree } from '../engine/route-tree.js'
|
|
7
8
|
import { Router } from '../engine/router.js'
|
|
@@ -500,6 +501,121 @@ describe('useInvalidate', () => {
|
|
|
500
501
|
})
|
|
501
502
|
})
|
|
502
503
|
|
|
504
|
+
// ─── Page loaders ────────────────────────────────────────────────────────────
|
|
505
|
+
|
|
506
|
+
describe('Page loaders', () => {
|
|
507
|
+
/** A loader suspends on mount, so the first render has to be awaited inside act() to commit. */
|
|
508
|
+
async function renderRoutes(configs: RouteConfig[], url: string, pageRegistry?: Record<string, string>) {
|
|
509
|
+
const { router, adapter } = createTestRouter(configs, url, pageRegistry ? { pageRegistry } : undefined)
|
|
510
|
+
let container!: HTMLElement
|
|
511
|
+
await act(async () => {
|
|
512
|
+
container = render(
|
|
513
|
+
<BuzolaProvider router={router}>
|
|
514
|
+
<React.Suspense fallback={<div>loading</div>}>
|
|
515
|
+
<Outlet />
|
|
516
|
+
</React.Suspense>
|
|
517
|
+
</BuzolaProvider>,
|
|
518
|
+
).container
|
|
519
|
+
})
|
|
520
|
+
return { router, adapter, container }
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
function renderPage(page: { component: React.ComponentType }, url: string, pageRegistry?: Record<string, string>) {
|
|
524
|
+
return renderRoutes([{ path: new URL(url).pathname, component: page.component }], url, pageRegistry)
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
it('re-runs the loader when navigating to the URL the page is already on', async () => {
|
|
528
|
+
let loads = 0
|
|
529
|
+
const page = createPage()
|
|
530
|
+
.loader(async () => ({ n: ++loads }))
|
|
531
|
+
.render(({ data }) => <div>{`loads:${data.n}`}</div>)
|
|
532
|
+
|
|
533
|
+
const { router, container } = await renderPage(page, 'http://localhost/dashboard')
|
|
534
|
+
await flushNav()
|
|
535
|
+
expect(container.textContent).toBe('loads:1')
|
|
536
|
+
|
|
537
|
+
await act(async () => {
|
|
538
|
+
router.navigate('/dashboard')
|
|
539
|
+
})
|
|
540
|
+
await flushNav()
|
|
541
|
+
|
|
542
|
+
expect(container.textContent).toBe('loads:2')
|
|
543
|
+
})
|
|
544
|
+
|
|
545
|
+
it('serves the previous data while the same-URL reload is in flight', async () => {
|
|
546
|
+
let resolveSecond: ((value: { n: number }) => void) | undefined
|
|
547
|
+
let loads = 0
|
|
548
|
+
const page = createPage()
|
|
549
|
+
.loader(async () => {
|
|
550
|
+
loads++
|
|
551
|
+
if (loads === 1) return { n: 1 }
|
|
552
|
+
return new Promise<{ n: number }>(resolve => {
|
|
553
|
+
resolveSecond = resolve
|
|
554
|
+
})
|
|
555
|
+
})
|
|
556
|
+
.render(({ data }) => <div>{`loads:${data.n}`}</div>)
|
|
557
|
+
|
|
558
|
+
const { router, container } = await renderPage(page, 'http://localhost/dashboard')
|
|
559
|
+
await flushNav()
|
|
560
|
+
|
|
561
|
+
await act(async () => {
|
|
562
|
+
router.navigate('/dashboard')
|
|
563
|
+
})
|
|
564
|
+
await flushNav()
|
|
565
|
+
|
|
566
|
+
// No Suspense fallback — the stale render stays up until the reload lands
|
|
567
|
+
expect(container.textContent).toBe('loads:1')
|
|
568
|
+
|
|
569
|
+
await act(async () => {
|
|
570
|
+
resolveSecond?.({ n: 2 })
|
|
571
|
+
})
|
|
572
|
+
await flushNav()
|
|
573
|
+
|
|
574
|
+
expect(container.textContent).toBe('loads:2')
|
|
575
|
+
})
|
|
576
|
+
|
|
577
|
+
it('ignores a loader redirect that targets the page it is already on', async () => {
|
|
578
|
+
const warn = spyOn(console, 'warn').mockImplementation(() => {})
|
|
579
|
+
try {
|
|
580
|
+
let loads = 0
|
|
581
|
+
const page = createPage()
|
|
582
|
+
.loader(async () => {
|
|
583
|
+
loads++
|
|
584
|
+
return new BuzolaRedirect('dashboard')
|
|
585
|
+
})
|
|
586
|
+
.render(() => <div>never rendered</div>)
|
|
587
|
+
|
|
588
|
+
const { router } = await renderPage(page, 'http://localhost/dashboard', { dashboard: '/dashboard' })
|
|
589
|
+
await flushNav()
|
|
590
|
+
|
|
591
|
+
// Without the guard the refused navigation would re-run the loader forever
|
|
592
|
+
expect(loads).toBe(1)
|
|
593
|
+
expect(warn).toHaveBeenCalled()
|
|
594
|
+
expect(router.getState().location.pathname).toBe('/dashboard')
|
|
595
|
+
} finally {
|
|
596
|
+
warn.mockRestore()
|
|
597
|
+
}
|
|
598
|
+
})
|
|
599
|
+
|
|
600
|
+
it('still follows a loader redirect to a different page', async () => {
|
|
601
|
+
const page = createPage()
|
|
602
|
+
.loader(async () => new BuzolaRedirect('about'))
|
|
603
|
+
.render(() => <div>never rendered</div>)
|
|
604
|
+
|
|
605
|
+
const { router } = await renderRoutes(
|
|
606
|
+
[
|
|
607
|
+
{ path: '/dashboard', component: page.component },
|
|
608
|
+
{ path: '/about', component: About },
|
|
609
|
+
],
|
|
610
|
+
'http://localhost/dashboard',
|
|
611
|
+
{ about: '/about' },
|
|
612
|
+
)
|
|
613
|
+
await flushNav()
|
|
614
|
+
|
|
615
|
+
expect(router.getState().location.pathname).toBe('/about')
|
|
616
|
+
})
|
|
617
|
+
})
|
|
618
|
+
|
|
503
619
|
// ─── Outlet ──────────────────────────────────────────────────────────────────
|
|
504
620
|
|
|
505
621
|
describe('Outlet', () => {
|
|
@@ -277,6 +277,46 @@ describe('Router.preload', () => {
|
|
|
277
277
|
})
|
|
278
278
|
})
|
|
279
279
|
|
|
280
|
+
describe('Router same-URL navigation', () => {
|
|
281
|
+
function createCountingRouter(initialURL: string) {
|
|
282
|
+
const { router } = createRouter([
|
|
283
|
+
{ path: '/', component: dummyComponent, isIndex: true },
|
|
284
|
+
{ path: '/list', component: dummyComponent },
|
|
285
|
+
], initialURL)
|
|
286
|
+
|
|
287
|
+
let invalidations = 0
|
|
288
|
+
router.onInvalidate(() => invalidations++)
|
|
289
|
+
|
|
290
|
+
return { router, count: () => invalidations }
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
it('invalidates loaders when navigating to the URL it is already on', () => {
|
|
294
|
+
const { router, count } = createCountingRouter('http://localhost/list')
|
|
295
|
+
|
|
296
|
+
router.navigate('/list')
|
|
297
|
+
|
|
298
|
+
expect(count()).toBe(1)
|
|
299
|
+
expect(router.getState().location.pathname).toBe('/list')
|
|
300
|
+
})
|
|
301
|
+
|
|
302
|
+
it('invalidates on a same-URL replace too', () => {
|
|
303
|
+
const { router, count } = createCountingRouter('http://localhost/list?q=1')
|
|
304
|
+
|
|
305
|
+
router.navigate('/list?q=1', { replace: true })
|
|
306
|
+
|
|
307
|
+
expect(count()).toBe(1)
|
|
308
|
+
})
|
|
309
|
+
|
|
310
|
+
it('does not invalidate when the URL changes — the href-keyed loader reloads on its own', () => {
|
|
311
|
+
const { router, count } = createCountingRouter('http://localhost/')
|
|
312
|
+
|
|
313
|
+
router.navigate('/list')
|
|
314
|
+
router.navigate('/list?q=1')
|
|
315
|
+
|
|
316
|
+
expect(count()).toBe(0)
|
|
317
|
+
})
|
|
318
|
+
})
|
|
319
|
+
|
|
280
320
|
describe('Router focus reset', () => {
|
|
281
321
|
function createCapturingRouter(initialURL: string) {
|
|
282
322
|
const routes = buildRouteTree([
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ReactElement } from 'react'
|
|
2
2
|
import { type ComponentType, use, useCallback, useEffect, useMemo, useReducer, useState } from 'react'
|
|
3
3
|
import { PageLoaderState } from '../engine/loader-state.js'
|
|
4
|
+
import type { Router } from '../engine/router.js'
|
|
4
5
|
import { isOptionalSchema, type ParamLiteral, resolveParamLiteral, validateSchema } from '../engine/schema.js'
|
|
5
6
|
import type { EffectivePageParams, RegisteredPage, RouteComponent, StandardSchema } from '../engine/types.js'
|
|
6
7
|
import { extractParamNames } from '../engine/utils.js'
|
|
@@ -154,6 +155,21 @@ function combineLoaders(loaders: LoaderFn[]): LoaderFn | undefined {
|
|
|
154
155
|
}
|
|
155
156
|
}
|
|
156
157
|
|
|
158
|
+
/**
|
|
159
|
+
* Follow a loader redirect, unless it points at the URL the page is already on —
|
|
160
|
+
* that navigation re-runs the loader, which returns the same redirect, forever.
|
|
161
|
+
*/
|
|
162
|
+
function followRedirect(router: Router | null, target: BuzolaRedirect): void {
|
|
163
|
+
if (!router) return
|
|
164
|
+
const current = router.getState().location
|
|
165
|
+
const href = new URL(router.buildPagePath(target.pageId, target.params), current).href
|
|
166
|
+
if (href === current.href) {
|
|
167
|
+
console.warn(`[buzola] Loader redirected to "${target.pageId}", which is the page it is already on. Ignoring to avoid a redirect loop.`)
|
|
168
|
+
return
|
|
169
|
+
}
|
|
170
|
+
router.navigateToPage(target.pageId, target.params, { replace: true })
|
|
171
|
+
}
|
|
172
|
+
|
|
157
173
|
// ─── Component factory ──────────────────────────────────────────────────────
|
|
158
174
|
|
|
159
175
|
function createPageComponent<TParams>(
|
|
@@ -248,7 +264,7 @@ function createPageComponent<TParams>(
|
|
|
248
264
|
onBackgroundSettled: (outcome) => {
|
|
249
265
|
if (outcome.ok) {
|
|
250
266
|
if (outcome.result instanceof BuzolaRedirect) {
|
|
251
|
-
router
|
|
267
|
+
followRedirect(router, outcome.result)
|
|
252
268
|
return
|
|
253
269
|
}
|
|
254
270
|
loaderState.commitBackgroundResult(outcome.result)
|
|
@@ -265,7 +281,7 @@ function createPageComponent<TParams>(
|
|
|
265
281
|
} else {
|
|
266
282
|
const result = use(instruction.promise)
|
|
267
283
|
if (result instanceof BuzolaRedirect) {
|
|
268
|
-
router
|
|
284
|
+
followRedirect(router, result)
|
|
269
285
|
shouldRedirect = true
|
|
270
286
|
} else {
|
|
271
287
|
data = result
|
package/src/engine/router.ts
CHANGED
|
@@ -182,6 +182,7 @@ export class Router {
|
|
|
182
182
|
|
|
183
183
|
// Perform the DOM update
|
|
184
184
|
const doUpdate = () => {
|
|
185
|
+
const previousHref = this.state.location.href
|
|
185
186
|
this.setState({
|
|
186
187
|
location: url,
|
|
187
188
|
matches,
|
|
@@ -189,6 +190,12 @@ export class Router {
|
|
|
189
190
|
pendingLocation: undefined,
|
|
190
191
|
navigationState: this.adapter.getState(),
|
|
191
192
|
})
|
|
193
|
+
// Going to the URL we are already on is still a navigation — a browser
|
|
194
|
+
// re-requests the document for it. Loader data is keyed by href, so it
|
|
195
|
+
// would silently keep serving stale data without an explicit invalidation.
|
|
196
|
+
if (previousHref === url.href) {
|
|
197
|
+
this.invalidateAll()
|
|
198
|
+
}
|
|
192
199
|
}
|
|
193
200
|
|
|
194
201
|
if (useViewTransition && typeof document !== 'undefined' && 'startViewTransition' in document) {
|