@plumile/router 0.1.5
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/LICENSE +21 -0
- package/README.md +1 -0
- package/lib/esm/ResourcePage.d.ts +15 -0
- package/lib/esm/ResourcePage.d.ts.map +1 -0
- package/lib/esm/ResourcePage.js +64 -0
- package/lib/esm/builder.d.ts +13 -0
- package/lib/esm/builder.d.ts.map +1 -0
- package/lib/esm/builder.js +64 -0
- package/lib/esm/errors/HttpRedirect.d.ts +6 -0
- package/lib/esm/errors/HttpRedirect.d.ts.map +1 -0
- package/lib/esm/errors/HttpRedirect.js +11 -0
- package/lib/esm/errors/index.d.ts +2 -0
- package/lib/esm/errors/index.d.ts.map +1 -0
- package/lib/esm/errors/index.js +2 -0
- package/lib/esm/history/BrowserHistory.d.ts +16 -0
- package/lib/esm/history/BrowserHistory.d.ts.map +1 -0
- package/lib/esm/history/BrowserHistory.js +59 -0
- package/lib/esm/history/index.d.ts +3 -0
- package/lib/esm/history/index.d.ts.map +1 -0
- package/lib/esm/history/index.js +2 -0
- package/lib/esm/history/types.d.ts +12 -0
- package/lib/esm/history/types.d.ts.map +1 -0
- package/lib/esm/history/types.js +2 -0
- package/lib/esm/index.d.ts +8 -0
- package/lib/esm/index.d.ts.map +1 -0
- package/lib/esm/index.js +7 -0
- package/lib/esm/routing/Link.d.ts +21 -0
- package/lib/esm/routing/Link.d.ts.map +1 -0
- package/lib/esm/routing/Link.js +99 -0
- package/lib/esm/routing/RouteComponent.d.ts +8 -0
- package/lib/esm/routing/RouteComponent.d.ts.map +1 -0
- package/lib/esm/routing/RouteComponent.js +20 -0
- package/lib/esm/routing/RouteComponentWrapper.d.ts +10 -0
- package/lib/esm/routing/RouteComponentWrapper.d.ts.map +1 -0
- package/lib/esm/routing/RouteComponentWrapper.js +72 -0
- package/lib/esm/routing/RouterRenderer.d.ts +10 -0
- package/lib/esm/routing/RouterRenderer.d.ts.map +1 -0
- package/lib/esm/routing/RouterRenderer.js +67 -0
- package/lib/esm/routing/RoutingContext.d.ts +5 -0
- package/lib/esm/routing/RoutingContext.d.ts.map +1 -0
- package/lib/esm/routing/RoutingContext.js +4 -0
- package/lib/esm/routing/createRouter.d.ts +7 -0
- package/lib/esm/routing/createRouter.d.ts.map +1 -0
- package/lib/esm/routing/createRouter.js +75 -0
- package/lib/esm/routing/index.d.ts +7 -0
- package/lib/esm/routing/index.d.ts.map +1 -0
- package/lib/esm/routing/index.js +7 -0
- package/lib/esm/tools/index.d.ts +3 -0
- package/lib/esm/tools/index.d.ts.map +1 -0
- package/lib/esm/tools/index.js +13 -0
- package/lib/esm/tools.d.ts +7 -0
- package/lib/esm/tools.d.ts.map +1 -0
- package/lib/esm/tools.js +58 -0
- package/lib/esm/types.d.ts +86 -0
- package/lib/esm/types.d.ts.map +1 -0
- package/lib/esm/types.js +2 -0
- package/lib/tsconfig.esm.tsbuildinfo +1 -0
- package/lib/types/ResourcePage.d.ts +15 -0
- package/lib/types/ResourcePage.d.ts.map +1 -0
- package/lib/types/builder.d.ts +13 -0
- package/lib/types/builder.d.ts.map +1 -0
- package/lib/types/errors/HttpRedirect.d.ts +6 -0
- package/lib/types/errors/HttpRedirect.d.ts.map +1 -0
- package/lib/types/errors/index.d.ts +2 -0
- package/lib/types/errors/index.d.ts.map +1 -0
- package/lib/types/history/BrowserHistory.d.ts +16 -0
- package/lib/types/history/BrowserHistory.d.ts.map +1 -0
- package/lib/types/history/index.d.ts +3 -0
- package/lib/types/history/index.d.ts.map +1 -0
- package/lib/types/history/types.d.ts +12 -0
- package/lib/types/history/types.d.ts.map +1 -0
- package/lib/types/index.d.ts +8 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/routing/Link.d.ts +21 -0
- package/lib/types/routing/Link.d.ts.map +1 -0
- package/lib/types/routing/RouteComponent.d.ts +8 -0
- package/lib/types/routing/RouteComponent.d.ts.map +1 -0
- package/lib/types/routing/RouteComponentWrapper.d.ts +10 -0
- package/lib/types/routing/RouteComponentWrapper.d.ts.map +1 -0
- package/lib/types/routing/RouterRenderer.d.ts +10 -0
- package/lib/types/routing/RouterRenderer.d.ts.map +1 -0
- package/lib/types/routing/RoutingContext.d.ts +5 -0
- package/lib/types/routing/RoutingContext.d.ts.map +1 -0
- package/lib/types/routing/createRouter.d.ts +7 -0
- package/lib/types/routing/createRouter.d.ts.map +1 -0
- package/lib/types/routing/index.d.ts +7 -0
- package/lib/types/routing/index.d.ts.map +1 -0
- package/lib/types/tools/index.d.ts +3 -0
- package/lib/types/tools/index.d.ts.map +1 -0
- package/lib/types/tools.d.ts +7 -0
- package/lib/types/tools.d.ts.map +1 -0
- package/lib/types/types.d.ts +86 -0
- package/lib/types/types.d.ts.map +1 -0
- package/package.json +57 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) Plumile/Pounjs and its affiliates.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Pounjs router
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ResourcePageLoader, ResourcePageReturn } from './types.js';
|
|
2
|
+
export declare class ResourcePage {
|
|
3
|
+
private __error;
|
|
4
|
+
private __loader;
|
|
5
|
+
private __promise;
|
|
6
|
+
private __result;
|
|
7
|
+
private __moduleId;
|
|
8
|
+
constructor(loader: ResourcePageLoader, moduleId: string);
|
|
9
|
+
load(): Promise<ResourcePageReturn>;
|
|
10
|
+
get(): ResourcePageReturn | undefined;
|
|
11
|
+
read(): ResourcePageReturn | Promise<ResourcePageReturn> | Error;
|
|
12
|
+
private __load;
|
|
13
|
+
}
|
|
14
|
+
export declare function getResourcePage(moduleId: string, loader: ResourcePageLoader): ResourcePage | null;
|
|
15
|
+
//# sourceMappingURL=ResourcePage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourcePage.d.ts","sourceRoot":"","sources":["../../src/ResourcePage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAczE,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAe;IAE9B,OAAO,CAAC,QAAQ,CAAqB;IAErC,OAAO,CAAC,SAAS,CAAqC;IAEtD,OAAO,CAAC,QAAQ,CAA4B;IAG5C,OAAO,CAAC,UAAU,CAAS;gBAER,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM;IAWlD,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;IA2BzC,GAAG,IAAI,kBAAkB,GAAG,SAAS;IAgBrC,IAAI,IAAI,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG,KAAK;YAazD,MAAM;CAKrB;AAmBD,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,kBAAkB,GACzB,YAAY,GAAG,IAAI,CAOrB"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
const resourcePageMap = new Map();
|
|
2
|
+
export class ResourcePage {
|
|
3
|
+
__error;
|
|
4
|
+
__loader;
|
|
5
|
+
__promise;
|
|
6
|
+
__result;
|
|
7
|
+
__moduleId;
|
|
8
|
+
constructor(loader, moduleId) {
|
|
9
|
+
this.__error = null;
|
|
10
|
+
this.__loader = loader;
|
|
11
|
+
this.__moduleId = moduleId;
|
|
12
|
+
this.__promise = null;
|
|
13
|
+
this.__result = null;
|
|
14
|
+
}
|
|
15
|
+
async load() {
|
|
16
|
+
let promise = this.__promise;
|
|
17
|
+
if (promise == null) {
|
|
18
|
+
promise = this.__load()
|
|
19
|
+
.then((result) => {
|
|
20
|
+
if (result.default != null) {
|
|
21
|
+
result = result.default;
|
|
22
|
+
}
|
|
23
|
+
this.__result = result;
|
|
24
|
+
return result;
|
|
25
|
+
})
|
|
26
|
+
.catch((error) => {
|
|
27
|
+
this.__error = error;
|
|
28
|
+
throw error;
|
|
29
|
+
});
|
|
30
|
+
this.__promise = promise;
|
|
31
|
+
}
|
|
32
|
+
return promise;
|
|
33
|
+
}
|
|
34
|
+
get() {
|
|
35
|
+
if (this.__result != null) {
|
|
36
|
+
return this.__result;
|
|
37
|
+
}
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
read() {
|
|
41
|
+
if (this.__result != null) {
|
|
42
|
+
return this.__result;
|
|
43
|
+
}
|
|
44
|
+
if (this.__error != null) {
|
|
45
|
+
throw this.__error;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
throw this.__promise;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
async __load() {
|
|
52
|
+
const { __loader: loader } = this;
|
|
53
|
+
return Promise.resolve(loader());
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
export function getResourcePage(moduleId, loader) {
|
|
57
|
+
let resource = resourcePageMap.get(moduleId);
|
|
58
|
+
if (resource == null) {
|
|
59
|
+
resource = new ResourcePage(loader, moduleId);
|
|
60
|
+
resourcePageMap.set(moduleId, resource);
|
|
61
|
+
}
|
|
62
|
+
return resource;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzb3VyY2VQYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1Jlc291cmNlUGFnZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7QUFNeEQsTUFBTSxPQUFPLFlBQVk7SUFDZixPQUFPLENBQWU7SUFFdEIsUUFBUSxDQUFxQjtJQUU3QixTQUFTLENBQXFDO0lBRTlDLFFBQVEsQ0FBNEI7SUFHcEMsVUFBVSxDQUFTO0lBRTNCLFlBQW1CLE1BQTBCLEVBQUUsUUFBZ0I7UUFDN0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUtNLEtBQUssQ0FBQyxJQUFJO1FBQ2YsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUM3QixJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNwQixPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRTtpQkFDcEIsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBRWYsSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO29CQUczQixNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztnQkFDMUIsQ0FBQztnQkFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztnQkFDdkIsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQyxDQUFDO2lCQUNELEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixNQUFNLEtBQUssQ0FBQztZQUNkLENBQUMsQ0FBQyxDQUFDO1lBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFNTSxHQUFHO1FBQ1IsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzFCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN2QixDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQVVNLElBQUk7UUFDVCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7WUFDMUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3JCLENBQUM7YUFBTSxDQUFDO1lBRU4sTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRU8sS0FBSyxDQUFDLE1BQU07UUFDbEIsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFbEMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNGO0FBbUJELE1BQU0sVUFBVSxlQUFlLENBQzdCLFFBQWdCLEVBQ2hCLE1BQTBCO0lBRTFCLElBQUksUUFBUSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7UUFDckIsUUFBUSxHQUFHLElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5QyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVzb3VyY2VQYWdlTG9hZGVyLCBSZXNvdXJjZVBhZ2VSZXR1cm4gfSBmcm9tICcuL3R5cGVzLmpzJztcblxuLyoqXG4gKiBBIGNhY2hlIG9mIHJlc291cmNlcyB0byBhdm9pZCBsb2FkaW5nIHRoZSBzYW1lIG1vZHVsZSB0d2ljZS4gVGhpcyBpcyBpbXBvcnRhbnRcbiAqIGJlY2F1c2UgV2VicGFjayBkeW5hbWljIGltcG9ydHMgb25seSBleHBvc2UgYW4gYXN5bmNocm9ub3VzIEFQSSBmb3IgbG9hZGluZ1xuICogbW9kdWxlcywgc28gdG8gYmUgYWJsZSB0byBhY2Nlc3MgYWxyZWFkeS1sb2FkZWQgbW9kdWxlcyBzeW5jaHJvbm91c2x5IHdlXG4gKiBtdXN0IGhhdmUgc3RvcmVkIHRoZSBwcmV2aW91cyByZXN1bHQgc29tZXdoZXJlLlxuICovXG5jb25zdCByZXNvdXJjZVBhZ2VNYXAgPSBuZXcgTWFwPHN0cmluZywgUmVzb3VyY2VQYWdlPigpO1xuXG4vKipcbiAqIEEgZ2VuZXJpYyByZXNvdXJjZTogZ2l2ZW4gc29tZSBtZXRob2QgdG8gYXN5bmNocm9ub3VzbHkgbG9hZCBhIHZhbHVlIC0gdGhlIGxvYWRlcigpXG4gKiBhcmd1bWVudCAtIGl0IGFsbG93cyBhY2Nlc3NpbmcgdGhlIHN0YXRlIG9mIHRoZSByZXNvdXJjZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlc291cmNlUGFnZSB7XG4gIHByaXZhdGUgX19lcnJvcjogRXJyb3IgfCBudWxsO1xuXG4gIHByaXZhdGUgX19sb2FkZXI6IFJlc291cmNlUGFnZUxvYWRlcjtcblxuICBwcml2YXRlIF9fcHJvbWlzZTogUHJvbWlzZTxSZXNvdXJjZVBhZ2VSZXR1cm4+IHwgbnVsbDtcblxuICBwcml2YXRlIF9fcmVzdWx0OiBSZXNvdXJjZVBhZ2VSZXR1cm4gfCBudWxsO1xuXG4gIC8vIEB0cy1leHBlY3QtZXJyb3I6IE9LXG4gIHByaXZhdGUgX19tb2R1bGVJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihsb2FkZXI6IFJlc291cmNlUGFnZUxvYWRlciwgbW9kdWxlSWQ6IHN0cmluZykge1xuICAgIHRoaXMuX19lcnJvciA9IG51bGw7XG4gICAgdGhpcy5fX2xvYWRlciA9IGxvYWRlcjtcbiAgICB0aGlzLl9fbW9kdWxlSWQgPSBtb2R1bGVJZDtcbiAgICB0aGlzLl9fcHJvbWlzZSA9IG51bGw7XG4gICAgdGhpcy5fX3Jlc3VsdCA9IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIHJlc291cmNlIGlmIG5lY2Vzc2FyeS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb2FkKCk6IFByb21pc2U8UmVzb3VyY2VQYWdlUmV0dXJuPiB7XG4gICAgbGV0IHByb21pc2UgPSB0aGlzLl9fcHJvbWlzZTtcbiAgICBpZiAocHJvbWlzZSA9PSBudWxsKSB7XG4gICAgICBwcm9taXNlID0gdGhpcy5fX2xvYWQoKVxuICAgICAgICAudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogT0tcbiAgICAgICAgICBpZiAocmVzdWx0LmRlZmF1bHQgIT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogT0tcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmRlZmF1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX19yZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuX19lcnJvciA9IGVycm9yO1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuX19wcm9taXNlID0gcHJvbWlzZTtcbiAgICB9XG4gICAgcmV0dXJuIHByb21pc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcmVzdWx0LCBpZiBhdmFpbGFibGUuIFRoaXMgY2FuIGJlIHVzZWZ1bCB0byBjaGVjayBpZiB0aGUgdmFsdWVcbiAgICogaXMgcmVzb2x2ZWQgeWV0LlxuICAgKi9cbiAgcHVibGljIGdldCgpOiBSZXNvdXJjZVBhZ2VSZXR1cm4gfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLl9fcmVzdWx0ICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLl9fcmVzdWx0O1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBpcyB0aGUga2V5IG1ldGhvZCBmb3IgaW50ZWdyYXRpbmcgd2l0aCBSZWFjdCBTdXNwZW5zZS4gUmVhZCB3aWxsOlxuICAgKiAtIFwiU3VzcGVuZFwiIGlmIHRoZSByZXNvdXJjZSBpcyBzdGlsbCBwZW5kaW5nIChjdXJyZW50bHkgaW1wbGVtZW50ZWQgYXNcbiAgICogICB0aHJvd2luZyBhIFByb21pc2UsIHRob3VnaCB0aGlzIGlzIHN1YmplY3QgdG8gY2hhbmdlIGluIGZ1dHVyZVxuICAgKiAgIHZlcnNpb25zIG9mIFJlYWN0KVxuICAgKiAtIFRocm93IGFuIGVycm9yIGlmIHRoZSByZXNvdXJjZSBmYWlsZWQgdG8gbG9hZC5cbiAgICogLSBSZXR1cm4gdGhlIGRhdGEgb2YgdGhlIHJlc291cmNlIGlmIGF2YWlsYWJsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkKCk6IFJlc291cmNlUGFnZVJldHVybiB8IFByb21pc2U8UmVzb3VyY2VQYWdlUmV0dXJuPiB8IEVycm9yIHtcbiAgICBpZiAodGhpcy5fX3Jlc3VsdCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5fX3Jlc3VsdDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fX2Vycm9yICE9IG51bGwpIHtcbiAgICAgIHRocm93IHRoaXMuX19lcnJvcjtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9vbmx5LXRocm93LWVycm9yXG4gICAgICB0aHJvdyB0aGlzLl9fcHJvbWlzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9fbG9hZCgpOiBQcm9taXNlPFJlc291cmNlUGFnZVJldHVybj4ge1xuICAgIGNvbnN0IHsgX19sb2FkZXI6IGxvYWRlciB9ID0gdGhpcztcblxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobG9hZGVyKCkpO1xuICB9XG59XG5cbi8qKlxuICogQSBoZWxwZXIgbWV0aG9kIHRvIGNyZWF0ZSBhIHJlc291cmNlLCBpbnRlbmRlZCBmb3IgZHluYW1pY2FsbHkgbG9hZGluZyBjb2RlLlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGBcbiAqICAgIC8vIEJlZm9yZSByZW5kZXJpbmcsIGllIGluIGFuIGV2ZW50IGhhbmRsZXI6XG4gKiAgICBjb25zdCByZXNvdXJjZSA9IEpTUmVzb3VyY2UoJ0ZvbycsICgpID0+IGltcG9ydCgnLi9Gb28uanMpKTtcbiAqICAgIHJlc291cmNlLmxvYWQoKTtcbiAqXG4gKiAgICAvLyBpbiBhIFJlYWN0IGNvbXBvbmVudDpcbiAqICAgIGNvbnN0IEZvbyA9IHJlc291cmNlLnJlYWQoKTtcbiAqICAgIHJldHVybiA8Rm9vIC4uLiAvPjtcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBtb2R1bGVJZCBBIGdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2UgdXNlZCBmb3IgY2FjaGluZ1xuICogQHBhcmFtIGxvYWRlciBBIG1ldGhvZCB0byBsb2FkIHRoZSByZXNvdXJjZSdzIGRhdGEgaWYgbmVjZXNzYXJ5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZVBhZ2UoXG4gIG1vZHVsZUlkOiBzdHJpbmcsXG4gIGxvYWRlcjogUmVzb3VyY2VQYWdlTG9hZGVyLFxuKTogUmVzb3VyY2VQYWdlIHwgbnVsbCB7XG4gIGxldCByZXNvdXJjZSA9IHJlc291cmNlUGFnZU1hcC5nZXQobW9kdWxlSWQpO1xuICBpZiAocmVzb3VyY2UgPT0gbnVsbCkge1xuICAgIHJlc291cmNlID0gbmV3IFJlc291cmNlUGFnZShsb2FkZXIsIG1vZHVsZUlkKTtcbiAgICByZXNvdXJjZVBhZ2VNYXAuc2V0KG1vZHVsZUlkLCByZXNvdXJjZSk7XG4gIH1cbiAgcmV0dXJuIHJlc291cmNlO1xufVxuIl19
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type MatchFunction, type ParamData } from 'path-to-regexp';
|
|
2
|
+
import type { FlatRouteInput, Redirect, Route } from './types.js';
|
|
3
|
+
export declare class FlatRoute<TParams extends ParamData> {
|
|
4
|
+
path: string;
|
|
5
|
+
routes: Route<any, any>[];
|
|
6
|
+
matchFunction: MatchFunction<TParams>;
|
|
7
|
+
redirectTo?: string;
|
|
8
|
+
constructor(input: FlatRouteInput<TParams>);
|
|
9
|
+
}
|
|
10
|
+
export declare function isRedirect(route: Route<any, any> | Redirect): route is Redirect;
|
|
11
|
+
export declare function buildRoute(routeConfig: (Route<any, any> | Redirect)[], parentRoutes?: Route<any, any>[], prefix?: string): FlatRoute<any>[];
|
|
12
|
+
export declare function buildRoutes(routeConfig: Route<any, any>[]): FlatRoute<any>[];
|
|
13
|
+
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAElE,qBAAa,SAAS,CAAC,OAAO,SAAS,SAAS;IACvC,IAAI,EAAE,MAAM,CAAC;IAEb,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IAE1B,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAEtC,UAAU,CAAC,EAAE,MAAM,CAAC;gBAER,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC;CAOlD;AAKD,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ,GAChC,KAAK,IAAI,QAAQ,CAGnB;AAKD,wBAAgB,UAAU,CACxB,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,EAAE,EAC3C,YAAY,GAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAO,EACpC,MAAM,SAAK,GACV,SAAS,CAAC,GAAG,CAAC,EAAE,CAuDlB;AAKD,wBAAgB,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAE5E"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { match } from 'path-to-regexp';
|
|
2
|
+
export class FlatRoute {
|
|
3
|
+
path;
|
|
4
|
+
routes;
|
|
5
|
+
matchFunction;
|
|
6
|
+
redirectTo;
|
|
7
|
+
constructor(input) {
|
|
8
|
+
const { matchFunction, path, redirectTo, routes } = input;
|
|
9
|
+
this.path = path;
|
|
10
|
+
this.redirectTo = redirectTo;
|
|
11
|
+
this.routes = routes;
|
|
12
|
+
this.matchFunction = matchFunction;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export function isRedirect(route) {
|
|
16
|
+
return route.to != null;
|
|
17
|
+
}
|
|
18
|
+
export function buildRoute(routeConfig, parentRoutes = [], prefix = '') {
|
|
19
|
+
const flatRoutes = [];
|
|
20
|
+
for (const route of routeConfig) {
|
|
21
|
+
const parts = [];
|
|
22
|
+
if (prefix !== '') {
|
|
23
|
+
parts.push(prefix);
|
|
24
|
+
}
|
|
25
|
+
if (route.path != null && route.path !== '' && route.path !== '/') {
|
|
26
|
+
parts.push(route.path);
|
|
27
|
+
}
|
|
28
|
+
const newPath = parts.join('/');
|
|
29
|
+
const { children } = route;
|
|
30
|
+
if (!isRedirect(route) && children != null) {
|
|
31
|
+
const routes = buildRoute(children, [...parentRoutes, route], newPath);
|
|
32
|
+
flatRoutes.push(...routes);
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
const matchFunction = match(`/${newPath}`, {
|
|
36
|
+
trailing: false,
|
|
37
|
+
});
|
|
38
|
+
const path = `/${newPath}`;
|
|
39
|
+
if (isRedirect(route)) {
|
|
40
|
+
let redirectTo = route.to;
|
|
41
|
+
if (!redirectTo.startsWith('/')) {
|
|
42
|
+
redirectTo = `${path}/${redirectTo}`;
|
|
43
|
+
}
|
|
44
|
+
flatRoutes.push(new FlatRoute({
|
|
45
|
+
path,
|
|
46
|
+
redirectTo,
|
|
47
|
+
matchFunction,
|
|
48
|
+
routes: [...parentRoutes],
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
flatRoutes.push(new FlatRoute({
|
|
53
|
+
path,
|
|
54
|
+
matchFunction,
|
|
55
|
+
routes: [...parentRoutes, route],
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return flatRoutes;
|
|
60
|
+
}
|
|
61
|
+
export function buildRoutes(routeConfig) {
|
|
62
|
+
return buildRoute(routeConfig);
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQXNDLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0UsTUFBTSxPQUFPLFNBQVM7SUFDYixJQUFJLENBQVM7SUFFYixNQUFNLENBQW9CO0lBRTFCLGFBQWEsQ0FBeUI7SUFFdEMsVUFBVSxDQUFVO0lBRTNCLFlBQW1CLEtBQThCO1FBQy9DLE1BQU0sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDMUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBS0QsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsS0FBaUM7SUFHakMsT0FBUSxLQUFrQixDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUM7QUFDeEMsQ0FBQztBQUtELE1BQU0sVUFBVSxVQUFVLENBQ3hCLFdBQTJDLEVBQzNDLGVBQWtDLEVBQUUsRUFDcEMsTUFBTSxHQUFHLEVBQUU7SUFFWCxNQUFNLFVBQVUsR0FBcUIsRUFBRSxDQUFDO0lBRXhDLEtBQUssTUFBTSxLQUFLLElBQUksV0FBVyxFQUFFLENBQUM7UUFDaEMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksTUFBTSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2xCLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckIsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNsRSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVoQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsS0FBd0IsQ0FBQztRQUU5QyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMzQyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDdkUsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBRTNCLFNBQVM7UUFDWCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksT0FBTyxFQUFFLEVBQUU7WUFDekMsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxJQUFJLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUzQixJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RCLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFFMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsVUFBVSxHQUFHLEdBQUcsSUFBSSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ3ZDLENBQUM7WUFDRCxVQUFVLENBQUMsSUFBSSxDQUNiLElBQUksU0FBUyxDQUFDO2dCQUNaLElBQUk7Z0JBQ0osVUFBVTtnQkFDVixhQUFhO2dCQUNiLE1BQU0sRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDO2FBQzFCLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixVQUFVLENBQUMsSUFBSSxDQUNiLElBQUksU0FBUyxDQUFDO2dCQUNaLElBQUk7Z0JBQ0osYUFBYTtnQkFDYixNQUFNLEVBQUUsQ0FBQyxHQUFHLFlBQVksRUFBRSxLQUFLLENBQUM7YUFDakMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFLRCxNQUFNLFVBQVUsV0FBVyxDQUFDLFdBQThCO0lBQ3hELE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXRjaCwgdHlwZSBNYXRjaEZ1bmN0aW9uLCB0eXBlIFBhcmFtRGF0YSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcblxuaW1wb3J0IHR5cGUgeyBGbGF0Um91dGVJbnB1dCwgUmVkaXJlY3QsIFJvdXRlIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBGbGF0Um91dGU8VFBhcmFtcyBleHRlbmRzIFBhcmFtRGF0YT4ge1xuICBwdWJsaWMgcGF0aDogc3RyaW5nO1xuXG4gIHB1YmxpYyByb3V0ZXM6IFJvdXRlPGFueSwgYW55PltdO1xuXG4gIHB1YmxpYyBtYXRjaEZ1bmN0aW9uOiBNYXRjaEZ1bmN0aW9uPFRQYXJhbXM+O1xuXG4gIHB1YmxpYyByZWRpcmVjdFRvPzogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihpbnB1dDogRmxhdFJvdXRlSW5wdXQ8VFBhcmFtcz4pIHtcbiAgICBjb25zdCB7IG1hdGNoRnVuY3Rpb24sIHBhdGgsIHJlZGlyZWN0VG8sIHJvdXRlcyB9ID0gaW5wdXQ7XG4gICAgdGhpcy5wYXRoID0gcGF0aDtcbiAgICB0aGlzLnJlZGlyZWN0VG8gPSByZWRpcmVjdFRvO1xuICAgIHRoaXMucm91dGVzID0gcm91dGVzO1xuICAgIHRoaXMubWF0Y2hGdW5jdGlvbiA9IG1hdGNoRnVuY3Rpb247XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgcm91dGUgaXMgYSByZWRpcmVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmVkaXJlY3QoXG4gIHJvdXRlOiBSb3V0ZTxhbnksIGFueT4gfCBSZWRpcmVjdCxcbik6IHJvdXRlIGlzIFJlZGlyZWN0IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb25cbiAgcmV0dXJuIChyb3V0ZSBhcyBSZWRpcmVjdCkudG8gIT0gbnVsbDtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBmbGF0IHJvdXRlIGxpc3QgZnJvbSB0aGUgZ2l2ZW4gcm91dGUgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUm91dGUoXG4gIHJvdXRlQ29uZmlnOiAoUm91dGU8YW55LCBhbnk+IHwgUmVkaXJlY3QpW10sXG4gIHBhcmVudFJvdXRlczogUm91dGU8YW55LCBhbnk+W10gPSBbXSxcbiAgcHJlZml4ID0gJycsXG4pOiBGbGF0Um91dGU8YW55PltdIHtcbiAgY29uc3QgZmxhdFJvdXRlczogRmxhdFJvdXRlPGFueT5bXSA9IFtdO1xuXG4gIGZvciAoY29uc3Qgcm91dGUgb2Ygcm91dGVDb25maWcpIHtcbiAgICBjb25zdCBwYXJ0cyA9IFtdO1xuICAgIGlmIChwcmVmaXggIT09ICcnKSB7XG4gICAgICBwYXJ0cy5wdXNoKHByZWZpeCk7XG4gICAgfVxuICAgIGlmIChyb3V0ZS5wYXRoICE9IG51bGwgJiYgcm91dGUucGF0aCAhPT0gJycgJiYgcm91dGUucGF0aCAhPT0gJy8nKSB7XG4gICAgICBwYXJ0cy5wdXNoKHJvdXRlLnBhdGgpO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld1BhdGggPSBwYXJ0cy5qb2luKCcvJyk7XG5cbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSByb3V0ZSBhcyBSb3V0ZTxhbnksIGFueT47XG5cbiAgICBpZiAoIWlzUmVkaXJlY3Qocm91dGUpICYmIGNoaWxkcmVuICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IHJvdXRlcyA9IGJ1aWxkUm91dGUoY2hpbGRyZW4sIFsuLi5wYXJlbnRSb3V0ZXMsIHJvdXRlXSwgbmV3UGF0aCk7XG4gICAgICBmbGF0Um91dGVzLnB1c2goLi4ucm91dGVzKTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb250aW51ZVxuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgbWF0Y2hGdW5jdGlvbiA9IG1hdGNoKGAvJHtuZXdQYXRofWAsIHtcbiAgICAgIHRyYWlsaW5nOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHBhdGggPSBgLyR7bmV3UGF0aH1gO1xuXG4gICAgaWYgKGlzUmVkaXJlY3Qocm91dGUpKSB7XG4gICAgICBsZXQgcmVkaXJlY3RUbyA9IHJvdXRlLnRvO1xuXG4gICAgICBpZiAoIXJlZGlyZWN0VG8uc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgIHJlZGlyZWN0VG8gPSBgJHtwYXRofS8ke3JlZGlyZWN0VG99YDtcbiAgICAgIH1cbiAgICAgIGZsYXRSb3V0ZXMucHVzaChcbiAgICAgICAgbmV3IEZsYXRSb3V0ZSh7XG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICByZWRpcmVjdFRvLFxuICAgICAgICAgIG1hdGNoRnVuY3Rpb24sXG4gICAgICAgICAgcm91dGVzOiBbLi4ucGFyZW50Um91dGVzXSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBmbGF0Um91dGVzLnB1c2goXG4gICAgICAgIG5ldyBGbGF0Um91dGUoe1xuICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgbWF0Y2hGdW5jdGlvbixcbiAgICAgICAgICByb3V0ZXM6IFsuLi5wYXJlbnRSb3V0ZXMsIHJvdXRlXSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmbGF0Um91dGVzO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhIGZsYXQgcm91dGUgbGlzdCBmcm9tIHRoZSBnaXZlbiByb3V0ZSBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFJvdXRlcyhyb3V0ZUNvbmZpZzogUm91dGU8YW55LCBhbnk+W10pOiBGbGF0Um91dGU8YW55PltdIHtcbiAgcmV0dXJuIGJ1aWxkUm91dGUocm91dGVDb25maWcpO1xufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpRedirect.d.ts","sourceRoot":"","sources":["../../../src/errors/HttpRedirect.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,KAAK;IACtC,UAAU,EAAE,MAAM,CAAC;IAEnB,UAAU,EAAE,MAAM,CAAC;gBAEP,UAAU,EAAE,MAAM,EAAE,UAAU,SAAM;CAUxD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export default class HttpRedirect extends Error {
|
|
2
|
+
redirectTo;
|
|
3
|
+
statusCode;
|
|
4
|
+
constructor(redirectTo, statusCode = 302) {
|
|
5
|
+
super('HttpRedirect');
|
|
6
|
+
this.redirectTo = redirectTo;
|
|
7
|
+
this.statusCode = statusCode;
|
|
8
|
+
Object.setPrototypeOf(this, HttpRedirect.prototype);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFJlZGlyZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Vycm9ycy9IdHRwUmVkaXJlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE9BQU8sT0FBTyxZQUFhLFNBQVEsS0FBSztJQUN0QyxVQUFVLENBQVM7SUFFbkIsVUFBVSxDQUFTO0lBRTFCLFlBQW1CLFVBQWtCLEVBQUUsVUFBVSxHQUFHLEdBQUc7UUFDckQsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXRCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBSTdCLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBjbGFzcyBIdHRwUmVkaXJlY3QgZXh0ZW5kcyBFcnJvciB7XG4gIHB1YmxpYyByZWRpcmVjdFRvOiBzdHJpbmc7XG5cbiAgcHVibGljIHN0YXR1c0NvZGU6IG51bWJlcjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocmVkaXJlY3RUbzogc3RyaW5nLCBzdGF0dXNDb2RlID0gMzAyKSB7XG4gICAgc3VwZXIoJ0h0dHBSZWRpcmVjdCcpO1xuXG4gICAgdGhpcy5yZWRpcmVjdFRvID0gcmVkaXJlY3RUbztcbiAgICB0aGlzLnN0YXR1c0NvZGUgPSBzdGF0dXNDb2RlO1xuXG4gICAgLy8gRml4IGZvciBpbnN0YW5jZW9mIGJ1ZzpcbiAgICAvLyBodHRwczovL3d3dy5kYW5ueWd1by5jb20vYmxvZy9ob3ctdG8tZml4LWluc3RhbmNlb2Ytbm90LXdvcmtpbmctZm9yLWN1c3RvbS1lcnJvcnMtaW4tdHlwZXNjcmlwdC9cbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSHR0cFJlZGlyZWN0LnByb3RvdHlwZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { default as HttpRedirect } from './HttpRedirect.js';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXJyb3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLElBQUksWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IGFzIEh0dHBSZWRpcmVjdCB9IGZyb20gJy4vSHR0cFJlZGlyZWN0LmpzJztcbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { History, HistoryListener, HistoryLocation } from './types.js';
|
|
2
|
+
export declare function createPath(location: HistoryLocation): string;
|
|
3
|
+
export default class BrowserHistory implements History {
|
|
4
|
+
private __listeners;
|
|
5
|
+
constructor();
|
|
6
|
+
get location(): Location;
|
|
7
|
+
init(): void;
|
|
8
|
+
set(location: HistoryLocation): void;
|
|
9
|
+
push(location: HistoryLocation): void;
|
|
10
|
+
unsubscribe(listener: HistoryListener): void;
|
|
11
|
+
subscribe(listener: HistoryListener): () => void;
|
|
12
|
+
private __fire;
|
|
13
|
+
private __doFire;
|
|
14
|
+
private __subscribe;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=BrowserHistory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BrowserHistory.d.ts","sourceRoot":"","sources":["../../../src/history/BrowserHistory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAK5E,wBAAgB,UAAU,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAI5D;AAED,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,OAAO;IACpD,OAAO,CAAC,WAAW,CAAyB;;IAO5C,IAAW,QAAQ,IAAI,QAAQ,CAI9B;IAEM,IAAI,IAAI,IAAI;IAIZ,GAAG,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAOpC,IAAI,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAOrC,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAM5C,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;IAOvD,OAAO,CAAC,MAAM,CAOZ;IAEF,OAAO,CAAC,QAAQ,CAOd;IAEF,OAAO,CAAC,WAAW;CAGpB"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export function createPath(location) {
|
|
2
|
+
const { pathname, search = '', hash = '' } = location;
|
|
3
|
+
return `${pathname}${search}${hash}`;
|
|
4
|
+
}
|
|
5
|
+
export default class BrowserHistory {
|
|
6
|
+
__listeners = [];
|
|
7
|
+
constructor() {
|
|
8
|
+
this.init();
|
|
9
|
+
}
|
|
10
|
+
get location() {
|
|
11
|
+
return {
|
|
12
|
+
...window.location,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
init() {
|
|
16
|
+
this.__subscribe();
|
|
17
|
+
}
|
|
18
|
+
set(location) {
|
|
19
|
+
const path = createPath(location);
|
|
20
|
+
window.history.replaceState({}, '', path);
|
|
21
|
+
this.__doFire(true);
|
|
22
|
+
}
|
|
23
|
+
push(location) {
|
|
24
|
+
const path = createPath(location);
|
|
25
|
+
window.history.pushState({}, '', path);
|
|
26
|
+
this.__fire();
|
|
27
|
+
}
|
|
28
|
+
unsubscribe(listener) {
|
|
29
|
+
this.__listeners = this.__listeners.filter((item) => {
|
|
30
|
+
return item !== listener;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
subscribe(listener) {
|
|
34
|
+
this.__listeners.push(listener);
|
|
35
|
+
return () => {
|
|
36
|
+
this.unsubscribe(listener);
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
__fire = () => {
|
|
40
|
+
setTimeout(() => {
|
|
41
|
+
const { location } = this;
|
|
42
|
+
this.__listeners.forEach((listener) => {
|
|
43
|
+
listener(location, false);
|
|
44
|
+
});
|
|
45
|
+
}, 0);
|
|
46
|
+
};
|
|
47
|
+
__doFire = (forceRerender = false) => {
|
|
48
|
+
setTimeout(() => {
|
|
49
|
+
const { location } = this;
|
|
50
|
+
this.__listeners.forEach((listener) => {
|
|
51
|
+
listener(location, forceRerender);
|
|
52
|
+
});
|
|
53
|
+
}, 0);
|
|
54
|
+
};
|
|
55
|
+
__subscribe() {
|
|
56
|
+
window.addEventListener('popstate', this.__fire);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJvd3Nlckhpc3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGlzdG9yeS9Ccm93c2VySGlzdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLFVBQVUsVUFBVSxDQUFDLFFBQXlCO0lBQ2xELE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRXRELE9BQU8sR0FBRyxRQUFRLEdBQUcsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDO0FBQ3ZDLENBQUM7QUFFRCxNQUFNLENBQUMsT0FBTyxPQUFPLGNBQWM7SUFDekIsV0FBVyxHQUFzQixFQUFFLENBQUM7SUFFNUM7UUFDRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBR0QsSUFBVyxRQUFRO1FBQ2pCLE9BQU87WUFDTCxHQUFHLE1BQU0sQ0FBQyxRQUFRO1NBQ25CLENBQUM7SUFDSixDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU0sR0FBRyxDQUFDLFFBQXlCO1FBQ2xDLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVsQyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVNLElBQUksQ0FBQyxRQUF5QjtRQUNuQyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxRQUF5QjtRQUMxQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbEQsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFNBQVMsQ0FBQyxRQUF5QjtRQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxPQUFPLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVPLE1BQU0sR0FBRyxHQUFTLEVBQUU7UUFDMUIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDcEMsUUFBUSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUMsQ0FBQztJQUVNLFFBQVEsR0FBRyxDQUFDLGFBQWEsR0FBRyxLQUFLLEVBQUUsRUFBRTtRQUMzQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQztZQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNwQyxRQUFRLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQyxDQUFDO0lBRU0sV0FBVztRQUNqQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEhpc3RvcnksIEhpc3RvcnlMaXN0ZW5lciwgSGlzdG9yeUxvY2F0aW9uIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHBhdGggZnJvbSB0aGUgZ2l2ZW4gbG9jYXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhdGgobG9jYXRpb246IEhpc3RvcnlMb2NhdGlvbik6IHN0cmluZyB7XG4gIGNvbnN0IHsgcGF0aG5hbWUsIHNlYXJjaCA9ICcnLCBoYXNoID0gJycgfSA9IGxvY2F0aW9uO1xuXG4gIHJldHVybiBgJHtwYXRobmFtZX0ke3NlYXJjaH0ke2hhc2h9YDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQnJvd3Nlckhpc3RvcnkgaW1wbGVtZW50cyBIaXN0b3J5IHtcbiAgcHJpdmF0ZSBfX2xpc3RlbmVyczogSGlzdG9yeUxpc3RlbmVyW10gPSBbXTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pbml0KCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2xhc3MtbWV0aG9kcy11c2UtdGhpc1xuICBwdWJsaWMgZ2V0IGxvY2F0aW9uKCk6IExvY2F0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ud2luZG93LmxvY2F0aW9uLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgaW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9fc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0KGxvY2F0aW9uOiBIaXN0b3J5TG9jYXRpb24pOiB2b2lkIHtcbiAgICBjb25zdCBwYXRoID0gY3JlYXRlUGF0aChsb2NhdGlvbik7XG5cbiAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sICcnLCBwYXRoKTtcbiAgICB0aGlzLl9fZG9GaXJlKHRydWUpO1xuICB9XG5cbiAgcHVibGljIHB1c2gobG9jYXRpb246IEhpc3RvcnlMb2NhdGlvbik6IHZvaWQge1xuICAgIGNvbnN0IHBhdGggPSBjcmVhdGVQYXRoKGxvY2F0aW9uKTtcblxuICAgIHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSh7fSwgJycsIHBhdGgpO1xuICAgIHRoaXMuX19maXJlKCk7XG4gIH1cblxuICBwdWJsaWMgdW5zdWJzY3JpYmUobGlzdGVuZXI6IEhpc3RvcnlMaXN0ZW5lcik6IHZvaWQge1xuICAgIHRoaXMuX19saXN0ZW5lcnMgPSB0aGlzLl9fbGlzdGVuZXJzLmZpbHRlcigoaXRlbSkgPT4ge1xuICAgICAgcmV0dXJuIGl0ZW0gIT09IGxpc3RlbmVyO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN1YnNjcmliZShsaXN0ZW5lcjogSGlzdG9yeUxpc3RlbmVyKTogKCkgPT4gdm9pZCB7XG4gICAgdGhpcy5fX2xpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgdGhpcy51bnN1YnNjcmliZShsaXN0ZW5lcik7XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgX19maXJlID0gKCk6IHZvaWQgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgeyBsb2NhdGlvbiB9ID0gdGhpcztcbiAgICAgIHRoaXMuX19saXN0ZW5lcnMuZm9yRWFjaCgobGlzdGVuZXIpID0+IHtcbiAgICAgICAgbGlzdGVuZXIobG9jYXRpb24sIGZhbHNlKTtcbiAgICAgIH0pO1xuICAgIH0sIDApO1xuICB9O1xuXG4gIHByaXZhdGUgX19kb0ZpcmUgPSAoZm9yY2VSZXJlbmRlciA9IGZhbHNlKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCB7IGxvY2F0aW9uIH0gPSB0aGlzO1xuICAgICAgdGhpcy5fX2xpc3RlbmVycy5mb3JFYWNoKChsaXN0ZW5lcikgPT4ge1xuICAgICAgICBsaXN0ZW5lcihsb2NhdGlvbiwgZm9yY2VSZXJlbmRlcik7XG4gICAgICB9KTtcbiAgICB9LCAwKTtcbiAgfTtcblxuICBwcml2YXRlIF9fc3Vic2NyaWJlKCkge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIHRoaXMuX19maXJlKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/history/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,mBAAmB,YAAY,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { default as BrowserHistory } from './BrowserHistory.js';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGlzdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxJQUFJLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBCcm93c2VySGlzdG9yeSB9IGZyb20gJy4vQnJvd3Nlckhpc3RvcnkuanMnO1xuZXhwb3J0IHR5cGUgKiBmcm9tICcuL3R5cGVzLmpzJztcbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type HistoryListener = (location: Location, forceRerender: boolean) => void;
|
|
2
|
+
export type HistoryLocation = {
|
|
3
|
+
hash?: string;
|
|
4
|
+
pathname: string;
|
|
5
|
+
search?: string;
|
|
6
|
+
};
|
|
7
|
+
export interface History {
|
|
8
|
+
init: () => void;
|
|
9
|
+
subscribe: (listener: HistoryListener) => () => void;
|
|
10
|
+
push: (location: HistoryLocation) => void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/history/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,CAC5B,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,OAAO,KACnB,IAAI,CAAC;AACV,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,SAAS,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,MAAM,IAAI,CAAC;IACrD,IAAI,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;CAC3C"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGlzdG9yeS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgSGlzdG9yeUxpc3RlbmVyID0gKFxuICBsb2NhdGlvbjogTG9jYXRpb24sXG4gIGZvcmNlUmVyZW5kZXI6IGJvb2xlYW4sXG4pID0+IHZvaWQ7XG5leHBvcnQgdHlwZSBIaXN0b3J5TG9jYXRpb24gPSB7XG4gIGhhc2g/OiBzdHJpbmc7XG4gIHBhdGhuYW1lOiBzdHJpbmc7XG4gIHNlYXJjaD86IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGlzdG9yeSB7XG4gIGluaXQ6ICgpID0+IHZvaWQ7XG4gIHN1YnNjcmliZTogKGxpc3RlbmVyOiBIaXN0b3J5TGlzdGVuZXIpID0+ICgpID0+IHZvaWQ7XG4gIHB1c2g6IChsb2NhdGlvbjogSGlzdG9yeUxvY2F0aW9uKSA9PiB2b2lkO1xufVxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './errors/index.js';
|
|
2
|
+
export * from './history/index.js';
|
|
3
|
+
export * from './routing/index.js';
|
|
4
|
+
export * from './builder.js';
|
|
5
|
+
export * from './ResourcePage.js';
|
|
6
|
+
export * from './tools.js';
|
|
7
|
+
export type * from './types.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,mBAAmB,YAAY,CAAC"}
|
package/lib/esm/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './errors/index.js';
|
|
2
|
+
export * from './history/index.js';
|
|
3
|
+
export * from './routing/index.js';
|
|
4
|
+
export * from './builder.js';
|
|
5
|
+
export * from './ResourcePage.js';
|
|
6
|
+
export * from './tools.js';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXJyb3JzL2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vaGlzdG9yeS9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3JvdXRpbmcvaW5kZXguanMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2J1aWxkZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9SZXNvdXJjZVBhZ2UuanMnO1xuZXhwb3J0ICogZnJvbSAnLi90b29scy5qcyc7XG5leHBvcnQgdHlwZSAqIGZyb20gJy4vdHlwZXMuanMnO1xuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React, { type HTMLAttributeAnchorTarget, type ReactNode } from 'react';
|
|
2
|
+
import type { BrowserHistory, HistoryLocation } from '../history/index.js';
|
|
3
|
+
export declare function isCurrentPathname(exact: boolean, history: BrowserHistory | undefined, pathname: string): boolean;
|
|
4
|
+
type Props = {
|
|
5
|
+
activeClassName?: string;
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
className?: string;
|
|
8
|
+
exact?: boolean;
|
|
9
|
+
preloadOnMouseEnter?: boolean;
|
|
10
|
+
preloadOnMouseDown?: boolean;
|
|
11
|
+
href?: string;
|
|
12
|
+
isDisabled?: boolean;
|
|
13
|
+
onClick?: React.MouseEventHandler<HTMLAnchorElement>;
|
|
14
|
+
onFocus?: React.FocusEventHandler<HTMLAnchorElement>;
|
|
15
|
+
onMouseOver?: React.MouseEventHandler<HTMLAnchorElement>;
|
|
16
|
+
target?: HTMLAttributeAnchorTarget;
|
|
17
|
+
to?: HistoryLocation | string;
|
|
18
|
+
};
|
|
19
|
+
declare const Link: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLAnchorElement>>;
|
|
20
|
+
export default Link;
|
|
21
|
+
//# sourceMappingURL=Link.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/routing/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,KAAK,yBAAyB,EAE9B,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAW3E,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAmBT;AAED,KAAK,KAAK,GAAG;IACX,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACrD,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACrD,WAAW,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACzD,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,EAAE,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;CAC/B,CAAC;AAMF,QAAA,MAAM,IAAI,iFAuIR,CAAC;AAEH,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React, { forwardRef, useEffect, useMemo, } from 'react';
|
|
3
|
+
import { cx } from './../tools/index.js';
|
|
4
|
+
import RoutingContext from './RoutingContext.js';
|
|
5
|
+
const { useCallback, useContext } = React;
|
|
6
|
+
export function isCurrentPathname(exact, history, pathname) {
|
|
7
|
+
if (history == null) {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
const resolvedUrl = new URL(pathname, document.location);
|
|
11
|
+
const resolvedPathname = resolvedUrl.pathname;
|
|
12
|
+
if (exact && history.location.pathname === resolvedPathname) {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
if (!exact && history.location.pathname.startsWith(resolvedPathname)) {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
const Link = forwardRef((props, ref) => {
|
|
21
|
+
const router = useContext(RoutingContext);
|
|
22
|
+
const { activeClassName, children, className, exact = false, isDisabled = false, onClick, onFocus, onMouseOver, preloadOnMouseEnter = false, preloadOnMouseDown = true, target, to, href, } = props;
|
|
23
|
+
const pathname = useMemo(() => {
|
|
24
|
+
if (isDisabled) {
|
|
25
|
+
return '#';
|
|
26
|
+
}
|
|
27
|
+
let newHref = href;
|
|
28
|
+
if (newHref == null) {
|
|
29
|
+
if (typeof to === 'string') {
|
|
30
|
+
newHref = to;
|
|
31
|
+
}
|
|
32
|
+
else if (to?.pathname != null) {
|
|
33
|
+
newHref = to.pathname;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
newHref ??= '#';
|
|
37
|
+
return newHref;
|
|
38
|
+
}, [href, isDisabled, to]);
|
|
39
|
+
const initialIsActive = isCurrentPathname(exact, router?.history, pathname);
|
|
40
|
+
const [isActive, setIsActive] = React.useState(initialIsActive);
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
const onChange = () => {
|
|
43
|
+
const newIsActive = isCurrentPathname(exact, router?.history, pathname);
|
|
44
|
+
setIsActive(newIsActive);
|
|
45
|
+
};
|
|
46
|
+
if (router == null) {
|
|
47
|
+
return () => { };
|
|
48
|
+
}
|
|
49
|
+
router.history.subscribe(onChange);
|
|
50
|
+
return () => {
|
|
51
|
+
router.history.unsubscribe(onChange);
|
|
52
|
+
};
|
|
53
|
+
}, [exact, pathname, router]);
|
|
54
|
+
const classNames = [className];
|
|
55
|
+
if (isActive) {
|
|
56
|
+
classNames.push(activeClassName);
|
|
57
|
+
}
|
|
58
|
+
const handleClick = useCallback((event) => {
|
|
59
|
+
if (!isDisabled && typeof onClick === 'function') {
|
|
60
|
+
onClick(event);
|
|
61
|
+
}
|
|
62
|
+
if (event.defaultPrevented ||
|
|
63
|
+
event.metaKey ||
|
|
64
|
+
event.altKey ||
|
|
65
|
+
event.ctrlKey ||
|
|
66
|
+
event.shiftKey ||
|
|
67
|
+
event.button !== 0 ||
|
|
68
|
+
(target != null && target !== '_self')) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
event.preventDefault();
|
|
72
|
+
if (router == null || isDisabled) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
router.history.push({
|
|
76
|
+
pathname,
|
|
77
|
+
});
|
|
78
|
+
}, [isDisabled, onClick, pathname, router, target]);
|
|
79
|
+
const handleMouseEnter = useCallback(() => {
|
|
80
|
+
if (router == null || isDisabled) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (preloadOnMouseEnter) {
|
|
84
|
+
router.preload(pathname);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
router.preloadCode(pathname);
|
|
88
|
+
}
|
|
89
|
+
}, [router, isDisabled, preloadOnMouseEnter, pathname]);
|
|
90
|
+
const handleMouseDown = useCallback(() => {
|
|
91
|
+
if (router == null || isDisabled || !preloadOnMouseDown) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
router.preload(pathname);
|
|
95
|
+
}, [router, isDisabled, preloadOnMouseDown, pathname]);
|
|
96
|
+
return (_jsx("a", { className: cx(classNames), href: pathname, onClick: handleClick, onFocus: onFocus, onMouseDown: handleMouseDown, onMouseEnter: handleMouseEnter, onMouseOver: onMouseOver, ref: ref, target: target, children: children }));
|
|
97
|
+
});
|
|
98
|
+
export default Link;
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yb3V0aW5nL0xpbmsudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssRUFBRSxFQUlaLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxHQUNSLE1BQU0sT0FBTyxDQUFDO0FBSWYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXpDLE9BQU8sY0FBYyxNQUFNLHFCQUFxQixDQUFDO0FBRWpELE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLEdBQUcsS0FBSyxDQUFDO0FBSzFDLE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsS0FBYyxFQUNkLE9BQW1DLEVBQ25DLFFBQWdCO0lBRWhCLElBQUksT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3BCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUdELE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFekQsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO0lBRTlDLElBQUksS0FBSyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLGdCQUFnQixFQUFFLENBQUM7UUFDNUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1FBQ3JFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQXNCRCxNQUFNLElBQUksR0FBRyxVQUFVLENBQTJCLENBQUMsS0FBWSxFQUFFLEdBQUcsRUFBRSxFQUFFO0lBQ3RFLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FB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LFlBQVksRUFBRSxnQkFBZ0IsRUFDOUIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsR0FBRyxFQUFFLEdBQUcsRUFDUixNQUFNLEVBQUUsTUFBTSxZQUViLFFBQVEsR0FDUCxDQUNMLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQztBQUVILGVBQWUsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIHR5cGUgSFRNTEF0dHJpYnV0ZUFuY2hvclRhcmdldCxcbiAgdHlwZSBNb3VzZUV2ZW50LFxuICB0eXBlIFJlYWN0Tm9kZSxcbiAgZm9yd2FyZFJlZixcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxufSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgQnJvd3Nlckhpc3RvcnksIEhpc3RvcnlMb2NhdGlvbiB9IGZyb20gJy4uL2hpc3RvcnkvaW5kZXguanMnO1xuXG5pbXBvcnQgeyBjeCB9IGZyb20gJy4vLi4vdG9vbHMvaW5kZXguanMnO1xuXG5pbXBvcnQgUm91dGluZ0NvbnRleHQgZnJvbSAnLi9Sb3V0aW5nQ29udGV4dC5qcyc7XG5cbmNvbnN0IHsgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQgfSA9IFJlYWN0O1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBjdXJyZW50IHBhdGhuYW1lIG1hdGNoZXMgdGhlIGdpdmVuIHBhdGhuYW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDdXJyZW50UGF0aG5hbWUoXG4gIGV4YWN0OiBib29sZWFuLFxuICBoaXN0b3J5OiBCcm93c2VySGlzdG9yeSB8IHVuZGVmaW5lZCxcbiAgcGF0aG5hbWU6IHN0cmluZyxcbik6IGJvb2xlYW4ge1xuICBpZiAoaGlzdG9yeSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogT0tcbiAgY29uc3QgcmVzb2x2ZWRVcmwgPSBuZXcgVVJMKHBhdGhuYW1lLCBkb2N1bWVudC5sb2NhdGlvbik7XG5cbiAgY29uc3QgcmVzb2x2ZWRQYXRobmFtZSA9IHJlc29sdmVkVXJsLnBhdGhuYW1lO1xuXG4gIGlmIChleGFjdCAmJiBoaXN0b3J5LmxvY2F0aW9uLnBhdGhuYW1lID09PSByZXNvbHZlZFBhdGhuYW1lKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoIWV4YWN0ICYmIGhpc3RvcnkubG9jYXRpb24ucGF0aG5hbWUuc3RhcnRzV2l0aChyZXNvbHZlZFBhdGhuYW1lKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG50eXBlIFByb3BzID0ge1xuICBhY3RpdmVDbGFzc05hbWU/OiBzdHJpbmc7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgZXhhY3Q/OiBib29sZWFuO1xuICBwcmVsb2FkT25Nb3VzZUVudGVyPzogYm9vbGVhbjtcbiAgcHJlbG9hZE9uTW91c2VEb3duPzogYm9vbGVhbjtcbiAgaHJlZj86IHN0cmluZztcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XG4gIG9uQ2xpY2s/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD47XG4gIG9uRm9jdXM/OiBSZWFjdC5Gb2N1c0V2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD47XG4gIG9uTW91c2VPdmVyPzogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTEFuY2hvckVsZW1lbnQ+O1xuICB0YXJnZXQ/OiBIVE1MQXR0cmlidXRlQW5jaG9yVGFyZ2V0O1xuICB0bz86IEhpc3RvcnlMb2NhdGlvbiB8IHN0cmluZztcbn07XG5cbi8qKlxuICogQW4gYWx0ZXJuYXRpdmUgdG8gcmVhY3Qtcm91dGVyJ3MgTGluayBjb21wb25lbnQgdGhhdCB3b3JrcyB3aXRoXG4gKiBvdXIgY3VzdG9tIFJvdXRpbmdDb250ZXh0LlxuICovXG5jb25zdCBMaW5rID0gZm9yd2FyZFJlZjxIVE1MQW5jaG9yRWxlbWVudCwgUHJvcHM+KChwcm9wczogUHJvcHMsIHJlZikgPT4ge1xuICBjb25zdCByb3V0ZXIgPSB1c2VDb250ZXh0KFJvdXRpbmdDb250ZXh0KTtcbiAgY29uc3Qge1xuICAgIGFjdGl2ZUNsYXNzTmFtZSxcbiAgICBjaGlsZHJlbixcbiAgICBjbGFzc05hbWUsXG4gICAgZXhhY3QgPSBmYWxzZSxcbiAgICBpc0Rpc2FibGVkID0gZmFsc2UsXG4gICAgb25DbGljayxcbiAgICBvbkZvY3VzLFxuICAgIG9uTW91c2VPdmVyLFxuICAgIHByZWxvYWRPbk1vdXNlRW50ZXIgPSBmYWxzZSxcbiAgICBwcmVsb2FkT25Nb3VzZURvd24gPSB0cnVlLFxuICAgIHRhcmdldCxcbiAgICB0byxcbiAgICBocmVmLFxuICB9ID0gcHJvcHM7XG5cbiAgY29uc3QgcGF0aG5hbWUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuICcjJztcbiAgICB9XG5cbiAgICBsZXQgbmV3SHJlZiA9IGhyZWY7XG5cbiAgICBpZiAobmV3SHJlZiA9PSBudWxsKSB7XG4gICAgICBpZiAodHlwZW9mIHRvID09PSAnc3RyaW5nJykge1xuICAgICAgICBuZXdIcmVmID0gdG87XG4gICAgICB9IGVsc2UgaWYgKHRvPy5wYXRobmFtZSAhPSBudWxsKSB7XG4gICAgICAgIG5ld0hyZWYgPSB0by5wYXRobmFtZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBuZXdIcmVmID8/PSAnIyc7XG5cbiAgICByZXR1cm4gbmV3SHJlZjtcbiAgfSwgW2hyZWYsIGlzRGlzYWJsZWQsIHRvXSk7XG5cbiAgY29uc3QgaW5pdGlhbElzQWN0aXZlID0gaXNDdXJyZW50UGF0aG5hbWUoZXhhY3QsIHJvdXRlcj8uaGlzdG9yeSwgcGF0aG5hbWUpO1xuICBjb25zdCBbaXNBY3RpdmUsIHNldElzQWN0aXZlXSA9IFJlYWN0LnVzZVN0YXRlKGluaXRpYWxJc0FjdGl2ZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBvbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IG5ld0lzQWN0aXZlID0gaXNDdXJyZW50UGF0aG5hbWUoZXhhY3QsIHJvdXRlcj8uaGlzdG9yeSwgcGF0aG5hbWUpO1xuICAgICAgc2V0SXNBY3RpdmUobmV3SXNBY3RpdmUpO1xuICAgIH07XG5cbiAgICBpZiAocm91dGVyID09IG51bGwpIHtcbiAgICAgIHJldHVybiAoKSA9PiB7fTtcbiAgICB9XG5cbiAgICByb3V0ZXIuaGlzdG9yeS5zdWJzY3JpYmUob25DaGFuZ2UpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHJvdXRlci5oaXN0b3J5LnVuc3Vic2NyaWJlKG9uQ2hhbmdlKTtcbiAgICB9O1xuICB9LCBbZXhhY3QsIHBhdGhuYW1lLCByb3V0ZXJdKTtcblxuICBjb25zdCBjbGFzc05hbWVzID0gW2NsYXNzTmFtZV07XG5cbiAgaWYgKGlzQWN0aXZlKSB7XG4gICAgY2xhc3NOYW1lcy5wdXNoKGFjdGl2ZUNsYXNzTmFtZSk7XG4gIH1cblxuICAvLyBXaGVuIHRoZSB1c2VyIGNsaWNrcywgY2hhbmdlIHJvdXRlXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4ge1xuICAgICAgaWYgKCFpc0Rpc2FibGVkICYmIHR5cGVvZiBvbkNsaWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIG9uQ2xpY2soZXZlbnQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgfHxcbiAgICAgICAgZXZlbnQubWV0YUtleSB8fFxuICAgICAgICBldmVudC5hbHRLZXkgfHxcbiAgICAgICAgZXZlbnQuY3RybEtleSB8fFxuICAgICAgICBldmVudC5zaGlmdEtleSB8fFxuICAgICAgICBldmVudC5idXR0b24gIT09IDAgfHxcbiAgICAgICAgKHRhcmdldCAhPSBudWxsICYmIHRhcmdldCAhPT0gJ19zZWxmJylcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAocm91dGVyID09IG51bGwgfHwgaXNEaXNhYmxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJvdXRlci5oaXN0b3J5LnB1c2goe1xuICAgICAgICBwYXRobmFtZSxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgW2lzRGlzYWJsZWQsIG9uQ2xpY2ssIHBhdGhuYW1lLCByb3V0ZXIsIHRhcmdldF0sXG4gICk7XG5cbiAgLy8gQ2FsbGJhY2sgdG8gcHJlbG9hZCBqdXN0IHRoZSBjb2RlIGZvciB0aGUgcm91dGU6XG4gIC8vIHdlIHBhc3MgdGhpcyB0byBvbk1vdXNlRW50ZXIsIHdoaWNoIGlzIGEgd2Vha2VyIHNpZ25hbFxuICAvLyB0aGF0IHRoZSB1c2VyICptYXkqIG5hdmlnYXRlIHRvIHRoZSByb3V0ZS5cbiAgY29uc3QgaGFuZGxlTW91c2VFbnRlciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAocm91dGVyID09IG51bGwgfHwgaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChwcmVsb2FkT25Nb3VzZUVudGVyKSB7XG4gICAgICByb3V0ZXIucHJlbG9hZChwYXRobmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvdXRlci5wcmVsb2FkQ29kZShwYXRobmFtZSk7XG4gICAgfVxuICB9LCBbcm91dGVyLCBpc0Rpc2FibGVkLCBwcmVsb2FkT25Nb3VzZUVudGVyLCBwYXRobmFtZV0pO1xuXG4gIC8vIENhbGxiYWNrIHRvIHByZWxvYWQgdGhlIGNvZGUgYW5kIGRhdGEgZm9yIHRoZSByb3V0ZTpcbiAgLy8gd2UgcGFzcyB0aGlzIHRvIG9uTW91c2VEb3duLCBzaW5jZSB0aGlzIGlzIGEgc3Ryb25nZXJcbiAgLy8gc2lnbmFsIHRoYXQgdGhlIHVzZXIgd2lsbCBsaWtlbHkgY29tcGxldGUgdGhlIG5hdmlnYXRpb25cbiAgY29uc3QgaGFuZGxlTW91c2VEb3duID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChyb3V0ZXIgPT0gbnVsbCB8fCBpc0Rpc2FibGVkIHx8ICFwcmVsb2FkT25Nb3VzZURvd24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcm91dGVyLnByZWxvYWQocGF0aG5hbWUpO1xuICB9LCBbcm91dGVyLCBpc0Rpc2FibGVkLCBwcmVsb2FkT25Nb3VzZURvd24sIHBhdGhuYW1lXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8YVxuICAgICAgY2xhc3NOYW1lPXtjeChjbGFzc05hbWVzKX1cbiAgICAgIGhyZWY9e3BhdGhuYW1lfVxuICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgICBvbkZvY3VzPXtvbkZvY3VzfVxuICAgICAgb25Nb3VzZURvd249e2hhbmRsZU1vdXNlRG93bn1cbiAgICAgIG9uTW91c2VFbnRlcj17aGFuZGxlTW91c2VFbnRlcn1cbiAgICAgIG9uTW91c2VPdmVyPXtvbk1vdXNlT3Zlcn1cbiAgICAgIHJlZj17cmVmfVxuICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvYT5cbiAgKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBMaW5rO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouteComponent.d.ts","sourceRoot":"","sources":["../../../src/routing/RouteComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAyB,MAAM,OAAO,CAAC;AAI9D,KAAK,KAAK,GAAG;IACX,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC;AAaF,QAAA,MAAM,cAAc,GAAI,OAAO,KAAK,KAAG,SAqBtC,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useContext, useEffect } from 'react';
|
|
2
|
+
import RoutingContext from './RoutingContext.js';
|
|
3
|
+
const RouteComponent = (props) => {
|
|
4
|
+
const { content, redirectToPathname } = props;
|
|
5
|
+
const router = useContext(RoutingContext);
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
if (router == null) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (redirectToPathname == null) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
router.history.set({
|
|
14
|
+
pathname: redirectToPathname,
|
|
15
|
+
});
|
|
16
|
+
}, [redirectToPathname, router]);
|
|
17
|
+
return content ?? null;
|
|
18
|
+
};
|
|
19
|
+
export default RouteComponent;
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm91dGVDb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcm91dGluZy9Sb3V0ZUNvbXBvbmVudC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTlELE9BQU8sY0FBYyxNQUFNLHFCQUFxQixDQUFDO0FBa0JqRCxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQVksRUFBYSxFQUFFO0lBQ2pELE1BQU0sRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFOUMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRTFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNuQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksa0JBQWtCLElBQUksSUFBSSxFQUFFLENBQUM7WUFDL0IsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUNqQixRQUFRLEVBQUUsa0JBQWtCO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFHakMsT0FBTyxPQUFPLElBQUksSUFBSSxDQUFDO0FBQ3pCLENBQUMsQ0FBQztBQUVGLGVBQWUsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBSZWFjdE5vZGUsIHVzZUNvbnRleHQsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IFJvdXRpbmdDb250ZXh0IGZyb20gJy4vUm91dGluZ0NvbnRleHQuanMnO1xuXG50eXBlIFByb3BzID0ge1xuICBjb250ZW50PzogUmVhY3ROb2RlO1xuICByZWRpcmVjdFRvUGF0aG5hbWU6IHN0cmluZyB8IG51bGw7XG59O1xuXG4vKipcbiAqIFRoZSBgcmVzb3VyY2VQYWdlYCBwcm9wZXJ0eSBmcm9tIHRoZSByb3V0ZSBlbnRyeSBpcyBhIFJlc291cmNlLCB3aGljaCBtYXkgb3IgbWF5IG5vdCBiZSByZWFkeS5cbiAqIFdlIHVzZSBhIGhlbHBlciBjaGlsZCBjb21wb25lbnQgdG8gdW53cmFwIHRoZSByZXNvdXJjZSB3aXRoIGNvbXBvbmVudC5yZWFkKCksIGFuZCB0aGVuXG4gKiByZW5kZXIgaXQgaWYgaXRzIHJlYWR5LlxuICpcbiAqIE5PVEU6IGNhbGxpbmcgcm91dGVFbnRyeS5yb3V0ZS5jb21wb25lbnQucmVhZCgpIGRpcmVjdGx5IGluIFJvdXRlUmVuZGVyZXIgd29sZG4ndCB3b3JrIHRoZVxuICogd2F5IHdlJ2QgZXhwZWN0LiBCZWNhdXNlIHRoYXQgbWV0aG9kIGNvdWxkIHRocm93IC0gZWl0aGVyIHN1c3BlbmRpbmcgb3Igb24gZXJyb3IgLSB0aGUgZXJyb3JcbiAqIHdvdWxkIGJ1YmJsZSB1cCB0byB0aGUgKmNhbGxlciogb2YgUm91dGVSZW5kZXJlci4gV2Ugd2FudCB0aGUgc3VzcGVuZC9lcnJvciB0byBidWJibGUgdXAgdG9cbiAqIG91ciBFcnJvckJvdW5kYXJ5L1N1c3BlbnNlIGNvbXBvbmVudHMsIHNvIHdlIGhhdmUgdG8gZW5zdXJlIHRoYXQgdGhlIHN1c3BlbmQvZXJyb3IgaGFwcGVuc1xuICogaW4gYSBjaGlsZCBjb21wb25lbnQuXG4gKi9cbmNvbnN0IFJvdXRlQ29tcG9uZW50ID0gKHByb3BzOiBQcm9wcyk6IFJlYWN0Tm9kZSA9PiB7XG4gIGNvbnN0IHsgY29udGVudCwgcmVkaXJlY3RUb1BhdGhuYW1lIH0gPSBwcm9wcztcblxuICBjb25zdCByb3V0ZXIgPSB1c2VDb250ZXh0KFJvdXRpbmdDb250ZXh0KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyb3V0ZXIgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChyZWRpcmVjdFRvUGF0aG5hbWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJvdXRlci5oaXN0b3J5LnNldCh7XG4gICAgICBwYXRobmFtZTogcmVkaXJlY3RUb1BhdGhuYW1lLFxuICAgIH0pO1xuICB9LCBbcmVkaXJlY3RUb1BhdGhuYW1lLCByb3V0ZXJdKTtcblxuICAvLyBUT0RPOiBIYW5kbGUgU3VzcGVuc2UvbG9hZGVyXG4gIHJldHVybiBjb250ZW50ID8/IG51bGw7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBSb3V0ZUNvbXBvbmVudDtcbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type JSX } from 'react';
|
|
2
|
+
import type { PreparedMatchRoute, RouterMatchedRoute } from '../types.js';
|
|
3
|
+
type Props = {
|
|
4
|
+
children?: any;
|
|
5
|
+
match: RouterMatchedRoute<any> | null;
|
|
6
|
+
preparedRoute: PreparedMatchRoute;
|
|
7
|
+
};
|
|
8
|
+
declare const RouteComponentWrapper: (props: Props) => JSX.Element | null;
|
|
9
|
+
export default RouteComponentWrapper;
|
|
10
|
+
//# sourceMappingURL=RouteComponentWrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouteComponentWrapper.d.ts","sourceRoot":"","sources":["../../../src/routing/RouteComponentWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAM1E,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACtC,aAAa,EAAE,kBAAkB,CAAC;CACnC,CAAC;AAaF,QAAA,MAAM,qBAAqB,GAAI,OAAO,KAAK,KAAG,GAAG,CAAC,OAAO,GAAG,IA0F3D,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|