@plumile/router 0.1.51 → 0.1.53
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/lib/ResourcePage.d.ts +12 -0
- package/lib/ResourcePage.d.ts.map +1 -0
- package/lib/ResourcePage.js +38 -0
- package/lib/asyncResource.d.ts +8 -0
- package/lib/asyncResource.d.ts.map +1 -0
- package/lib/asyncResource.js +101 -0
- package/lib/builder.d.ts +13 -0
- package/lib/builder.d.ts.map +1 -0
- package/lib/builder.js +72 -0
- package/lib/errors/HttpRedirect.d.ts +6 -0
- package/lib/errors/HttpRedirect.d.ts.map +1 -0
- package/lib/errors/HttpRedirect.js +11 -0
- package/lib/errors/index.d.ts +2 -0
- package/lib/errors/index.d.ts.map +1 -0
- package/lib/errors/index.js +2 -0
- package/lib/eslint-rules/index.d.ts +2 -0
- package/lib/eslint-rules/index.d.ts.map +1 -0
- package/lib/eslint-rules/index.js +2 -0
- package/lib/eslint-rules/no-direct-window-location-search.d.ts +4 -0
- package/lib/eslint-rules/no-direct-window-location-search.d.ts.map +1 -0
- package/lib/eslint-rules/no-direct-window-location-search.js +48 -0
- package/lib/esm/builder.d.ts +7 -7
- package/lib/esm/builder.d.ts.map +1 -1
- package/lib/esm/builder.js +1 -1
- package/lib/esm/routing/createRouter.d.ts +2 -2
- package/lib/esm/routing/createRouter.d.ts.map +1 -1
- package/lib/esm/routing/createRouter.js +1 -1
- package/lib/esm/tools.d.ts +5 -5
- package/lib/esm/tools.d.ts.map +1 -1
- package/lib/esm/tools.js +1 -1
- package/lib/esm/types.d.ts +34 -45
- package/lib/esm/types.d.ts.map +1 -1
- package/lib/esm/types.js +1 -1
- package/lib/history/BrowserHistory.d.ts +21 -0
- package/lib/history/BrowserHistory.d.ts.map +1 -0
- package/lib/history/BrowserHistory.js +139 -0
- package/lib/history/index.d.ts +3 -0
- package/lib/history/index.d.ts.map +1 -0
- package/lib/history/index.js +2 -0
- package/lib/history/types.d.ts +19 -0
- package/lib/history/types.d.ts.map +1 -0
- package/lib/history/types.js +2 -0
- package/lib/index.d.ts +10 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +9 -0
- package/lib/instrumentation/Instrumentation.d.ts +90 -0
- package/lib/instrumentation/Instrumentation.d.ts.map +1 -0
- package/lib/instrumentation/Instrumentation.js +59 -0
- package/lib/instrumentation/adapters/devtoolsBridge.d.ts +14 -0
- package/lib/instrumentation/adapters/devtoolsBridge.d.ts.map +1 -0
- package/lib/instrumentation/adapters/devtoolsBridge.js +133 -0
- package/lib/instrumentation/adapters/logger.d.ts +10 -0
- package/lib/instrumentation/adapters/logger.d.ts.map +1 -0
- package/lib/instrumentation/adapters/logger.js +19 -0
- package/lib/instrumentation/index.d.ts +4 -0
- package/lib/instrumentation/index.d.ts.map +1 -0
- package/lib/instrumentation/index.js +4 -0
- package/lib/prepareResource.d.ts +4 -0
- package/lib/prepareResource.d.ts.map +1 -0
- package/lib/prepareResource.js +11 -0
- package/lib/routing/Link.d.ts +23 -0
- package/lib/routing/Link.d.ts.map +1 -0
- package/lib/routing/Link.js +158 -0
- package/lib/routing/RouteComponent.d.ts +8 -0
- package/lib/routing/RouteComponent.d.ts.map +1 -0
- package/lib/routing/RouteComponent.js +20 -0
- package/lib/routing/RouteComponentWrapper.d.ts +11 -0
- package/lib/routing/RouteComponentWrapper.d.ts.map +1 -0
- package/lib/routing/RouteComponentWrapper.js +101 -0
- package/lib/routing/RouterRenderer.d.ts +10 -0
- package/lib/routing/RouterRenderer.d.ts.map +1 -0
- package/lib/routing/RouterRenderer.js +67 -0
- package/lib/routing/RoutingContext.d.ts +5 -0
- package/lib/routing/RoutingContext.d.ts.map +1 -0
- package/lib/routing/RoutingContext.js +4 -0
- package/lib/routing/createRouter.d.ts +19 -0
- package/lib/routing/createRouter.d.ts.map +1 -0
- package/lib/routing/createRouter.js +604 -0
- package/lib/routing/index.d.ts +16 -0
- package/lib/routing/index.d.ts.map +1 -0
- package/lib/routing/index.js +16 -0
- package/lib/routing/useAllQuery.d.ts +7 -0
- package/lib/routing/useAllQuery.d.ts.map +1 -0
- package/lib/routing/useAllQuery.js +31 -0
- package/lib/routing/useFilterDiagnostics.d.ts +2 -0
- package/lib/routing/useFilterDiagnostics.d.ts.map +1 -0
- package/lib/routing/useFilterDiagnostics.js +11 -0
- package/lib/routing/useFilters.d.ts +8 -0
- package/lib/routing/useFilters.d.ts.map +1 -0
- package/lib/routing/useFilters.js +65 -0
- package/lib/routing/useLocation.d.ts +2 -0
- package/lib/routing/useLocation.d.ts.map +1 -0
- package/lib/routing/useLocation.js +24 -0
- package/lib/routing/useNavigate.d.ts +7 -0
- package/lib/routing/useNavigate.d.ts.map +1 -0
- package/lib/routing/useNavigate.js +11 -0
- package/lib/routing/usePathname.d.ts +2 -0
- package/lib/routing/usePathname.d.ts.map +1 -0
- package/lib/routing/usePathname.js +9 -0
- package/lib/routing/useQuery.d.ts +2 -0
- package/lib/routing/useQuery.d.ts.map +1 -0
- package/lib/routing/useQuery.js +9 -0
- package/lib/routing/useQueryState.d.ts +13 -0
- package/lib/routing/useQueryState.d.ts.map +1 -0
- package/lib/routing/useQueryState.js +45 -0
- package/lib/routing/useSearchParams.d.ts +11 -0
- package/lib/routing/useSearchParams.d.ts.map +1 -0
- package/lib/routing/useSearchParams.js +67 -0
- package/lib/tools/buildCombinedSearch.d.ts +8 -0
- package/lib/tools/buildCombinedSearch.d.ts.map +1 -0
- package/lib/tools/buildCombinedSearch.js +76 -0
- package/lib/tools/index.d.ts +3 -0
- package/lib/tools/index.d.ts.map +1 -0
- package/lib/tools/index.js +13 -0
- package/lib/tools/query.d.ts +2 -0
- package/lib/tools/query.d.ts.map +1 -0
- package/lib/tools/query.js +43 -0
- package/lib/tools.d.ts +15 -0
- package/lib/tools.d.ts.map +1 -0
- package/lib/tools.js +179 -0
- package/lib/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/builder.d.ts +7 -7
- package/lib/types/builder.d.ts.map +1 -1
- package/lib/types/routing/createRouter.d.ts +2 -2
- package/lib/types/routing/createRouter.d.ts.map +1 -1
- package/lib/types/tools.d.ts +5 -5
- package/lib/types/tools.d.ts.map +1 -1
- package/lib/types/types.d.ts +34 -45
- package/lib/types/types.d.ts.map +1 -1
- package/lib/types.d.ts +245 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +2 -0
- package/lib/values.d.ts +19 -0
- package/lib/values.d.ts.map +1 -0
- package/lib/values.js +53 -0
- package/package.json +2 -2
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ResourcePageLoader, ResourcePageReturn } from './types.js';
|
|
2
|
+
export declare class ResourcePage {
|
|
3
|
+
private __resource;
|
|
4
|
+
private __moduleId;
|
|
5
|
+
constructor(loader: ResourcePageLoader, moduleId: string);
|
|
6
|
+
load(): Promise<ResourcePageReturn>;
|
|
7
|
+
get(): ResourcePageReturn | undefined;
|
|
8
|
+
getModuleId(): string;
|
|
9
|
+
read(): ResourcePageReturn | Promise<ResourcePageReturn> | Error;
|
|
10
|
+
}
|
|
11
|
+
export declare function getResourcePage(moduleId: string, loader: ResourcePageLoader): ResourcePage | null;
|
|
12
|
+
//# 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;AA4BzE,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAC;IAGnB,OAAO,CAAC,UAAU,CAAS;gBAQR,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM;IAoBlD,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAWzC,GAAG,IAAI,kBAAkB,GAAG,SAAS;IAOrC,WAAW,IAAI,MAAM;IAerB,IAAI,IAAI,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG,KAAK;CAGxE;AAsBD,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,kBAAkB,GACzB,YAAY,GAAG,IAAI,CAOrB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { createAsyncResource } from './asyncResource.js';
|
|
2
|
+
const resourcePageMap = new Map();
|
|
3
|
+
export class ResourcePage {
|
|
4
|
+
__resource;
|
|
5
|
+
__moduleId;
|
|
6
|
+
constructor(loader, moduleId) {
|
|
7
|
+
this.__moduleId = moduleId;
|
|
8
|
+
this.__resource = createAsyncResource(loader, {
|
|
9
|
+
normalize: (result) => {
|
|
10
|
+
if (result.default != null) {
|
|
11
|
+
return result.default;
|
|
12
|
+
}
|
|
13
|
+
return result;
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
async load() {
|
|
18
|
+
return this.__resource.load();
|
|
19
|
+
}
|
|
20
|
+
get() {
|
|
21
|
+
return this.__resource.get();
|
|
22
|
+
}
|
|
23
|
+
getModuleId() {
|
|
24
|
+
return this.__moduleId;
|
|
25
|
+
}
|
|
26
|
+
read() {
|
|
27
|
+
return this.__resource.read();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export function getResourcePage(moduleId, loader) {
|
|
31
|
+
let resource = resourcePageMap.get(moduleId);
|
|
32
|
+
if (resource == null) {
|
|
33
|
+
resource = new ResourcePage(loader, moduleId);
|
|
34
|
+
resourcePageMap.set(moduleId, resource);
|
|
35
|
+
}
|
|
36
|
+
return resource;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzb3VyY2VQYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1Jlc291cmNlUGFnZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFRekQsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7QUFtQnhELE1BQU0sT0FBTyxZQUFZO0lBQ2YsVUFBVSxDQUFDO0lBR1gsVUFBVSxDQUFTO0lBUTNCLFlBQW1CLE1BQTBCLEVBQUUsUUFBZ0I7UUFDN0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUU7WUFDNUMsU0FBUyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBRXBCLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFFM0IsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDO2dCQUN4QixDQUFDO2dCQUNELE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBUU0sS0FBSyxDQUFDLElBQUk7UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQVNNLEdBQUc7UUFDUixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUtNLFdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFhTSxJQUFJO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7Q0FDRjtBQXNCRCxNQUFNLFVBQVUsZUFBZSxDQUM3QixRQUFnQixFQUNoQixNQUEwQjtJQUUxQixJQUFJLFFBQVEsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLElBQUksUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3JCLFFBQVEsR0FBRyxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDOUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlc291cmNlUGFnZUxvYWRlciwgUmVzb3VyY2VQYWdlUmV0dXJuIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5pbXBvcnQgeyBjcmVhdGVBc3luY1Jlc291cmNlIH0gZnJvbSAnLi9hc3luY1Jlc291cmNlLmpzJztcblxuLyoqXG4gKiBBIGNhY2hlIG9mIHJlc291cmNlcyB0byBhdm9pZCBsb2FkaW5nIHRoZSBzYW1lIG1vZHVsZSB0d2ljZS4gVGhpcyBpcyBpbXBvcnRhbnRcbiAqIGJlY2F1c2UgV2VicGFjayBkeW5hbWljIGltcG9ydHMgb25seSBleHBvc2UgYW4gYXN5bmNocm9ub3VzIEFQSSBmb3IgbG9hZGluZ1xuICogbW9kdWxlcywgc28gdG8gYmUgYWJsZSB0byBhY2Nlc3MgYWxyZWFkeS1sb2FkZWQgbW9kdWxlcyBzeW5jaHJvbm91c2x5IHdlXG4gKiBtdXN0IGhhdmUgc3RvcmVkIHRoZSBwcmV2aW91cyByZXN1bHQgc29tZXdoZXJlLlxuICovXG5jb25zdCByZXNvdXJjZVBhZ2VNYXAgPSBuZXcgTWFwPHN0cmluZywgUmVzb3VyY2VQYWdlPigpO1xuXG4vKipcbiAqIEEgcmVzb3VyY2UgbWFuYWdlciBmb3IgbGF6eS1sb2FkZWQgUmVhY3QgY29tcG9uZW50cyB3aXRoIFN1c3BlbnNlIGludGVncmF0aW9uLlxuICogVGhpcyBjbGFzcyBoYW5kbGVzIHRoZSBsb2FkaW5nIHN0YXRlLCBjYWNoaW5nLCBhbmQgU3VzcGVuc2UgaW50ZWdyYXRpb24gZm9yXG4gKiBkeW5hbWljYWxseSBpbXBvcnRlZCBjb21wb25lbnRzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXNvdXJjZSA9IG5ldyBSZXNvdXJjZVBhZ2UoXG4gKiAgICgpID0+IGltcG9ydCgnLi9NeUNvbXBvbmVudCcpLFxuICogICAnTXlDb21wb25lbnQnXG4gKiApO1xuICpcbiAqIC8vIEluIGEgUmVhY3QgY29tcG9uZW50IHdpdGggU3VzcGVuc2UgYm91bmRhcnk6XG4gKiBjb25zdCBDb21wb25lbnQgPSByZXNvdXJjZS5yZWFkKCk7XG4gKiByZXR1cm4gPENvbXBvbmVudCAvPjtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VQYWdlIHtcbiAgcHJpdmF0ZSBfX3Jlc291cmNlO1xuXG4gIC8qKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyByZXNvdXJjZSAqL1xuICBwcml2YXRlIF9fbW9kdWxlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBSZXNvdXJjZVBhZ2UgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSBsb2FkZXIgLSBGdW5jdGlvbiB0aGF0IHJldHVybnMgYSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY29tcG9uZW50XG4gICAqIEBwYXJhbSBtb2R1bGVJZCAtIFVuaXF1ZSBpZGVudGlmaWVyIGZvciBjYWNoaW5nIHB1cnBvc2VzXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IobG9hZGVyOiBSZXNvdXJjZVBhZ2VMb2FkZXIsIG1vZHVsZUlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9fbW9kdWxlSWQgPSBtb2R1bGVJZDtcbiAgICB0aGlzLl9fcmVzb3VyY2UgPSBjcmVhdGVBc3luY1Jlc291cmNlKGxvYWRlciwge1xuICAgICAgbm9ybWFsaXplOiAocmVzdWx0KSA9PiB7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IE9LXG4gICAgICAgIGlmIChyZXN1bHQuZGVmYXVsdCAhPSBudWxsKSB7XG4gICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogT0tcbiAgICAgICAgICByZXR1cm4gcmVzdWx0LmRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIHJlc291cmNlIGlmIG5vdCBhbHJlYWR5IGxvYWRlZCBvciBsb2FkaW5nLlxuICAgKiBUaGlzIG1ldGhvZCBjYW4gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHNhZmVseSAtIGl0IHdpbGwgcmV0dXJuIHRoZSBzYW1lIHByb21pc2UuXG4gICAqXG4gICAqIEByZXR1cm5zIFByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgbG9hZGVkIGNvbXBvbmVudFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGxvYWQoKTogUHJvbWlzZTxSZXNvdXJjZVBhZ2VSZXR1cm4+IHtcbiAgICByZXR1cm4gdGhpcy5fX3Jlc291cmNlLmxvYWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBsb2FkZWQgY29tcG9uZW50IGlmIGF2YWlsYWJsZSwgdW5kZWZpbmVkIG90aGVyd2lzZS5cbiAgICogVGhpcyBtZXRob2QgY2FuIGJlIHVzZWQgdG8gY2hlY2sgaWYgdGhlIGNvbXBvbmVudCBpcyBhbHJlYWR5IGxvYWRlZFxuICAgKiB3aXRob3V0IHRyaWdnZXJpbmcgYSBsb2FkIG9yIHRocm93aW5nIGFuIGVycm9yLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgbG9hZGVkIGNvbXBvbmVudCBvciB1bmRlZmluZWQgaWYgbm90IHlldCBsb2FkZWRcbiAgICovXG4gIHB1YmxpYyBnZXQoKTogUmVzb3VyY2VQYWdlUmV0dXJuIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fX3Jlc291cmNlLmdldCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG1vZHVsZSBpZGVudGlmaWVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlc291cmNlIChkZWJ1ZyBoZWxwZXIpLlxuICAgKi9cbiAgcHVibGljIGdldE1vZHVsZUlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX19tb2R1bGVJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkcyB0aGUgcmVzb3VyY2Ugd2l0aCBSZWFjdCBTdXNwZW5zZSBpbnRlZ3JhdGlvbi5cbiAgICogVGhpcyBpcyB0aGUga2V5IG1ldGhvZCBmb3IgaW50ZWdyYXRpbmcgd2l0aCBSZWFjdCBTdXNwZW5zZTpcbiAgICogLSBSZXR1cm5zIHRoZSBjb21wb25lbnQgaWYgbG9hZGVkXG4gICAqIC0gVGhyb3dzIGFuIGVycm9yIGlmIGxvYWRpbmcgZmFpbGVkXG4gICAqIC0gVGhyb3dzIGEgUHJvbWlzZSBpZiBzdGlsbCBsb2FkaW5nIChTdXNwZW5zZSB3aWxsIGNhdGNoIHRoaXMpXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBsb2FkZWQgY29tcG9uZW50XG4gICAqIEB0aHJvd3MgUHJvbWlzZSB3aGVuIGxvYWRpbmcgKGNhdWdodCBieSBTdXNwZW5zZSlcbiAgICogQHRocm93cyBFcnJvciB3aGVuIGxvYWRpbmcgZmFpbGVkXG4gICAqL1xuICBwdWJsaWMgcmVhZCgpOiBSZXNvdXJjZVBhZ2VSZXR1cm4gfCBQcm9taXNlPFJlc291cmNlUGFnZVJldHVybj4gfCBFcnJvciB7XG4gICAgcmV0dXJuIHRoaXMuX19yZXNvdXJjZS5yZWFkKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBGYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBvciByZXRyaWV2ZSBhIGNhY2hlZCBSZXNvdXJjZVBhZ2UgaW5zdGFuY2UuXG4gKiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgYSBzaW5nbGV0b24gcGF0dGVybiBwZXIgbW9kdWxlSWQgdG8gZW5zdXJlIHRoYXRcbiAqIHRoZSBzYW1lIGNvbXBvbmVudCBpcyBub3QgbG9hZGVkIG11bHRpcGxlIHRpbWVzLlxuICpcbiAqIEBwYXJhbSBtb2R1bGVJZCAtIEdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2UgdXNlZCBmb3IgY2FjaGluZ1xuICogQHBhcmFtIGxvYWRlciAtIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBjb21wb25lbnRcbiAqIEByZXR1cm5zIFJlc291cmNlUGFnZSBpbnN0YW5jZSAoY2FjaGVkIGlmIHByZXZpb3VzbHkgY3JlYXRlZClcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gQ3JlYXRlIGEgcmVzb3VyY2UgZm9yIGxhenkgbG9hZGluZ1xuICogY29uc3QgcmVzb3VyY2UgPSBnZXRSZXNvdXJjZVBhZ2UoJ1VzZXJQcm9maWxlJywgKCkgPT4gaW1wb3J0KCcuL1VzZXJQcm9maWxlJykpO1xuICogcmVzb3VyY2UubG9hZCgpO1xuICpcbiAqIC8vIEluIGEgUmVhY3QgY29tcG9uZW50IHdpdGggU3VzcGVuc2UgYm91bmRhcnk6XG4gKiBjb25zdCBVc2VyUHJvZmlsZSA9IHJlc291cmNlLnJlYWQoKTtcbiAqIHJldHVybiA8VXNlclByb2ZpbGUgdXNlcklkPXt1c2VySWR9IC8+O1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZVBhZ2UoXG4gIG1vZHVsZUlkOiBzdHJpbmcsXG4gIGxvYWRlcjogUmVzb3VyY2VQYWdlTG9hZGVyLFxuKTogUmVzb3VyY2VQYWdlIHwgbnVsbCB7XG4gIGxldCByZXNvdXJjZSA9IHJlc291cmNlUGFnZU1hcC5nZXQobW9kdWxlSWQpO1xuICBpZiAocmVzb3VyY2UgPT0gbnVsbCkge1xuICAgIHJlc291cmNlID0gbmV3IFJlc291cmNlUGFnZShsb2FkZXIsIG1vZHVsZUlkKTtcbiAgICByZXNvdXJjZVBhZ2VNYXAuc2V0KG1vZHVsZUlkLCByZXNvdXJjZSk7XG4gIH1cbiAgcmV0dXJuIHJlc291cmNlO1xufVxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { MaybePromise, ReadableResource } from './types.js';
|
|
2
|
+
type CreateAsyncResourceOptions<TInput, TValue> = {
|
|
3
|
+
normalize?: (input: TInput) => TValue;
|
|
4
|
+
};
|
|
5
|
+
export declare function isPromiseLike<T>(value: unknown): value is PromiseLike<T>;
|
|
6
|
+
export declare function createAsyncResource<TInput, TValue = TInput>(loader: () => MaybePromise<TInput>, options?: CreateAsyncResourceOptions<TInput, TValue>): ReadableResource<TValue>;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=asyncResource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asyncResource.d.ts","sourceRoot":"","sources":["../src/asyncResource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AASjE,KAAK,0BAA0B,CAAC,MAAM,EAAE,MAAM,IAAI;IAChD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACvC,CAAC;AAYF,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,CAOxE;AASD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EACzD,MAAM,EAAE,MAAM,YAAY,CAAC,MAAM,CAAC,EAClC,OAAO,CAAC,EAAE,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,GACnD,gBAAgB,CAAC,MAAM,CAAC,CAyG1B"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
function identity(value) {
|
|
2
|
+
return value;
|
|
3
|
+
}
|
|
4
|
+
export function isPromiseLike(value) {
|
|
5
|
+
return (typeof value === 'object' &&
|
|
6
|
+
value != null &&
|
|
7
|
+
'then' in value &&
|
|
8
|
+
typeof value.then === 'function');
|
|
9
|
+
}
|
|
10
|
+
export function createAsyncResource(loader, options) {
|
|
11
|
+
const normalize = options?.normalize ?? identity;
|
|
12
|
+
const state = {
|
|
13
|
+
error: null,
|
|
14
|
+
promise: null,
|
|
15
|
+
status: 'idle',
|
|
16
|
+
value: undefined,
|
|
17
|
+
};
|
|
18
|
+
function isResolved() {
|
|
19
|
+
return state.status === 'resolved';
|
|
20
|
+
}
|
|
21
|
+
function runLoad() {
|
|
22
|
+
let resolved;
|
|
23
|
+
try {
|
|
24
|
+
resolved = loader();
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
state.error = error;
|
|
28
|
+
state.promise = null;
|
|
29
|
+
state.status = 'rejected';
|
|
30
|
+
throw error;
|
|
31
|
+
}
|
|
32
|
+
if (!isPromiseLike(resolved)) {
|
|
33
|
+
const normalized = normalize(resolved);
|
|
34
|
+
state.value = normalized;
|
|
35
|
+
state.error = null;
|
|
36
|
+
state.status = 'resolved';
|
|
37
|
+
const settled = Promise.resolve(normalized);
|
|
38
|
+
state.promise = settled;
|
|
39
|
+
return settled;
|
|
40
|
+
}
|
|
41
|
+
state.status = 'pending';
|
|
42
|
+
const pending = Promise.resolve(resolved)
|
|
43
|
+
.then((value) => {
|
|
44
|
+
const normalized = normalize(value);
|
|
45
|
+
state.value = normalized;
|
|
46
|
+
state.error = null;
|
|
47
|
+
state.status = 'resolved';
|
|
48
|
+
const settled = Promise.resolve(normalized);
|
|
49
|
+
state.promise = settled;
|
|
50
|
+
return normalized;
|
|
51
|
+
})
|
|
52
|
+
.catch((error) => {
|
|
53
|
+
state.error = error;
|
|
54
|
+
state.status = 'rejected';
|
|
55
|
+
state.promise = null;
|
|
56
|
+
throw error;
|
|
57
|
+
});
|
|
58
|
+
state.promise = pending;
|
|
59
|
+
return pending;
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
get() {
|
|
63
|
+
return state.value;
|
|
64
|
+
},
|
|
65
|
+
getError() {
|
|
66
|
+
return state.error;
|
|
67
|
+
},
|
|
68
|
+
getStatus() {
|
|
69
|
+
return state.status;
|
|
70
|
+
},
|
|
71
|
+
load() {
|
|
72
|
+
if (state.status === 'resolved') {
|
|
73
|
+
return Promise.resolve(state.value);
|
|
74
|
+
}
|
|
75
|
+
if (state.status === 'rejected') {
|
|
76
|
+
return Promise.reject(state.error);
|
|
77
|
+
}
|
|
78
|
+
if (state.promise != null) {
|
|
79
|
+
return state.promise;
|
|
80
|
+
}
|
|
81
|
+
return runLoad();
|
|
82
|
+
},
|
|
83
|
+
read() {
|
|
84
|
+
if (isResolved()) {
|
|
85
|
+
return state.value;
|
|
86
|
+
}
|
|
87
|
+
if (state.status === 'rejected') {
|
|
88
|
+
throw state.error;
|
|
89
|
+
}
|
|
90
|
+
if (state.promise != null) {
|
|
91
|
+
throw state.promise;
|
|
92
|
+
}
|
|
93
|
+
const pending = runLoad();
|
|
94
|
+
if (isResolved()) {
|
|
95
|
+
return state.value;
|
|
96
|
+
}
|
|
97
|
+
throw pending;
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmNSZXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hc3luY1Jlc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdCQSxTQUFTLFFBQVEsQ0FBSSxLQUFRO0lBQzNCLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUtELE1BQU0sVUFBVSxhQUFhLENBQUksS0FBYztJQUM3QyxPQUFPLENBQ0wsT0FBTyxLQUFLLEtBQUssUUFBUTtRQUN6QixLQUFLLElBQUksSUFBSTtRQUNiLE1BQU0sSUFBSSxLQUFLO1FBQ2YsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FDakMsQ0FBQztBQUNKLENBQUM7QUFTRCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLE1BQWtDLEVBQ2xDLE9BQW9EO0lBRXBELE1BQU0sU0FBUyxHQUNiLE9BQU8sRUFBRSxTQUFTLElBQUssUUFBc0MsQ0FBQztJQUNoRSxNQUFNLEtBQUssR0FBK0I7UUFDeEMsS0FBSyxFQUFFLElBQUk7UUFDWCxPQUFPLEVBQUUsSUFBSTtRQUNiLE1BQU0sRUFBRSxNQUFNO1FBQ2QsS0FBSyxFQUFFLFNBQVM7S0FDakIsQ0FBQztJQUtGLFNBQVMsVUFBVTtRQUNqQixPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDO0lBQ3JDLENBQUM7SUFNRCxTQUFTLE9BQU87UUFDZCxJQUFJLFFBQThCLENBQUM7UUFDbkMsSUFBSSxDQUFDO1lBQ0gsUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDcEIsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDckIsS0FBSyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUM7WUFDMUIsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBUyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN2QyxLQUFLLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQztZQUN6QixLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNuQixLQUFLLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztZQUMxQixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzVDLEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ3hCLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxLQUFLLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUN6QixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQzthQUN0QyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNkLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxLQUFLLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQztZQUN6QixLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNuQixLQUFLLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztZQUMxQixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzVDLEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ3hCLE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2YsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDcEIsS0FBSyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUM7WUFDMUIsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDckIsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztRQUNMLEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxPQUFPO1FBQ0wsR0FBRztZQUNELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNyQixDQUFDO1FBQ0QsUUFBUTtZQUNOLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNyQixDQUFDO1FBQ0QsU0FBUztZQUNQLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUN0QixDQUFDO1FBRUQsSUFBSTtZQUNGLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDaEMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFlLENBQUMsQ0FBQztZQUNoRCxDQUFDO1lBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUNoQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQzFCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUN2QixDQUFDO1lBQ0QsT0FBTyxPQUFPLEVBQUUsQ0FBQztRQUNuQixDQUFDO1FBQ0QsSUFBSTtZQUNGLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztnQkFDakIsT0FBTyxLQUFLLENBQUMsS0FBZSxDQUFDO1lBQy9CLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQ2hDLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNwQixDQUFDO1lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUUxQixNQUFNLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDdEIsQ0FBQztZQUNELE1BQU0sT0FBTyxHQUFHLE9BQU8sRUFBRSxDQUFDO1lBQzFCLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztnQkFDakIsT0FBTyxLQUFLLENBQUMsS0FBZSxDQUFDO1lBQy9CLENBQUM7WUFFRCxNQUFNLE9BQU8sQ0FBQztRQUNoQixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1heWJlUHJvbWlzZSwgUmVhZGFibGVSZXNvdXJjZSB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG50eXBlIEFzeW5jUmVzb3VyY2VTdGF0ZTxUPiA9IHtcbiAgZXJyb3I6IHVua25vd247XG4gIHByb21pc2U6IFByb21pc2U8VD4gfCBudWxsO1xuICBzdGF0dXM6ICdpZGxlJyB8ICdwZW5kaW5nJyB8ICdyZXNvbHZlZCcgfCAncmVqZWN0ZWQnO1xuICB2YWx1ZTogVCB8IHVuZGVmaW5lZDtcbn07XG5cbnR5cGUgQ3JlYXRlQXN5bmNSZXNvdXJjZU9wdGlvbnM8VElucHV0LCBUVmFsdWU+ID0ge1xuICBub3JtYWxpemU/OiAoaW5wdXQ6IFRJbnB1dCkgPT4gVFZhbHVlO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBnaXZlbiB2YWx1ZSB1bmNoYW5nZWQuXG4gKi9cbmZ1bmN0aW9uIGlkZW50aXR5PFQ+KHZhbHVlOiBUKTogVCB7XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuLyoqXG4gKiBEZXRlY3RzIHByb21pc2UtbGlrZSBvYmplY3RzIHVzZWQgYnkgcmVzb3VyY2UgbG9hZGVycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvbWlzZUxpa2U8VD4odmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBQcm9taXNlTGlrZTxUPiB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgIHZhbHVlICE9IG51bGwgJiZcbiAgICAndGhlbicgaW4gdmFsdWUgJiZcbiAgICB0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJ1xuICApO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBzbWFsbCBTdXNwZW5zZS1mcmllbmRseSByZXNvdXJjZSBhcm91bmQgc3luYyBvciBhc3luYyBsb2FkZXJzLlxuICpcbiAqIEBwYXJhbSBsb2FkZXIgLSBGdW5jdGlvbiByZXR1cm5pbmcgdGhlIHJhdyB2YWx1ZSBvciBhIHByb21pc2UgZm9yIGl0LlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25hbCBub3JtYWxpemF0aW9uIHN0ZXAgYXBwbGllZCBiZWZvcmUgc3RvcmluZyB0aGUgdmFsdWUuXG4gKiBAcmV0dXJucyBSZWFkYWJsZSByZXNvdXJjZSBleHBvc2luZyBzeW5jIHJlYWRzIGFuZCBleHBsaWNpdCBsb2FkaW5nIHN0YXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQXN5bmNSZXNvdXJjZTxUSW5wdXQsIFRWYWx1ZSA9IFRJbnB1dD4oXG4gIGxvYWRlcjogKCkgPT4gTWF5YmVQcm9taXNlPFRJbnB1dD4sXG4gIG9wdGlvbnM/OiBDcmVhdGVBc3luY1Jlc291cmNlT3B0aW9uczxUSW5wdXQsIFRWYWx1ZT4sXG4pOiBSZWFkYWJsZVJlc291cmNlPFRWYWx1ZT4ge1xuICBjb25zdCBub3JtYWxpemUgPVxuICAgIG9wdGlvbnM/Lm5vcm1hbGl6ZSA/PyAoaWRlbnRpdHkgYXMgKHZhbHVlOiBUSW5wdXQpID0+IFRWYWx1ZSk7XG4gIGNvbnN0IHN0YXRlOiBBc3luY1Jlc291cmNlU3RhdGU8VFZhbHVlPiA9IHtcbiAgICBlcnJvcjogbnVsbCxcbiAgICBwcm9taXNlOiBudWxsLFxuICAgIHN0YXR1czogJ2lkbGUnLFxuICAgIHZhbHVlOiB1bmRlZmluZWQsXG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSByZXNvdXJjZSBoYXMgYWxyZWFkeSByZXNvbHZlZC5cbiAgICovXG4gIGZ1bmN0aW9uIGlzUmVzb2x2ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN0YXRlLnN0YXR1cyA9PT0gJ3Jlc29sdmVkJztcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyB0aGUgbG9hZGVyIGFuZCBzdG9yZXMgdGhlIHJlc3VsdGluZyBzdGF0ZSB0cmFuc2l0aW9uLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcm9taXNlLWZ1bmN0aW9uLWFzeW5jXG4gIGZ1bmN0aW9uIHJ1bkxvYWQoKTogUHJvbWlzZTxUVmFsdWU+IHtcbiAgICBsZXQgcmVzb2x2ZWQ6IE1heWJlUHJvbWlzZTxUSW5wdXQ+O1xuICAgIHRyeSB7XG4gICAgICByZXNvbHZlZCA9IGxvYWRlcigpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBzdGF0ZS5lcnJvciA9IGVycm9yO1xuICAgICAgc3RhdGUucHJvbWlzZSA9IG51bGw7XG4gICAgICBzdGF0ZS5zdGF0dXMgPSAncmVqZWN0ZWQnO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuXG4gICAgaWYgKCFpc1Byb21pc2VMaWtlPFRJbnB1dD4ocmVzb2x2ZWQpKSB7XG4gICAgICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplKHJlc29sdmVkKTtcbiAgICAgIHN0YXRlLnZhbHVlID0gbm9ybWFsaXplZDtcbiAgICAgIHN0YXRlLmVycm9yID0gbnVsbDtcbiAgICAgIHN0YXRlLnN0YXR1cyA9ICdyZXNvbHZlZCc7XG4gICAgICBjb25zdCBzZXR0bGVkID0gUHJvbWlzZS5yZXNvbHZlKG5vcm1hbGl6ZWQpO1xuICAgICAgc3RhdGUucHJvbWlzZSA9IHNldHRsZWQ7XG4gICAgICByZXR1cm4gc2V0dGxlZDtcbiAgICB9XG5cbiAgICBzdGF0ZS5zdGF0dXMgPSAncGVuZGluZyc7XG4gICAgY29uc3QgcGVuZGluZyA9IFByb21pc2UucmVzb2x2ZShyZXNvbHZlZClcbiAgICAgIC50aGVuKCh2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplKHZhbHVlKTtcbiAgICAgICAgc3RhdGUudmFsdWUgPSBub3JtYWxpemVkO1xuICAgICAgICBzdGF0ZS5lcnJvciA9IG51bGw7XG4gICAgICAgIHN0YXRlLnN0YXR1cyA9ICdyZXNvbHZlZCc7XG4gICAgICAgIGNvbnN0IHNldHRsZWQgPSBQcm9taXNlLnJlc29sdmUobm9ybWFsaXplZCk7XG4gICAgICAgIHN0YXRlLnByb21pc2UgPSBzZXR0bGVkO1xuICAgICAgICByZXR1cm4gbm9ybWFsaXplZDtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIHN0YXRlLmVycm9yID0gZXJyb3I7XG4gICAgICAgIHN0YXRlLnN0YXR1cyA9ICdyZWplY3RlZCc7XG4gICAgICAgIHN0YXRlLnByb21pc2UgPSBudWxsO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICAgIHN0YXRlLnByb21pc2UgPSBwZW5kaW5nO1xuICAgIHJldHVybiBwZW5kaW5nO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBnZXQoKSB7XG4gICAgICByZXR1cm4gc3RhdGUudmFsdWU7XG4gICAgfSxcbiAgICBnZXRFcnJvcigpIHtcbiAgICAgIHJldHVybiBzdGF0ZS5lcnJvcjtcbiAgICB9LFxuICAgIGdldFN0YXR1cygpIHtcbiAgICAgIHJldHVybiBzdGF0ZS5zdGF0dXM7XG4gICAgfSxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3Byb21pc2UtZnVuY3Rpb24tYXN5bmNcbiAgICBsb2FkKCkge1xuICAgICAgaWYgKHN0YXRlLnN0YXR1cyA9PT0gJ3Jlc29sdmVkJykge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHN0YXRlLnZhbHVlIGFzIFRWYWx1ZSk7XG4gICAgICB9XG4gICAgICBpZiAoc3RhdGUuc3RhdHVzID09PSAncmVqZWN0ZWQnKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChzdGF0ZS5lcnJvcik7XG4gICAgICB9XG4gICAgICBpZiAoc3RhdGUucHJvbWlzZSAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiBzdGF0ZS5wcm9taXNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJ1bkxvYWQoKTtcbiAgICB9LFxuICAgIHJlYWQoKSB7XG4gICAgICBpZiAoaXNSZXNvbHZlZCgpKSB7XG4gICAgICAgIHJldHVybiBzdGF0ZS52YWx1ZSBhcyBUVmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAoc3RhdGUuc3RhdHVzID09PSAncmVqZWN0ZWQnKSB7XG4gICAgICAgIHRocm93IHN0YXRlLmVycm9yO1xuICAgICAgfVxuICAgICAgaWYgKHN0YXRlLnByb21pc2UgIT0gbnVsbCkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L29ubHktdGhyb3ctZXJyb3JcbiAgICAgICAgdGhyb3cgc3RhdGUucHJvbWlzZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBlbmRpbmcgPSBydW5Mb2FkKCk7XG4gICAgICBpZiAoaXNSZXNvbHZlZCgpKSB7XG4gICAgICAgIHJldHVybiBzdGF0ZS52YWx1ZSBhcyBUVmFsdWU7XG4gICAgICB9XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L29ubHktdGhyb3ctZXJyb3JcbiAgICAgIHRocm93IHBlbmRpbmc7XG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
|
package/lib/builder.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type MatchFunction, type ParamData } from 'path-to-regexp';
|
|
2
|
+
import type { FlatRouteInput, Redirect, AnyRoute } from './types.js';
|
|
3
|
+
export declare class FlatRoute<TParams extends ParamData> {
|
|
4
|
+
path: string;
|
|
5
|
+
routes: AnyRoute[];
|
|
6
|
+
matchFunction: MatchFunction<TParams>;
|
|
7
|
+
redirectTo?: string;
|
|
8
|
+
constructor(input: FlatRouteInput<TParams>);
|
|
9
|
+
}
|
|
10
|
+
export declare function isRedirect(route: AnyRoute | Redirect): route is Redirect;
|
|
11
|
+
export declare function buildRoute(routeConfig: readonly (AnyRoute | Redirect)[], parentRoutes?: AnyRoute[], prefix?: string): FlatRoute<ParamData>[];
|
|
12
|
+
export declare function buildRoutes(routeConfig: readonly AnyRoute[]): FlatRoute<ParamData>[];
|
|
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,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQrE,qBAAa,SAAS,CAAC,OAAO,SAAS,SAAS;IAEvC,IAAI,EAAE,MAAM,CAAC;IAGb,MAAM,EAAE,QAAQ,EAAE,CAAC;IAGnB,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAGtC,UAAU,CAAC,EAAE,MAAM,CAAC;gBAOR,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC;CAOlD;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,IAAI,QAAQ,CAGxE;AASD,wBAAgB,UAAU,CACxB,WAAW,EAAE,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,EAC7C,YAAY,GAAE,QAAQ,EAAO,EAC7B,MAAM,SAAK,GACV,SAAS,CAAC,SAAS,CAAC,EAAE,CAmExB;AAOD,wBAAgB,WAAW,CACzB,WAAW,EAAE,SAAS,QAAQ,EAAE,GAC/B,SAAS,CAAC,SAAS,CAAC,EAAE,CAExB"}
|
package/lib/builder.js
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
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
|
+
let normalized = route.path;
|
|
27
|
+
if (normalized.startsWith('/')) {
|
|
28
|
+
normalized = normalized.slice(1);
|
|
29
|
+
}
|
|
30
|
+
parts.push(normalized);
|
|
31
|
+
}
|
|
32
|
+
const newPath = parts.join('/');
|
|
33
|
+
const routeDefinition = route;
|
|
34
|
+
const { children } = routeDefinition;
|
|
35
|
+
if (!isRedirect(route) && children != null) {
|
|
36
|
+
const routes = buildRoute(children, [...parentRoutes, routeDefinition], newPath);
|
|
37
|
+
flatRoutes.push(...routes);
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
const matchFunction = match(`/${newPath}`, {
|
|
41
|
+
trailing: false,
|
|
42
|
+
});
|
|
43
|
+
let path = newPath;
|
|
44
|
+
if (!newPath.startsWith('/')) {
|
|
45
|
+
path = `/${newPath}`;
|
|
46
|
+
}
|
|
47
|
+
if (isRedirect(route)) {
|
|
48
|
+
let redirectTo = route.to;
|
|
49
|
+
if (!redirectTo.startsWith('/')) {
|
|
50
|
+
redirectTo = `${path}/${redirectTo}`;
|
|
51
|
+
}
|
|
52
|
+
flatRoutes.push(new FlatRoute({
|
|
53
|
+
path,
|
|
54
|
+
redirectTo,
|
|
55
|
+
matchFunction,
|
|
56
|
+
routes: [...parentRoutes],
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
flatRoutes.push(new FlatRoute({
|
|
61
|
+
path,
|
|
62
|
+
matchFunction,
|
|
63
|
+
routes: [...parentRoutes, routeDefinition],
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return flatRoutes;
|
|
68
|
+
}
|
|
69
|
+
export function buildRoutes(routeConfig) {
|
|
70
|
+
return buildRoute(routeConfig);
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQXNDLE1BQU0sZ0JBQWdCLENBQUM7QUFVM0UsTUFBTSxPQUFPLFNBQVM7SUFFYixJQUFJLENBQVM7SUFHYixNQUFNLENBQWE7SUFHbkIsYUFBYSxDQUF5QjtJQUd0QyxVQUFVLENBQVU7SUFPM0IsWUFBbUIsS0FBOEI7UUFDL0MsTUFBTSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztRQUMxRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0NBQ0Y7QUFHRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQTBCO0lBRW5ELE9BQVEsS0FBa0IsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDO0FBQ3hDLENBQUM7QUFTRCxNQUFNLFVBQVUsVUFBVSxDQUN4QixXQUE2QyxFQUM3QyxlQUEyQixFQUFFLEVBQzdCLE1BQU0sR0FBRyxFQUFFO0lBRVgsTUFBTSxVQUFVLEdBQTJCLEVBQUUsQ0FBQztJQUU5QyxLQUFLLE1BQU0sS0FBSyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNsQixLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDbEUsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztZQUM1QixJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFaEMsTUFBTSxlQUFlLEdBQUcsS0FBaUIsQ0FBQztRQUMxQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsZUFBZSxDQUFDO1FBRXJDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzNDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FDdkIsUUFBUSxFQUNSLENBQUMsR0FBRyxZQUFZLEVBQUUsZUFBZSxDQUFDLEVBQ2xDLE9BQU8sQ0FDUixDQUFDO1lBQ0YsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBRTNCLFNBQVM7UUFDWCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksT0FBTyxFQUFFLEVBQUU7WUFDekMsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBSSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUVELElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEIsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUUxQixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNoQyxVQUFVLEdBQUcsR0FBRyxJQUFJLElBQUksVUFBVSxFQUFFLENBQUM7WUFDdkMsQ0FBQztZQUNELFVBQVUsQ0FBQyxJQUFJLENBQ2IsSUFBSSxTQUFTLENBQUM7Z0JBQ1osSUFBSTtnQkFDSixVQUFVO2dCQUNWLGFBQWE7Z0JBQ2IsTUFBTSxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUM7YUFDMUIsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsQ0FBQyxJQUFJLENBQ2IsSUFBSSxTQUFTLENBQUM7Z0JBQ1osSUFBSTtnQkFDSixhQUFhO2dCQUNiLE1BQU0sRUFBRSxDQUFDLEdBQUcsWUFBWSxFQUFFLGVBQWUsQ0FBQzthQUMzQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQU9ELE1BQU0sVUFBVSxXQUFXLENBQ3pCLFdBQWdDO0lBRWhDLE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXRjaCwgdHlwZSBNYXRjaEZ1bmN0aW9uLCB0eXBlIFBhcmFtRGF0YSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcblxuaW1wb3J0IHR5cGUgeyBGbGF0Um91dGVJbnB1dCwgUmVkaXJlY3QsIEFueVJvdXRlIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGZsYXR0ZW5lZCByb3V0ZSB3aXRoIGEgY29tcGlsZWQgbWF0Y2ggZnVuY3Rpb24uXG4gKiBUaGlzIGlzIGFuIGludGVybmFsIHJlcHJlc2VudGF0aW9uIHVzZWQgYnkgdGhlIHJvdXRlciB0byBlZmZpY2llbnRseSBtYXRjaCBVUkxzLlxuICpcbiAqIEB0ZW1wbGF0ZSBUUGFyYW1zIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgY2xhc3MgRmxhdFJvdXRlPFRQYXJhbXMgZXh0ZW5kcyBQYXJhbURhdGE+IHtcbiAgLyoqIFRoZSBVUkwgcGF0aCBwYXR0ZXJuIGZvciB0aGlzIHJvdXRlICovXG4gIHB1YmxpYyBwYXRoOiBzdHJpbmc7XG5cbiAgLyoqIE5lc3RlZCByb3V0ZXMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQgd2l0aGluIHRoaXMgcm91dGUgKi9cbiAgcHVibGljIHJvdXRlczogQW55Um91dGVbXTtcblxuICAvKiogQ29tcGlsZWQgZnVuY3Rpb24gdG8gbWF0Y2ggVVJMIHBhdGhzIGFnYWluc3QgdGhpcyByb3V0ZSBwYXR0ZXJuICovXG4gIHB1YmxpYyBtYXRjaEZ1bmN0aW9uOiBNYXRjaEZ1bmN0aW9uPFRQYXJhbXM+O1xuXG4gIC8qKiBPcHRpb25hbCByZWRpcmVjdCBkZXN0aW5hdGlvbiBpZiB0aGlzIHJvdXRlIHNob3VsZCByZWRpcmVjdCAqL1xuICBwdWJsaWMgcmVkaXJlY3RUbz86IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBGbGF0Um91dGUgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSBpbnB1dCAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBmbGF0IHJvdXRlXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoaW5wdXQ6IEZsYXRSb3V0ZUlucHV0PFRQYXJhbXM+KSB7XG4gICAgY29uc3QgeyBtYXRjaEZ1bmN0aW9uLCBwYXRoLCByZWRpcmVjdFRvLCByb3V0ZXMgfSA9IGlucHV0O1xuICAgIHRoaXMucGF0aCA9IHBhdGg7XG4gICAgdGhpcy5yZWRpcmVjdFRvID0gcmVkaXJlY3RUbztcbiAgICB0aGlzLnJvdXRlcyA9IHJvdXRlcztcbiAgICB0aGlzLm1hdGNoRnVuY3Rpb24gPSBtYXRjaEZ1bmN0aW9uO1xuICB9XG59XG5cbi8qKiBOYXJyb3cgYSByb3V0ZSBjb25maWd1cmF0aW9uIHRvIGEgcmVkaXJlY3QuICovXG5leHBvcnQgZnVuY3Rpb24gaXNSZWRpcmVjdChyb3V0ZTogQW55Um91dGUgfCBSZWRpcmVjdCk6IHJvdXRlIGlzIFJlZGlyZWN0IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb25cbiAgcmV0dXJuIChyb3V0ZSBhcyBSZWRpcmVjdCkudG8gIT0gbnVsbDtcbn1cblxuLyoqXG4gKiBSZWN1cnNpdmVseSBmbGF0dGVucyBuZXN0ZWQgcm91dGUgZGVmaW5pdGlvbnMgaW50byBgRmxhdFJvdXRlYCBlbnRyaWVzLlxuICpcbiAqIEBwYXJhbSByb3V0ZUNvbmZpZyAtIFJvdXRlIG9yIHJlZGlyZWN0IGRlZmluaXRpb25zIHRvIHByb2Nlc3MuXG4gKiBAcGFyYW0gcGFyZW50Um91dGVzIC0gQWNjdW11bGF0ZWQgcGFyZW50IHJvdXRlcyBmb3IgbmVzdGluZyBjb250ZXh0LlxuICogQHBhcmFtIHByZWZpeCAtIEN1cnJlbnQgcGF0aCBwcmVmaXggcHJvcGFnYXRlZCBmcm9tIHBhcmVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFJvdXRlKFxuICByb3V0ZUNvbmZpZzogcmVhZG9ubHkgKEFueVJvdXRlIHwgUmVkaXJlY3QpW10sXG4gIHBhcmVudFJvdXRlczogQW55Um91dGVbXSA9IFtdLFxuICBwcmVmaXggPSAnJyxcbik6IEZsYXRSb3V0ZTxQYXJhbURhdGE+W10ge1xuICBjb25zdCBmbGF0Um91dGVzOiBGbGF0Um91dGU8UGFyYW1EYXRhPltdID0gW107XG5cbiAgZm9yIChjb25zdCByb3V0ZSBvZiByb3V0ZUNvbmZpZykge1xuICAgIGNvbnN0IHBhcnRzID0gW107XG4gICAgaWYgKHByZWZpeCAhPT0gJycpIHtcbiAgICAgIHBhcnRzLnB1c2gocHJlZml4KTtcbiAgICB9XG4gICAgaWYgKHJvdXRlLnBhdGggIT0gbnVsbCAmJiByb3V0ZS5wYXRoICE9PSAnJyAmJiByb3V0ZS5wYXRoICE9PSAnLycpIHtcbiAgICAgIGxldCBub3JtYWxpemVkID0gcm91dGUucGF0aDtcbiAgICAgIGlmIChub3JtYWxpemVkLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5zbGljZSgxKTtcbiAgICAgIH1cbiAgICAgIHBhcnRzLnB1c2gobm9ybWFsaXplZCk7XG4gICAgfVxuXG4gICAgY29uc3QgbmV3UGF0aCA9IHBhcnRzLmpvaW4oJy8nKTtcblxuICAgIGNvbnN0IHJvdXRlRGVmaW5pdGlvbiA9IHJvdXRlIGFzIEFueVJvdXRlO1xuICAgIGNvbnN0IHsgY2hpbGRyZW4gfSA9IHJvdXRlRGVmaW5pdGlvbjtcblxuICAgIGlmICghaXNSZWRpcmVjdChyb3V0ZSkgJiYgY2hpbGRyZW4gIT0gbnVsbCkge1xuICAgICAgY29uc3Qgcm91dGVzID0gYnVpbGRSb3V0ZShcbiAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIFsuLi5wYXJlbnRSb3V0ZXMsIHJvdXRlRGVmaW5pdGlvbl0sXG4gICAgICAgIG5ld1BhdGgsXG4gICAgICApO1xuICAgICAgZmxhdFJvdXRlcy5wdXNoKC4uLnJvdXRlcyk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29udGludWVcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IG1hdGNoRnVuY3Rpb24gPSBtYXRjaChgLyR7bmV3UGF0aH1gLCB7XG4gICAgICB0cmFpbGluZzogZmFsc2UsXG4gICAgfSk7XG5cbiAgICBsZXQgcGF0aCA9IG5ld1BhdGg7XG4gICAgaWYgKCFuZXdQYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgcGF0aCA9IGAvJHtuZXdQYXRofWA7XG4gICAgfVxuXG4gICAgaWYgKGlzUmVkaXJlY3Qocm91dGUpKSB7XG4gICAgICBsZXQgcmVkaXJlY3RUbyA9IHJvdXRlLnRvO1xuXG4gICAgICBpZiAoIXJlZGlyZWN0VG8uc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgIHJlZGlyZWN0VG8gPSBgJHtwYXRofS8ke3JlZGlyZWN0VG99YDtcbiAgICAgIH1cbiAgICAgIGZsYXRSb3V0ZXMucHVzaChcbiAgICAgICAgbmV3IEZsYXRSb3V0ZSh7XG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICByZWRpcmVjdFRvLFxuICAgICAgICAgIG1hdGNoRnVuY3Rpb24sXG4gICAgICAgICAgcm91dGVzOiBbLi4ucGFyZW50Um91dGVzXSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBmbGF0Um91dGVzLnB1c2goXG4gICAgICAgIG5ldyBGbGF0Um91dGUoe1xuICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgbWF0Y2hGdW5jdGlvbixcbiAgICAgICAgICByb3V0ZXM6IFsuLi5wYXJlbnRSb3V0ZXMsIHJvdXRlRGVmaW5pdGlvbl0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmxhdFJvdXRlcztcbn1cblxuLyoqXG4gKiBUb3AtbGV2ZWwgY29udmVuaWVuY2UgdG8gZmxhdHRlbiBhIHJvdXRlIGNvbmZpZ3VyYXRpb24gaW50byBgRmxhdFJvdXRlYHMuXG4gKlxuICogQHBhcmFtIHJvdXRlQ29uZmlnIC0gUm91dGUgZGVmaW5pdGlvbnMgdG8gZmxhdHRlbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUm91dGVzKFxuICByb3V0ZUNvbmZpZzogcmVhZG9ubHkgQW55Um91dGVbXSxcbik6IEZsYXRSb3V0ZTxQYXJhbURhdGE+W10ge1xuICByZXR1cm4gYnVpbGRSb3V0ZShyb3V0ZUNvbmZpZyk7XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpRedirect.d.ts","sourceRoot":"","sources":["../../src/errors/HttpRedirect.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,KAAK;IAEtC,UAAU,EAAE,MAAM,CAAC;IAGnB,UAAU,EAAE,MAAM,CAAC;gBAQP,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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFJlZGlyZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9ycy9IdHRwUmVkaXJlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxDQUFDLE9BQU8sT0FBTyxZQUFhLFNBQVEsS0FBSztJQUV0QyxVQUFVLENBQVM7SUFHbkIsVUFBVSxDQUFTO0lBUTFCLFlBQW1CLFVBQWtCLEVBQUUsVUFBVSxHQUFHLEdBQUc7UUFDckQsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXRCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBSTdCLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogRXJyb3IgdGhhdCBzaWduYWxzIGFuIEhUVFAgcmVkaXJlY3QgZnJvbSByb3V0ZSBsb2dpYy4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEh0dHBSZWRpcmVjdCBleHRlbmRzIEVycm9yIHtcbiAgLyoqIFRoZSBVUkwgdG8gcmVkaXJlY3QgdG8gKi9cbiAgcHVibGljIHJlZGlyZWN0VG86IHN0cmluZztcblxuICAvKiogSFRUUCBzdGF0dXMgY29kZSBmb3IgdGhlIHJlZGlyZWN0ICgzMDEsIDMwMiwgZXRjLikgKi9cbiAgcHVibGljIHN0YXR1c0NvZGU6IG51bWJlcjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBIdHRwUmVkaXJlY3QgZXJyb3IuXG4gICAqXG4gICAqIEBwYXJhbSByZWRpcmVjdFRvIC0gVGhlIFVSTCB0byByZWRpcmVjdCB0b1xuICAgKiBAcGFyYW0gc3RhdHVzQ29kZSAtIEhUVFAgc3RhdHVzIGNvZGUgKGRlZmF1bHRzIHRvIDMwMiBmb3IgdGVtcG9yYXJ5IHJlZGlyZWN0KVxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHJlZGlyZWN0VG86IHN0cmluZywgc3RhdHVzQ29kZSA9IDMwMikge1xuICAgIHN1cGVyKCdIdHRwUmVkaXJlY3QnKTtcblxuICAgIHRoaXMucmVkaXJlY3RUbyA9IHJlZGlyZWN0VG87XG4gICAgdGhpcy5zdGF0dXNDb2RlID0gc3RhdHVzQ29kZTtcblxuICAgIC8vIEZpeCBmb3IgaW5zdGFuY2VvZiBidWcgaW4gVHlwZVNjcmlwdDpcbiAgICAvLyBodHRwczovL3d3dy5kYW5ueWd1by5jb20vYmxvZy9ob3ctdG8tZml4LWluc3RhbmNlb2Ytbm90LXdvcmtpbmctZm9yLWN1c3RvbS1lcnJvcnMtaW4tdHlwZXNjcmlwdC9cbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSHR0cFJlZGlyZWN0LnByb3RvdHlwZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AACA,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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXJyb3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLElBQUksWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogUmUtZXhwb3J0IG9mIHRoZSBIdHRwUmVkaXJlY3QgZXJyb3IgaGVscGVyLiAqL1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBIdHRwUmVkaXJlY3QgfSBmcm9tICcuL0h0dHBSZWRpcmVjdC5qcyc7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eslint-rules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,uCAAuC,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { default as noDirectWindowLocationSearch } from './no-direct-window-location-search.js';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXNsaW50LXJ1bGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLElBQUksNEJBQTRCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgbm9EaXJlY3RXaW5kb3dMb2NhdGlvblNlYXJjaCB9IGZyb20gJy4vbm8tZGlyZWN0LXdpbmRvdy1sb2NhdGlvbi1zZWFyY2guanMnO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-direct-window-location-search.d.ts","sourceRoot":"","sources":["../../src/eslint-rules/no-direct-window-location-search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAMnC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,UAmDhB,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
const rule = {
|
|
2
|
+
meta: {
|
|
3
|
+
type: 'suggestion',
|
|
4
|
+
docs: {
|
|
5
|
+
description: 'Discourage direct window.location.search access; use useQuery()/useFilters() instead',
|
|
6
|
+
recommended: false,
|
|
7
|
+
},
|
|
8
|
+
messages: {
|
|
9
|
+
avoid: 'Avoid direct access to window.location.search. Use useQuery() / useFilters() from @plumile/router.',
|
|
10
|
+
},
|
|
11
|
+
schema: [
|
|
12
|
+
{
|
|
13
|
+
type: 'object',
|
|
14
|
+
properties: {
|
|
15
|
+
allowInFiles: { type: 'array', items: { type: 'string' } },
|
|
16
|
+
},
|
|
17
|
+
additionalProperties: false,
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
},
|
|
21
|
+
create(context) {
|
|
22
|
+
const rawOption = context.options[0];
|
|
23
|
+
const allowIn = new Set(rawOption?.allowInFiles ?? []);
|
|
24
|
+
const filename = context.getFilename();
|
|
25
|
+
const isAllowed = [...allowIn].some((pat) => {
|
|
26
|
+
return filename.includes(pat);
|
|
27
|
+
});
|
|
28
|
+
return {
|
|
29
|
+
MemberExpression(node) {
|
|
30
|
+
if (isAllowed)
|
|
31
|
+
return;
|
|
32
|
+
if (node.property.type === 'Identifier' &&
|
|
33
|
+
node.property.name === 'search' &&
|
|
34
|
+
node.object.type === 'MemberExpression') {
|
|
35
|
+
const obj = node.object;
|
|
36
|
+
if (obj.property.type === 'Identifier' &&
|
|
37
|
+
obj.property.name === 'location' &&
|
|
38
|
+
obj.object.type === 'Identifier' &&
|
|
39
|
+
obj.object.name === 'window') {
|
|
40
|
+
context.report({ node, messageId: 'avoid' });
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
export default rule;
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tZGlyZWN0LXdpbmRvdy1sb2NhdGlvbi1zZWFyY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXNsaW50LXJ1bGVzL25vLWRpcmVjdC13aW5kb3ctbG9jYXRpb24tc2VhcmNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sSUFBSSxHQUFvQjtJQUM1QixJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsWUFBWTtRQUNsQixJQUFJLEVBQUU7WUFDSixXQUFXLEVBQ1Qsc0ZBQXNGO1lBQ3hGLFdBQVcsRUFBRSxLQUFLO1NBQ25CO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsS0FBSyxFQUNILG9HQUFvRztTQUN2RztRQUNELE1BQU0sRUFBRTtZQUNOO2dCQUNFLElBQUksRUFBRSxRQUFRO2dCQUNkLFVBQVUsRUFBRTtvQkFDVixZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRTtpQkFDM0Q7Z0JBQ0Qsb0JBQW9CLEVBQUUsS0FBSzthQUM1QjtTQUNGO0tBQ0Y7SUFDRCxNQUFNLENBQUMsT0FBTztRQUNaLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUE2QixDQUFDO1FBQ2pFLE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsRUFBRSxZQUFZLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdkQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMxQyxPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPO1lBQ0wsZ0JBQWdCLENBQUMsSUFBSTtnQkFDbkIsSUFBSSxTQUFTO29CQUFFLE9BQU87Z0JBQ3RCLElBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssWUFBWTtvQkFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssUUFBUTtvQkFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssa0JBQWtCLEVBQ3ZDLENBQUM7b0JBQ0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztvQkFDeEIsSUFDRSxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxZQUFZO3dCQUNsQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxVQUFVO3dCQUNoQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZO3dCQUNoQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQzVCLENBQUM7d0JBQ0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztvQkFDL0MsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQztBQUVGLGVBQWUsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTW92ZWQgZnJvbSBwYWNrYWdlIHJvb3QgZXNsaW50LXJ1bGVzIGRpcmVjdG9yeSBpbnRvIHNyYyB0byBzYXRpc2Z5IFRTIHJvb3REaXJcbmltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gJ2VzbGludCc7XG5cbmludGVyZmFjZSBPcHRpb25zU2hhcGUge1xuICBhbGxvd0luRmlsZXM/OiBzdHJpbmdbXTtcbn1cblxuY29uc3QgcnVsZTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnRGlzY291cmFnZSBkaXJlY3Qgd2luZG93LmxvY2F0aW9uLnNlYXJjaCBhY2Nlc3M7IHVzZSB1c2VRdWVyeSgpL3VzZUZpbHRlcnMoKSBpbnN0ZWFkJyxcbiAgICAgIHJlY29tbWVuZGVkOiBmYWxzZSxcbiAgICB9LFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICBhdm9pZDpcbiAgICAgICAgJ0F2b2lkIGRpcmVjdCBhY2Nlc3MgdG8gd2luZG93LmxvY2F0aW9uLnNlYXJjaC4gVXNlIHVzZVF1ZXJ5KCkgLyB1c2VGaWx0ZXJzKCkgZnJvbSBAcGx1bWlsZS9yb3V0ZXIuJyxcbiAgICB9LFxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIGFsbG93SW5GaWxlczogeyB0eXBlOiAnYXJyYXknLCBpdGVtczogeyB0eXBlOiAnc3RyaW5nJyB9IH0sXG4gICAgICAgIH0sXG4gICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCByYXdPcHRpb24gPSBjb250ZXh0Lm9wdGlvbnNbMF0gYXMgT3B0aW9uc1NoYXBlIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGFsbG93SW4gPSBuZXcgU2V0KHJhd09wdGlvbj8uYWxsb3dJbkZpbGVzID8/IFtdKTtcbiAgICBjb25zdCBmaWxlbmFtZSA9IGNvbnRleHQuZ2V0RmlsZW5hbWUoKTtcbiAgICBjb25zdCBpc0FsbG93ZWQgPSBbLi4uYWxsb3dJbl0uc29tZSgocGF0KSA9PiB7XG4gICAgICByZXR1cm4gZmlsZW5hbWUuaW5jbHVkZXMocGF0KTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBNZW1iZXJFeHByZXNzaW9uKG5vZGUpIHtcbiAgICAgICAgaWYgKGlzQWxsb3dlZCkgcmV0dXJuO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgbm9kZS5wcm9wZXJ0eS50eXBlID09PSAnSWRlbnRpZmllcicgJiZcbiAgICAgICAgICBub2RlLnByb3BlcnR5Lm5hbWUgPT09ICdzZWFyY2gnICYmXG4gICAgICAgICAgbm9kZS5vYmplY3QudHlwZSA9PT0gJ01lbWJlckV4cHJlc3Npb24nXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IG9iaiA9IG5vZGUub2JqZWN0O1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIG9iai5wcm9wZXJ0eS50eXBlID09PSAnSWRlbnRpZmllcicgJiZcbiAgICAgICAgICAgIG9iai5wcm9wZXJ0eS5uYW1lID09PSAnbG9jYXRpb24nICYmXG4gICAgICAgICAgICBvYmoub2JqZWN0LnR5cGUgPT09ICdJZGVudGlmaWVyJyAmJlxuICAgICAgICAgICAgb2JqLm9iamVjdC5uYW1lID09PSAnd2luZG93J1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlLCBtZXNzYWdlSWQ6ICdhdm9pZCcgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBydWxlO1xuIl19
|
package/lib/esm/builder.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { type MatchFunction, type ParamData } from 'path-to-regexp';
|
|
2
|
-
import type { FlatRouteInput, Redirect, AnyRoute
|
|
3
|
-
export declare class FlatRoute<TParams extends ParamData
|
|
2
|
+
import type { FlatRouteInput, Redirect, AnyRoute } from './types.js';
|
|
3
|
+
export declare class FlatRoute<TParams extends ParamData> {
|
|
4
4
|
path: string;
|
|
5
|
-
routes:
|
|
5
|
+
routes: AnyRoute[];
|
|
6
6
|
matchFunction: MatchFunction<TParams>;
|
|
7
7
|
redirectTo?: string;
|
|
8
|
-
constructor(input: FlatRouteInput<TParams
|
|
8
|
+
constructor(input: FlatRouteInput<TParams>);
|
|
9
9
|
}
|
|
10
|
-
export declare function isRedirect
|
|
11
|
-
export declare function buildRoute
|
|
12
|
-
export declare function buildRoutes
|
|
10
|
+
export declare function isRedirect(route: AnyRoute | Redirect): route is Redirect;
|
|
11
|
+
export declare function buildRoute(routeConfig: readonly (AnyRoute | Redirect)[], parentRoutes?: AnyRoute[], prefix?: string): FlatRoute<ParamData>[];
|
|
12
|
+
export declare function buildRoutes(routeConfig: readonly AnyRoute[]): FlatRoute<ParamData>[];
|
|
13
13
|
//# sourceMappingURL=builder.d.ts.map
|
package/lib/esm/builder.d.ts.map
CHANGED
|
@@ -1 +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,
|
|
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,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQrE,qBAAa,SAAS,CAAC,OAAO,SAAS,SAAS;IAEvC,IAAI,EAAE,MAAM,CAAC;IAGb,MAAM,EAAE,QAAQ,EAAE,CAAC;IAGnB,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAGtC,UAAU,CAAC,EAAE,MAAM,CAAC;gBAOR,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC;CAOlD;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,IAAI,QAAQ,CAGxE;AASD,wBAAgB,UAAU,CACxB,WAAW,EAAE,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,EAC7C,YAAY,GAAE,QAAQ,EAAO,EAC7B,MAAM,SAAK,GACV,SAAS,CAAC,SAAS,CAAC,EAAE,CAmExB;AAOD,wBAAgB,WAAW,CACzB,WAAW,EAAE,SAAS,QAAQ,EAAE,GAC/B,SAAS,CAAC,SAAS,CAAC,EAAE,CAExB"}
|
package/lib/esm/builder.js
CHANGED
|
@@ -69,4 +69,4 @@ export function buildRoute(routeConfig, parentRoutes = [], prefix = '') {
|
|
|
69
69
|
export function buildRoutes(routeConfig) {
|
|
70
70
|
return buildRoute(routeConfig);
|
|
71
71
|
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQXNDLE1BQU0sZ0JBQWdCLENBQUM7QUFVM0UsTUFBTSxPQUFPLFNBQVM7SUFFYixJQUFJLENBQVM7SUFHYixNQUFNLENBQWE7SUFHbkIsYUFBYSxDQUF5QjtJQUd0QyxVQUFVLENBQVU7SUFPM0IsWUFBbUIsS0FBOEI7UUFDL0MsTUFBTSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztRQUMxRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0NBQ0Y7QUFHRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQTBCO0lBRW5ELE9BQVEsS0FBa0IsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDO0FBQ3hDLENBQUM7QUFTRCxNQUFNLFVBQVUsVUFBVSxDQUN4QixXQUE2QyxFQUM3QyxlQUEyQixFQUFFLEVBQzdCLE1BQU0sR0FBRyxFQUFFO0lBRVgsTUFBTSxVQUFVLEdBQTJCLEVBQUUsQ0FBQztJQUU5QyxLQUFLLE1BQU0sS0FBSyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNsQixLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDbEUsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztZQUM1QixJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFaEMsTUFBTSxlQUFlLEdBQUcsS0FBaUIsQ0FBQztRQUMxQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsZUFBZSxDQUFDO1FBRXJDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzNDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FDdkIsUUFBUSxFQUNSLENBQUMsR0FBRyxZQUFZLEVBQUUsZUFBZSxDQUFDLEVBQ2xDLE9BQU8sQ0FDUixDQUFDO1lBQ0YsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBRTNCLFNBQVM7UUFDWCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksT0FBTyxFQUFFLEVBQUU7WUFDekMsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBSSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUVELElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEIsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUUxQixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNoQyxVQUFVLEdBQUcsR0FBRyxJQUFJLElBQUksVUFBVSxFQUFFLENBQUM7WUFDdkMsQ0FBQztZQUNELFVBQVUsQ0FBQyxJQUFJLENBQ2IsSUFBSSxTQUFTLENBQUM7Z0JBQ1osSUFBSTtnQkFDSixVQUFVO2dCQUNWLGFBQWE7Z0JBQ2IsTUFBTSxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUM7YUFDMUIsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsQ0FBQyxJQUFJLENBQ2IsSUFBSSxTQUFTLENBQUM7Z0JBQ1osSUFBSTtnQkFDSixhQUFhO2dCQUNiLE1BQU0sRUFBRSxDQUFDLEdBQUcsWUFBWSxFQUFFLGVBQWUsQ0FBQzthQUMzQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQU9ELE1BQU0sVUFBVSxXQUFXLENBQ3pCLFdBQWdDO0lBRWhDLE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXRjaCwgdHlwZSBNYXRjaEZ1bmN0aW9uLCB0eXBlIFBhcmFtRGF0YSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcblxuaW1wb3J0IHR5cGUgeyBGbGF0Um91dGVJbnB1dCwgUmVkaXJlY3QsIEFueVJvdXRlIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGZsYXR0ZW5lZCByb3V0ZSB3aXRoIGEgY29tcGlsZWQgbWF0Y2ggZnVuY3Rpb24uXG4gKiBUaGlzIGlzIGFuIGludGVybmFsIHJlcHJlc2VudGF0aW9uIHVzZWQgYnkgdGhlIHJvdXRlciB0byBlZmZpY2llbnRseSBtYXRjaCBVUkxzLlxuICpcbiAqIEB0ZW1wbGF0ZSBUUGFyYW1zIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgY2xhc3MgRmxhdFJvdXRlPFRQYXJhbXMgZXh0ZW5kcyBQYXJhbURhdGE+IHtcbiAgLyoqIFRoZSBVUkwgcGF0aCBwYXR0ZXJuIGZvciB0aGlzIHJvdXRlICovXG4gIHB1YmxpYyBwYXRoOiBzdHJpbmc7XG5cbiAgLyoqIE5lc3RlZCByb3V0ZXMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQgd2l0aGluIHRoaXMgcm91dGUgKi9cbiAgcHVibGljIHJvdXRlczogQW55Um91dGVbXTtcblxuICAvKiogQ29tcGlsZWQgZnVuY3Rpb24gdG8gbWF0Y2ggVVJMIHBhdGhzIGFnYWluc3QgdGhpcyByb3V0ZSBwYXR0ZXJuICovXG4gIHB1YmxpYyBtYXRjaEZ1bmN0aW9uOiBNYXRjaEZ1bmN0aW9uPFRQYXJhbXM+O1xuXG4gIC8qKiBPcHRpb25hbCByZWRpcmVjdCBkZXN0aW5hdGlvbiBpZiB0aGlzIHJvdXRlIHNob3VsZCByZWRpcmVjdCAqL1xuICBwdWJsaWMgcmVkaXJlY3RUbz86IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBGbGF0Um91dGUgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSBpbnB1dCAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBmbGF0IHJvdXRlXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoaW5wdXQ6IEZsYXRSb3V0ZUlucHV0PFRQYXJhbXM+KSB7XG4gICAgY29uc3QgeyBtYXRjaEZ1bmN0aW9uLCBwYXRoLCByZWRpcmVjdFRvLCByb3V0ZXMgfSA9IGlucHV0O1xuICAgIHRoaXMucGF0aCA9IHBhdGg7XG4gICAgdGhpcy5yZWRpcmVjdFRvID0gcmVkaXJlY3RUbztcbiAgICB0aGlzLnJvdXRlcyA9IHJvdXRlcztcbiAgICB0aGlzLm1hdGNoRnVuY3Rpb24gPSBtYXRjaEZ1bmN0aW9uO1xuICB9XG59XG5cbi8qKiBOYXJyb3cgYSByb3V0ZSBjb25maWd1cmF0aW9uIHRvIGEgcmVkaXJlY3QuICovXG5leHBvcnQgZnVuY3Rpb24gaXNSZWRpcmVjdChyb3V0ZTogQW55Um91dGUgfCBSZWRpcmVjdCk6IHJvdXRlIGlzIFJlZGlyZWN0IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb25cbiAgcmV0dXJuIChyb3V0ZSBhcyBSZWRpcmVjdCkudG8gIT0gbnVsbDtcbn1cblxuLyoqXG4gKiBSZWN1cnNpdmVseSBmbGF0dGVucyBuZXN0ZWQgcm91dGUgZGVmaW5pdGlvbnMgaW50byBgRmxhdFJvdXRlYCBlbnRyaWVzLlxuICpcbiAqIEBwYXJhbSByb3V0ZUNvbmZpZyAtIFJvdXRlIG9yIHJlZGlyZWN0IGRlZmluaXRpb25zIHRvIHByb2Nlc3MuXG4gKiBAcGFyYW0gcGFyZW50Um91dGVzIC0gQWNjdW11bGF0ZWQgcGFyZW50IHJvdXRlcyBmb3IgbmVzdGluZyBjb250ZXh0LlxuICogQHBhcmFtIHByZWZpeCAtIEN1cnJlbnQgcGF0aCBwcmVmaXggcHJvcGFnYXRlZCBmcm9tIHBhcmVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFJvdXRlKFxuICByb3V0ZUNvbmZpZzogcmVhZG9ubHkgKEFueVJvdXRlIHwgUmVkaXJlY3QpW10sXG4gIHBhcmVudFJvdXRlczogQW55Um91dGVbXSA9IFtdLFxuICBwcmVmaXggPSAnJyxcbik6IEZsYXRSb3V0ZTxQYXJhbURhdGE+W10ge1xuICBjb25zdCBmbGF0Um91dGVzOiBGbGF0Um91dGU8UGFyYW1EYXRhPltdID0gW107XG5cbiAgZm9yIChjb25zdCByb3V0ZSBvZiByb3V0ZUNvbmZpZykge1xuICAgIGNvbnN0IHBhcnRzID0gW107XG4gICAgaWYgKHByZWZpeCAhPT0gJycpIHtcbiAgICAgIHBhcnRzLnB1c2gocHJlZml4KTtcbiAgICB9XG4gICAgaWYgKHJvdXRlLnBhdGggIT0gbnVsbCAmJiByb3V0ZS5wYXRoICE9PSAnJyAmJiByb3V0ZS5wYXRoICE9PSAnLycpIHtcbiAgICAgIGxldCBub3JtYWxpemVkID0gcm91dGUucGF0aDtcbiAgICAgIGlmIChub3JtYWxpemVkLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5zbGljZSgxKTtcbiAgICAgIH1cbiAgICAgIHBhcnRzLnB1c2gobm9ybWFsaXplZCk7XG4gICAgfVxuXG4gICAgY29uc3QgbmV3UGF0aCA9IHBhcnRzLmpvaW4oJy8nKTtcblxuICAgIGNvbnN0IHJvdXRlRGVmaW5pdGlvbiA9IHJvdXRlIGFzIEFueVJvdXRlO1xuICAgIGNvbnN0IHsgY2hpbGRyZW4gfSA9IHJvdXRlRGVmaW5pdGlvbjtcblxuICAgIGlmICghaXNSZWRpcmVjdChyb3V0ZSkgJiYgY2hpbGRyZW4gIT0gbnVsbCkge1xuICAgICAgY29uc3Qgcm91dGVzID0gYnVpbGRSb3V0ZShcbiAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIFsuLi5wYXJlbnRSb3V0ZXMsIHJvdXRlRGVmaW5pdGlvbl0sXG4gICAgICAgIG5ld1BhdGgsXG4gICAgICApO1xuICAgICAgZmxhdFJvdXRlcy5wdXNoKC4uLnJvdXRlcyk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29udGludWVcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IG1hdGNoRnVuY3Rpb24gPSBtYXRjaChgLyR7bmV3UGF0aH1gLCB7XG4gICAgICB0cmFpbGluZzogZmFsc2UsXG4gICAgfSk7XG5cbiAgICBsZXQgcGF0aCA9IG5ld1BhdGg7XG4gICAgaWYgKCFuZXdQYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgcGF0aCA9IGAvJHtuZXdQYXRofWA7XG4gICAgfVxuXG4gICAgaWYgKGlzUmVkaXJlY3Qocm91dGUpKSB7XG4gICAgICBsZXQgcmVkaXJlY3RUbyA9IHJvdXRlLnRvO1xuXG4gICAgICBpZiAoIXJlZGlyZWN0VG8uc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgIHJlZGlyZWN0VG8gPSBgJHtwYXRofS8ke3JlZGlyZWN0VG99YDtcbiAgICAgIH1cbiAgICAgIGZsYXRSb3V0ZXMucHVzaChcbiAgICAgICAgbmV3IEZsYXRSb3V0ZSh7XG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICByZWRpcmVjdFRvLFxuICAgICAgICAgIG1hdGNoRnVuY3Rpb24sXG4gICAgICAgICAgcm91dGVzOiBbLi4ucGFyZW50Um91dGVzXSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBmbGF0Um91dGVzLnB1c2goXG4gICAgICAgIG5ldyBGbGF0Um91dGUoe1xuICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgbWF0Y2hGdW5jdGlvbixcbiAgICAgICAgICByb3V0ZXM6IFsuLi5wYXJlbnRSb3V0ZXMsIHJvdXRlRGVmaW5pdGlvbl0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmxhdFJvdXRlcztcbn1cblxuLyoqXG4gKiBUb3AtbGV2ZWwgY29udmVuaWVuY2UgdG8gZmxhdHRlbiBhIHJvdXRlIGNvbmZpZ3VyYXRpb24gaW50byBgRmxhdFJvdXRlYHMuXG4gKlxuICogQHBhcmFtIHJvdXRlQ29uZmlnIC0gUm91dGUgZGVmaW5pdGlvbnMgdG8gZmxhdHRlbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUm91dGVzKFxuICByb3V0ZUNvbmZpZzogcmVhZG9ubHkgQW55Um91dGVbXSxcbik6IEZsYXRSb3V0ZTxQYXJhbURhdGE+W10ge1xuICByZXR1cm4gYnVpbGRSb3V0ZShyb3V0ZUNvbmZpZyk7XG59XG4iXX0=
|
|
@@ -3,7 +3,7 @@ import type { ParamData } from 'path-to-regexp';
|
|
|
3
3
|
import { type RoutingContextType, type AnyRoute, type PreparedAccess, type NavigateOverloads, type UnknownQueryShape } from '../types.js';
|
|
4
4
|
import { type InstrumentationAPI } from '../instrumentation/Instrumentation.js';
|
|
5
5
|
type RouterQuerySchema = FilterSchema | undefined;
|
|
6
|
-
export type CreateRouterReturn<TContext, R extends AnyRoute
|
|
6
|
+
export type CreateRouterReturn<TContext, R extends AnyRoute[]> = {
|
|
7
7
|
cleanup: () => void;
|
|
8
8
|
context: RoutingContextType<ParamData, RouterQuerySchema, UnknownQueryShape, TContext> & PreparedAccess<R> & {
|
|
9
9
|
navigate: NavigateOverloads<R>;
|
|
@@ -14,6 +14,6 @@ export type CreateRouterOptions<TContext> = {
|
|
|
14
14
|
context?: TContext | (() => TContext);
|
|
15
15
|
getContext?: () => TContext;
|
|
16
16
|
};
|
|
17
|
-
export default function createRouter<TContext = unknown, R extends AnyRoute
|
|
17
|
+
export default function createRouter<TContext = unknown, R extends AnyRoute[] = AnyRoute[]>(routes: [...R] | AnyRoute[], options?: CreateRouterOptions<TContext>): CreateRouterReturn<TContext, R>;
|
|
18
18
|
export {};
|
|
19
19
|
//# sourceMappingURL=createRouter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createRouter.d.ts","sourceRoot":"","sources":["../../../src/routing/createRouter.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,MAAM,IAAI,YAAY,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAOtB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,kBAAkB,EAKxB,MAAM,uCAAuC,CAAC;AAQ/C,KAAK,iBAAiB,GAAG,YAAY,GAAG,SAAS,CAAC;AAgBlD,MAAM,MAAM,kBAAkB,CAAC,QAAQ,EAAE,CAAC,SAAS,QAAQ,
|
|
1
|
+
{"version":3,"file":"createRouter.d.ts","sourceRoot":"","sources":["../../../src/routing/createRouter.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,MAAM,IAAI,YAAY,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAOtB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,kBAAkB,EAKxB,MAAM,uCAAuC,CAAC;AAQ/C,KAAK,iBAAiB,GAAG,YAAY,GAAG,SAAS,CAAC;AAgBlD,MAAM,MAAM,kBAAkB,CAAC,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAAE,IAAI;IAE/D,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB,OAAO,EAAE,kBAAkB,CACzB,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,CACT,GACC,cAAc,CAAC,CAAC,CAAC,GAAG;QAClB,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAChC,CAAC;CACL,CAAC;AAwCF,MAAM,MAAM,mBAAmB,CAAC,QAAQ,IAAI;IAE1C,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAExC,OAAO,CAAC,EAAE,QAAQ,GAAG,CAAC,MAAM,QAAQ,CAAC,CAAC;IAEtC,UAAU,CAAC,EAAE,MAAM,QAAQ,CAAC;CAC7B,CAAC;AASF,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,QAAQ,GAAG,OAAO,EAClB,CAAC,SAAS,QAAQ,EAAE,GAAG,QAAQ,EAAE,EAEjC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,EAC3B,OAAO,GAAE,mBAAmB,CAAC,QAAQ,CAAM,GAC1C,kBAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAk0BjC"}
|