@geometra/router 1.4.0 → 1.5.0
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/history.d.ts +25 -0
- package/dist/history.d.ts.map +1 -1
- package/dist/history.js +13 -0
- package/dist/history.js.map +1 -1
- package/package.json +2 -2
package/dist/history.d.ts
CHANGED
|
@@ -1,13 +1,24 @@
|
|
|
1
|
+
/** Parsed location slice used by {@link HistoryAdapter} (pathname, query string, fragment). */
|
|
1
2
|
export type RouterLocation = {
|
|
2
3
|
pathname: string;
|
|
3
4
|
search: string;
|
|
4
5
|
hash: string;
|
|
5
6
|
};
|
|
7
|
+
/**
|
|
8
|
+
* Emitted by {@link HistoryAdapter.listen} after navigation.
|
|
9
|
+
* Browser history uses `'pop'` for both `history.go` and the `popstate` event; memory history uses `'pop'` for `go` only.
|
|
10
|
+
*/
|
|
6
11
|
export type HistoryUpdate = {
|
|
7
12
|
location: RouterLocation;
|
|
8
13
|
action: 'push' | 'replace' | 'pop';
|
|
9
14
|
};
|
|
15
|
+
/** Returned from {@link HistoryAdapter.listen}; call to stop receiving updates. */
|
|
10
16
|
export type Unsubscribe = () => void;
|
|
17
|
+
/**
|
|
18
|
+
* Minimal history surface for the router: imperative navigation plus subscription.
|
|
19
|
+
* String arguments to {@link HistoryAdapter.push} / {@link HistoryAdapter.replace} are parsed with `new URL(to, base)`
|
|
20
|
+
* (relative paths resolve against an internal base); results normalize empty pathname to `'/'`.
|
|
21
|
+
*/
|
|
11
22
|
export interface HistoryAdapter {
|
|
12
23
|
readonly location: RouterLocation;
|
|
13
24
|
push(to: string): void;
|
|
@@ -15,6 +26,7 @@ export interface HistoryAdapter {
|
|
|
15
26
|
go(delta: number): void;
|
|
16
27
|
listen(listener: (update: HistoryUpdate) => void): Unsubscribe;
|
|
17
28
|
}
|
|
29
|
+
/** Optional injection of a browser-like `window` (tests, non-DOM hosts). */
|
|
18
30
|
export type BrowserHistoryOptions = {
|
|
19
31
|
window?: Pick<Window, 'location' | 'history' | 'addEventListener' | 'removeEventListener'>;
|
|
20
32
|
};
|
|
@@ -22,7 +34,20 @@ type MemoryHistoryOptions = {
|
|
|
22
34
|
initialEntries?: string[];
|
|
23
35
|
initialIndex?: number;
|
|
24
36
|
};
|
|
37
|
+
/**
|
|
38
|
+
* In-memory stack for tests, SSR previews, and non-browser environments.
|
|
39
|
+
*
|
|
40
|
+
* - Empty `initialEntries` becomes a single `"/"` entry.
|
|
41
|
+
* - `initialIndex` is clamped to the stack; default is the last entry.
|
|
42
|
+
* - `go(0)` does not notify listeners.
|
|
43
|
+
*/
|
|
25
44
|
export declare function createMemoryHistory(options?: MemoryHistoryOptions): HistoryAdapter;
|
|
45
|
+
/**
|
|
46
|
+
* Wraps the real (or injected) `window.history` and `popstate`.
|
|
47
|
+
*
|
|
48
|
+
* `push` / `replace` update `history` state and notify listeners; `go` delegates to `history.go` (async relative to `popstate`).
|
|
49
|
+
* Throws if no `window` is available unless {@link BrowserHistoryOptions.window} is provided.
|
|
50
|
+
*/
|
|
26
51
|
export declare function createBrowserHistory(options?: BrowserHistoryOptions): HistoryAdapter;
|
|
27
52
|
export {};
|
|
28
53
|
//# sourceMappingURL=history.d.ts.map
|
package/dist/history.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../src/history.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,cAAc,CAAA;IACxB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAA;AAEpC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;IACjC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,GAAG,WAAW,CAAA;CAC/D;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,kBAAkB,GAAG,qBAAqB,CAAC,CAAA;CAC3F,CAAA;AAmBD,KAAK,oBAAoB,GAAG;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CA6CtF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG,cAAc,CAsDxF"}
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../src/history.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,cAAc,CAAA;IACxB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,CAAA;CACnC,CAAA;AAED,mFAAmF;AACnF,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAA;AAEpC;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;IACjC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,GAAG,WAAW,CAAA;CAC/D;AAED,4EAA4E;AAC5E,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,kBAAkB,GAAG,qBAAqB,CAAC,CAAA;CAC3F,CAAA;AAmBD,KAAK,oBAAoB,GAAG;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CA6CtF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG,cAAc,CAsDxF"}
|
package/dist/history.js
CHANGED
|
@@ -13,6 +13,13 @@ function locationFromWindow(windowLike) {
|
|
|
13
13
|
hash: windowLike.location.hash || '',
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* In-memory stack for tests, SSR previews, and non-browser environments.
|
|
18
|
+
*
|
|
19
|
+
* - Empty `initialEntries` becomes a single `"/"` entry.
|
|
20
|
+
* - `initialIndex` is clamped to the stack; default is the last entry.
|
|
21
|
+
* - `go(0)` does not notify listeners.
|
|
22
|
+
*/
|
|
16
23
|
export function createMemoryHistory(options = {}) {
|
|
17
24
|
const entries = (options.initialEntries ?? ['/']).map(parseToLocation);
|
|
18
25
|
let index = Math.min(Math.max(options.initialIndex ?? entries.length - 1, 0), Math.max(entries.length - 1, 0));
|
|
@@ -57,6 +64,12 @@ export function createMemoryHistory(options = {}) {
|
|
|
57
64
|
},
|
|
58
65
|
};
|
|
59
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Wraps the real (or injected) `window.history` and `popstate`.
|
|
69
|
+
*
|
|
70
|
+
* `push` / `replace` update `history` state and notify listeners; `go` delegates to `history.go` (async relative to `popstate`).
|
|
71
|
+
* Throws if no `window` is available unless {@link BrowserHistoryOptions.window} is provided.
|
|
72
|
+
*/
|
|
60
73
|
export function createBrowserHistory(options = {}) {
|
|
61
74
|
const windowLike = options.window ??
|
|
62
75
|
(typeof window !== 'undefined'
|
package/dist/history.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.js","sourceRoot":"","sources":["../src/history.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../src/history.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geometra/router",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "Routing primitives for Geometra",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -34,6 +34,6 @@
|
|
|
34
34
|
"check": "tsc --noEmit"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@geometra/core": "^1.
|
|
37
|
+
"@geometra/core": "^1.5.0"
|
|
38
38
|
}
|
|
39
39
|
}
|