@uxf/router 2.1.2 → 2.2.0-beta.2
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/README.md +100 -41
- package/helper.d.ts +2 -2
- package/index.d.ts +1 -1
- package/index.js +7 -3
- package/package.json +8 -8
- package/router.d.ts +16 -0
- package/router.js +37 -0
- package/sitemapGenerator.d.ts +20 -0
- package/sitemapGenerator.js +112 -0
- package/types.d.ts +14 -41
- package/Router.d.ts +0 -13
- package/Router.js +0 -109
- package/Router.test.d.ts +0 -1
- package/Router.test.js +0 -13
package/README.md
CHANGED
|
@@ -5,43 +5,36 @@
|
|
|
5
5
|
```
|
|
6
6
|
yarn add @uxf/router
|
|
7
7
|
```
|
|
8
|
-
or
|
|
9
|
-
```
|
|
10
|
-
npm install @uxf/router --save
|
|
11
|
-
```
|
|
12
8
|
|
|
13
9
|
- Create `routes` directory
|
|
14
10
|
- Create `routes.ts` and `index.ts` inside `routes` directory:
|
|
15
11
|
|
|
16
12
|
```ts
|
|
17
13
|
// routes/routes.ts
|
|
18
|
-
import { Router as UxfRouter } from "@uxf/router";
|
|
19
14
|
|
|
20
|
-
|
|
15
|
+
import { createRouter } from "@uxf/router";
|
|
16
|
+
|
|
17
|
+
interface RouteList {
|
|
21
18
|
index: null;
|
|
22
|
-
"
|
|
23
|
-
"blog
|
|
19
|
+
"admin/index": { param1?: number };
|
|
20
|
+
"blog/detail": { id: number };
|
|
24
21
|
}
|
|
25
22
|
|
|
26
|
-
|
|
23
|
+
const router = createRouter<RouteList>({
|
|
27
24
|
index: "/",
|
|
28
|
-
"
|
|
29
|
-
"blog
|
|
25
|
+
"admin/index": "/admin",
|
|
26
|
+
"blog/detail": "/blog/[id]",
|
|
30
27
|
});
|
|
28
|
+
|
|
29
|
+
export const { route, routeToUrl, sitemapGenerator } = router;
|
|
31
30
|
```
|
|
32
31
|
|
|
33
32
|
```ts
|
|
34
33
|
// routes/index.ts
|
|
35
|
-
import { RouteList, router } from "./routes";
|
|
36
|
-
import { PropsGenerator, FunctionParametersGenerator, UxfNextPage } from "@uxf/router";
|
|
37
|
-
|
|
38
|
-
export const Link = router.getLink();
|
|
39
|
-
export const useRouter = router.getUseRouter();
|
|
40
|
-
export const Router = router.getSingletonRouter();
|
|
41
34
|
|
|
42
|
-
export
|
|
43
|
-
export type
|
|
44
|
-
export type
|
|
35
|
+
export * from "./routes"
|
|
36
|
+
export type GetServerSideProps<Route extends keyof RouteList> = UxfGetServerSideProps<RouteList, Route>;
|
|
37
|
+
export type GetStaticProps<Route extends keyof RouteList> = UxfGetStaticProps<RouteList, Route>;
|
|
45
38
|
```
|
|
46
39
|
|
|
47
40
|
Add configuration to `tsconfig.json`
|
|
@@ -59,39 +52,105 @@ Add configuration to `tsconfig.json`
|
|
|
59
52
|
}
|
|
60
53
|
```
|
|
61
54
|
|
|
62
|
-
##
|
|
55
|
+
## Next Link
|
|
63
56
|
|
|
64
|
-
|
|
57
|
+
```tsx
|
|
58
|
+
// pages/index.js
|
|
59
|
+
import Link from "next/link";
|
|
60
|
+
import { route } from "@app-routes";
|
|
65
61
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
62
|
+
export default () => (
|
|
63
|
+
<Link href={route("blog/detail", { id: 12 })}>
|
|
64
|
+
Hello world
|
|
65
|
+
</Link>
|
|
66
|
+
)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## GetStaticProps
|
|
69
70
|
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
```tsx
|
|
72
|
+
import { GetStaticProps } from "@app-routes";
|
|
73
|
+
import { queryParamToNumber } from "@uxf/router";
|
|
74
|
+
|
|
75
|
+
export const getStaticProps: GetStaticProps<"blog/detail"> = (context) => {
|
|
76
|
+
const id = queryParamToNumber(context.params?.id); // context.params is of type { id: number } | undefined
|
|
72
77
|
}
|
|
73
78
|
```
|
|
74
79
|
|
|
75
|
-
|
|
80
|
+
## GetServerSideProps
|
|
76
81
|
|
|
77
|
-
```
|
|
78
|
-
import {
|
|
79
|
-
import {
|
|
82
|
+
```tsx
|
|
83
|
+
import { GetServerSideProps } from "@app-routes";
|
|
84
|
+
import { queryParamToNumber } from "@uxf/router";
|
|
80
85
|
|
|
81
|
-
const
|
|
82
|
-
//
|
|
86
|
+
export const getServerSideProps: GetServerSideProps<"blog/detail"> = (context) => {
|
|
87
|
+
const id = queryParamToNumber(context.params?.id); // context.params is of type { id: number } | undefined
|
|
83
88
|
}
|
|
84
89
|
```
|
|
85
90
|
|
|
86
|
-
##
|
|
91
|
+
## Sitemap
|
|
92
|
+
|
|
93
|
+
Create sitemap items
|
|
87
94
|
|
|
88
95
|
```tsx
|
|
89
|
-
//
|
|
90
|
-
|
|
96
|
+
// sitemap-items.ts in @app-routes
|
|
97
|
+
|
|
98
|
+
import { sitemapGenerator } from "@app-routes";
|
|
99
|
+
|
|
100
|
+
export const sitemapItems = sitemapGenerator
|
|
101
|
+
.add("index", async () => ({ loc: "http://localhost", lastmod: "2021-01-01", priority: 1 }))
|
|
102
|
+
.add("blog/detail", async () => [
|
|
103
|
+
{ loc: "http://localhost/bolg/1", priority: 2 },
|
|
104
|
+
{ loc: "http://localhost/bolg/2", priority: 2 },
|
|
105
|
+
])
|
|
106
|
+
.skip("admin/index")
|
|
107
|
+
.exhaustive();
|
|
108
|
+
```
|
|
91
109
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
110
|
+
#### sitemap.xml
|
|
111
|
+
|
|
112
|
+
```tsx
|
|
113
|
+
// pages/sitemap.xml.tsx
|
|
114
|
+
|
|
115
|
+
import React from "react";
|
|
116
|
+
import { NextPage } from "next";
|
|
117
|
+
import { sitemapItems } from "@app-routes";
|
|
118
|
+
|
|
119
|
+
const Page: NextPage = () => null;
|
|
120
|
+
|
|
121
|
+
Page.getInitialProps = async (ctx) => {
|
|
122
|
+
if (ctx.res) {
|
|
123
|
+
ctx.res.setHeader("Content-Type", "text/xml");
|
|
124
|
+
ctx.res.write(await sitemapItems.toXml());
|
|
125
|
+
ctx.res.end();
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return {};
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
export default Page;
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
#### sitemap.json
|
|
135
|
+
|
|
136
|
+
```tsx
|
|
137
|
+
// pages/sitemap.json.tsx
|
|
138
|
+
|
|
139
|
+
import React from "react";
|
|
140
|
+
import { NextPage } from "next";
|
|
141
|
+
import { sitemapItems } from "@app-routes";
|
|
142
|
+
|
|
143
|
+
const Page: NextPage = () => null;
|
|
144
|
+
|
|
145
|
+
Page.getInitialProps = async (ctx) => {
|
|
146
|
+
if (ctx.res) {
|
|
147
|
+
ctx.res.setHeader("Content-Type", "text/json");
|
|
148
|
+
ctx.res.write(await sitemapItems.toJson());
|
|
149
|
+
ctx.res.end();
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
return {};
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
export default Page;
|
|
97
156
|
```
|
package/helper.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const queryParamToString: (param?: string | string[]
|
|
2
|
-
export declare const queryParamToNumber: (param?: string | string[]
|
|
1
|
+
export declare const queryParamToString: (param?: string | string[]) => string;
|
|
2
|
+
export declare const queryParamToNumber: (param?: string | string[]) => number;
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -10,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
10
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
15
|
};
|
|
12
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./router"), exports);
|
|
14
18
|
__exportStar(require("./types"), exports);
|
|
15
19
|
__exportStar(require("./helper"), exports);
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF5QjtBQUN6QiwwQ0FBd0I7QUFDeEIsMkNBQXlCIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uxf/router",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0-beta.2",
|
|
4
4
|
"description": "UXF Router",
|
|
5
5
|
"author": "UXFans <dev@uxf.cz>",
|
|
6
6
|
"homepage": "https://gitlab.com/uxf-npm/router#readme",
|
|
@@ -35,13 +35,13 @@
|
|
|
35
35
|
"@types/jest": "^27.4.0",
|
|
36
36
|
"@types/node": "^17.0.10",
|
|
37
37
|
"@types/qs": "^6.9.7",
|
|
38
|
-
"@types/react": "^
|
|
39
|
-
"@types/react-dom": "^
|
|
38
|
+
"@types/react": "^18.0.26",
|
|
39
|
+
"@types/react-dom": "^18.0.9",
|
|
40
40
|
"jest": "^27.4.7",
|
|
41
|
-
"next": "^
|
|
41
|
+
"next": "^13.0.7",
|
|
42
42
|
"prettier": "^2.5.1",
|
|
43
|
-
"react": "^
|
|
44
|
-
"react-dom": "^
|
|
43
|
+
"react": "^18.2.0",
|
|
44
|
+
"react-dom": "^18.2.0",
|
|
45
45
|
"ts-jest": "^27.1.3",
|
|
46
46
|
"typescript": "^4.5.4",
|
|
47
47
|
"@typescript-eslint/eslint-plugin": "^5.11.0",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"eslint-plugin-prettier": "^4.0.0"
|
|
52
52
|
},
|
|
53
53
|
"peerDependencies": {
|
|
54
|
-
"react": "^
|
|
55
|
-
"react-dom": "^
|
|
54
|
+
"react": "^18",
|
|
55
|
+
"react-dom": "^18"
|
|
56
56
|
}
|
|
57
57
|
}
|
package/router.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { LinkProps } from "next/link";
|
|
2
|
+
import { SitemapGeneratorType } from "@uxf/router/sitemapGenerator";
|
|
3
|
+
export type FunctionParametersGenerator<RouteList> = {
|
|
4
|
+
[K in keyof RouteList]: RouteList[K] extends null ? [K] : [K, RouteList[K]];
|
|
5
|
+
}[keyof RouteList];
|
|
6
|
+
type RouteFunction<RouteList> = (...args: FunctionParametersGenerator<RouteList>) => LinkProps["href"];
|
|
7
|
+
type RouteToUrlFunction<RouteList> = (...args: FunctionParametersGenerator<RouteList>) => string | null;
|
|
8
|
+
type Router<T> = {
|
|
9
|
+
route: RouteFunction<T>;
|
|
10
|
+
routeToUrl: RouteToUrlFunction<T>;
|
|
11
|
+
sitemapGenerator: SitemapGeneratorType<T>;
|
|
12
|
+
};
|
|
13
|
+
export declare function createRouter<RouteList>(routes: {
|
|
14
|
+
[key in keyof RouteList]: string;
|
|
15
|
+
}): Router<RouteList>;
|
|
16
|
+
export {};
|
package/router.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createRouter = void 0;
|
|
4
|
+
var qs_1 = require("qs");
|
|
5
|
+
var sitemapGenerator_1 = require("@uxf/router/sitemapGenerator");
|
|
6
|
+
function createRouter(routes) {
|
|
7
|
+
return {
|
|
8
|
+
route: function (route, params) {
|
|
9
|
+
if (params === void 0) { params = undefined; }
|
|
10
|
+
return ({
|
|
11
|
+
pathname: routes[route],
|
|
12
|
+
query: params !== null && params !== void 0 ? params : null,
|
|
13
|
+
});
|
|
14
|
+
},
|
|
15
|
+
routeToUrl: function (route, params) {
|
|
16
|
+
if (params === void 0) { params = undefined; }
|
|
17
|
+
var pathname = routes[route];
|
|
18
|
+
var restParams = {};
|
|
19
|
+
Object.keys(params !== null && params !== void 0 ? params : {}).forEach(function (key) {
|
|
20
|
+
var value = params[key];
|
|
21
|
+
if (pathname.includes("[".concat(key, "]"))) {
|
|
22
|
+
pathname = pathname.replace("[".concat(key, "]"), value);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
restParams[key] = value;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
if (Object.keys(restParams).length > 0) {
|
|
29
|
+
pathname = "".concat(pathname, "?").concat((0, qs_1.stringify)(restParams));
|
|
30
|
+
}
|
|
31
|
+
return pathname;
|
|
32
|
+
},
|
|
33
|
+
sitemapGenerator: (0, sitemapGenerator_1.createSitemapGenerator)(),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
exports.createRouter = createRouter;
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JvdXRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUJBQStCO0FBRS9CLGlFQUE0RjtBQWU1RixTQUFnQixZQUFZLENBQVksTUFBNEM7SUFDaEYsT0FBTztRQUNILEtBQUssRUFBRSxVQUFDLEtBQUssRUFBRSxNQUFrQjtZQUFsQix1QkFBQSxFQUFBLGtCQUFrQjtZQUFLLE9BQUEsQ0FBQztnQkFDbkMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQ3ZCLEtBQUssRUFBRSxNQUFNLGFBQU4sTUFBTSxjQUFOLE1BQU0sR0FBSSxJQUFJO2FBQ3hCLENBQUM7UUFIb0MsQ0FHcEM7UUFDRixVQUFVLEVBQUUsVUFBQyxLQUFLLEVBQUUsTUFBa0I7WUFBbEIsdUJBQUEsRUFBQSxrQkFBa0I7WUFDbEMsSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLElBQU0sVUFBVSxHQUFRLEVBQUUsQ0FBQztZQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sYUFBTixNQUFNLGNBQU4sTUFBTSxHQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFDLEdBQUc7Z0JBQ2xDLElBQU0sS0FBSyxHQUFJLE1BQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQUksR0FBRyxNQUFHLENBQUMsRUFBRTtvQkFDL0IsUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsV0FBSSxHQUFHLE1BQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDbEQ7cUJBQU07b0JBQ0gsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztpQkFDM0I7WUFDTCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNwQyxRQUFRLEdBQUcsVUFBRyxRQUFRLGNBQUksSUFBQSxjQUFTLEVBQUMsVUFBVSxDQUFDLENBQUUsQ0FBQzthQUNyRDtZQUNELE9BQU8sUUFBUSxDQUFDO1FBQ3BCLENBQUM7UUFDRCxnQkFBZ0IsRUFBRSxJQUFBLHlDQUFzQixHQUFFO0tBQzdDLENBQUM7QUFDTixDQUFDO0FBeEJELG9DQXdCQyJ9
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type SitemapItem = {
|
|
2
|
+
loc: string;
|
|
3
|
+
priority: number;
|
|
4
|
+
lastmod?: string | null;
|
|
5
|
+
};
|
|
6
|
+
type RouteResolverResult = SitemapItem | SitemapItem[];
|
|
7
|
+
type RouteResolver<Route> = (route: Route) => Promise<RouteResolverResult>;
|
|
8
|
+
type MissingRoutesError<Routes> = {
|
|
9
|
+
__nonExhaustive: never;
|
|
10
|
+
missingRoutes: Routes;
|
|
11
|
+
};
|
|
12
|
+
export type SitemapGeneratorType<RouteList> = {
|
|
13
|
+
add: <Route extends keyof RouteList>(route: Route, resolver: RouteResolver<Route>) => SitemapGeneratorType<Omit<RouteList, Route>>;
|
|
14
|
+
skip: <Route extends keyof RouteList>(route: Route) => SitemapGeneratorType<Omit<RouteList, Route>>;
|
|
15
|
+
exhaustive: keyof RouteList extends never ? () => SitemapGeneratorType<RouteList> : MissingRoutesError<keyof RouteList>;
|
|
16
|
+
toXml: keyof RouteList extends never ? () => Promise<string> : MissingRoutesError<keyof RouteList>;
|
|
17
|
+
toJson: keyof RouteList extends never ? () => Promise<any> : MissingRoutesError<keyof RouteList>;
|
|
18
|
+
};
|
|
19
|
+
export declare const createSitemapGenerator: <RouteList>() => SitemapGeneratorType<RouteList>;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
39
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
40
|
+
if (!m) return o;
|
|
41
|
+
var i = m.call(o), r, ar = [], e;
|
|
42
|
+
try {
|
|
43
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
44
|
+
}
|
|
45
|
+
catch (error) { e = { error: error }; }
|
|
46
|
+
finally {
|
|
47
|
+
try {
|
|
48
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
49
|
+
}
|
|
50
|
+
finally { if (e) throw e.error; }
|
|
51
|
+
}
|
|
52
|
+
return ar;
|
|
53
|
+
};
|
|
54
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
55
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
56
|
+
if (ar || !(i in from)) {
|
|
57
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
58
|
+
ar[i] = from[i];
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
62
|
+
};
|
|
63
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
64
|
+
exports.createSitemapGenerator = void 0;
|
|
65
|
+
var SitemapGenerator = /** @class */ (function () {
|
|
66
|
+
function SitemapGenerator() {
|
|
67
|
+
var _this = this;
|
|
68
|
+
this.routeResolvers = {};
|
|
69
|
+
this.exhaustive = function () { return _this; };
|
|
70
|
+
this.toXml = function () {
|
|
71
|
+
return _this.getSitemapItems().then(function (sitemapItems) {
|
|
72
|
+
return "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd\">\n ".concat(sitemapItems
|
|
73
|
+
.map(function (item) { return "<url>\n <loc>".concat(item.loc, "</loc>\n <priority>").concat(item.priority, "</priority>\n ").concat(item.lastmod ? "<lastmod>".concat(item.lastmod, "</lastmod>") : "<changefreq>monthly</changefreq>", "\n </url>"); })
|
|
74
|
+
.join(""), "\n </urlset>");
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
this.toJson = function () { return _this.getSitemapItems().then(JSON.stringify); };
|
|
78
|
+
}
|
|
79
|
+
SitemapGenerator.prototype.getSitemapItems = function () {
|
|
80
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
81
|
+
var routes;
|
|
82
|
+
var _this = this;
|
|
83
|
+
return __generator(this, function (_a) {
|
|
84
|
+
routes = Object.keys(this.routeResolvers);
|
|
85
|
+
return [2 /*return*/, Promise.all(routes.map(function (route) { var _a, _b; return (_b = (_a = _this.routeResolvers)[route]) === null || _b === void 0 ? void 0 : _b.call(_a, route); })).then(function (resolverResults) {
|
|
86
|
+
var sitemapItems = [];
|
|
87
|
+
resolverResults.forEach(function (result) {
|
|
88
|
+
if (!result)
|
|
89
|
+
return;
|
|
90
|
+
if (Array.isArray(result)) {
|
|
91
|
+
sitemapItems.push.apply(sitemapItems, __spreadArray([], __read(result), false));
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
sitemapItems.push(result);
|
|
95
|
+
});
|
|
96
|
+
return sitemapItems;
|
|
97
|
+
})];
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
};
|
|
101
|
+
SitemapGenerator.prototype.add = function (route, resolver) {
|
|
102
|
+
this.routeResolvers[route] = resolver;
|
|
103
|
+
return this;
|
|
104
|
+
};
|
|
105
|
+
SitemapGenerator.prototype.skip = function () {
|
|
106
|
+
return this;
|
|
107
|
+
};
|
|
108
|
+
return SitemapGenerator;
|
|
109
|
+
}());
|
|
110
|
+
var createSitemapGenerator = function () { return new SitemapGenerator(); };
|
|
111
|
+
exports.createSitemapGenerator = createSitemapGenerator;
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZW1hcEdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zaXRlbWFwR2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3QkE7SUFBQTtRQUFBLGlCQXdEQztRQXZEVyxtQkFBYyxHQUE4RCxFQUFFLENBQUM7UUFtQ2hGLGVBQVUsR0FBUSxjQUFNLE9BQUEsS0FBSSxFQUFKLENBQUksQ0FBQztRQUU3QixVQUFLLEdBQVE7WUFDaEIsT0FBTyxLQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQUMsWUFBWTtnQkFDNUMsT0FBTyw2VEFFTCxZQUFZO3FCQUNULEdBQUcsQ0FDQSxVQUFDLElBQUksSUFBSyxPQUFBLDhDQUNDLElBQUksQ0FBQyxHQUFHLDJEQUNDLElBQUksQ0FBQyxRQUFRLHNEQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxtQkFBWSxJQUFJLENBQUMsT0FBTyxlQUFZLENBQUMsQ0FBQyxDQUFDLGtDQUFrQyxxQ0FDdkYsRUFKRCxDQUlDLENBQ2Q7cUJBQ0EsSUFBSSxDQUFDLEVBQUUsQ0FBQyx3QkFDUCxDQUFDO1lBQ1gsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUM7UUFFSyxXQUFNLEdBQVEsY0FBTSxPQUFBLEtBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUEzQyxDQUEyQyxDQUFDO0lBQzNFLENBQUM7SUFyRGlCLDBDQUFlLEdBQTdCOzs7OztnQkFDVSxNQUFNLEdBQTJCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBUSxDQUFDO2dCQUUvRSxzQkFBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBQyxLQUFLLGdCQUFLLE9BQUEsTUFBQSxNQUFBLEtBQUksQ0FBQyxjQUFjLEVBQUMsS0FBSyxDQUFDLG1EQUFHLEtBQUssQ0FBQyxDQUFBLEVBQUEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsZUFBZTt3QkFDaEcsSUFBTSxZQUFZLEdBQWtCLEVBQUUsQ0FBQzt3QkFFdkMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxVQUFDLE1BQU07NEJBQzNCLElBQUksQ0FBQyxNQUFNO2dDQUFFLE9BQU87NEJBRXBCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtnQ0FDdkIsWUFBWSxDQUFDLElBQUksT0FBakIsWUFBWSwyQkFBUyxNQUFNLFdBQUU7Z0NBQzdCLE9BQU87NkJBQ1Y7NEJBRUQsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDOUIsQ0FBQyxDQUFDLENBQUM7d0JBRUgsT0FBTyxZQUFZLENBQUM7b0JBQ3hCLENBQUMsQ0FBQyxFQUFDOzs7S0FDTjtJQUVNLDhCQUFHLEdBQVYsVUFDSSxLQUFZLEVBQ1osUUFBOEI7UUFFOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxRQUFRLENBQUM7UUFDdEMsT0FBTyxJQUFvRCxDQUFDO0lBQ2hFLENBQUM7SUFFTSwrQkFBSSxHQUFYO1FBQ0ksT0FBTyxJQUFvRCxDQUFDO0lBQ2hFLENBQUM7SUFzQkwsdUJBQUM7QUFBRCxDQUFDLEFBeERELElBd0RDO0FBRU0sSUFBTSxzQkFBc0IsR0FBRyxjQUFrRCxPQUFBLElBQUksZ0JBQWdCLEVBQUUsRUFBdEIsQ0FBc0IsQ0FBQztBQUFsRyxRQUFBLHNCQUFzQiwwQkFBNEUifQ==
|
package/types.d.ts
CHANGED
|
@@ -1,42 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export
|
|
6
|
-
anchor?: string;
|
|
7
|
-
shallow?: boolean;
|
|
1
|
+
import { GetStaticProps, GetServerSideProps, PreviewData as NextPreviewData } from "next";
|
|
2
|
+
type QueryParams<RouteList, Route extends keyof RouteList> = RouteList[Route] extends null ? never : {
|
|
3
|
+
[key in keyof RouteList[Route]]: string | string[] | undefined;
|
|
4
|
+
};
|
|
5
|
+
export type UxfGetStaticProps<RouteList, Route extends keyof RouteList, Props extends {
|
|
8
6
|
[key: string]: any;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
export interface UxfSingletonRouter<T> extends Omit<SingletonRouter, "push" | "replace"> {
|
|
19
|
-
push: (...attr: FunctionParametersWithOptionsGenerator<T>) => Promise<boolean>;
|
|
20
|
-
replace: (...attr: FunctionParametersWithOptionsGenerator<T>) => Promise<boolean>;
|
|
21
|
-
}
|
|
22
|
-
export declare type PropsGenerator<Routes> = {
|
|
23
|
-
[K in keyof Routes]: Routes[K] extends null ? {
|
|
24
|
-
route: K;
|
|
25
|
-
params?: never;
|
|
26
|
-
} : {
|
|
27
|
-
route: K;
|
|
28
|
-
params: Routes[K];
|
|
29
|
-
};
|
|
30
|
-
}[keyof Routes];
|
|
31
|
-
export declare type FunctionParametersGenerator<Routes> = {
|
|
32
|
-
[K in keyof Routes]: Routes[K] extends null ? [K] : [K, Routes[K]];
|
|
33
|
-
}[keyof Routes];
|
|
34
|
-
export declare type FunctionParametersWithOptionsGenerator<Routes> = {
|
|
35
|
-
[K in keyof Routes]: Routes[K] extends null ? [K] | [K, Options] : [K, Routes[K]] | [K, Routes[K], Options];
|
|
36
|
-
}[keyof Routes];
|
|
37
|
-
export interface UxfPageContext<Routes, T extends keyof Routes> extends Omit<NextPageContext, "query"> {
|
|
38
|
-
query: Routes[T] extends null ? Record<string, any> : {
|
|
39
|
-
[key in keyof Routes[T]]: string | string[] | undefined;
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
export declare type UxfNextPage<Routes, Route extends keyof Routes, IP = Record<string, any>, P = IP> = NextComponentType<UxfPageContext<Routes, Route>, IP, P>;
|
|
7
|
+
} = {
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
}, PreviewData extends NextPreviewData = NextPreviewData> = GetStaticProps<Props, QueryParams<RouteList, Route>, PreviewData>;
|
|
10
|
+
export type UxfGetServerSideProps<RouteList, Route extends keyof RouteList, Props extends {
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
} = {
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
}, PreviewData extends NextPreviewData = NextPreviewData> = GetServerSideProps<Props, QueryParams<RouteList, Route>, PreviewData>;
|
|
15
|
+
export {};
|
package/Router.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { FunctionParametersGenerator, LinkProps, UxfRouter, UxfSingletonRouter } from "./types";
|
|
3
|
-
export declare class Router<T> {
|
|
4
|
-
private routes;
|
|
5
|
-
constructor(routes: {
|
|
6
|
-
[key in keyof T]: string;
|
|
7
|
-
});
|
|
8
|
-
private getRouteByPathname;
|
|
9
|
-
getLink: () => React.FC<LinkProps<T>>;
|
|
10
|
-
getUseRouter: () => () => UxfRouter<T>;
|
|
11
|
-
getSingletonRouter: () => UxfSingletonRouter<T>;
|
|
12
|
-
getUrlByRoute: (...attrs: FunctionParametersGenerator<T>) => string;
|
|
13
|
-
}
|
package/Router.js
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
16
|
-
}) : (function(o, m, k, k2) {
|
|
17
|
-
if (k2 === undefined) k2 = k;
|
|
18
|
-
o[k2] = m[k];
|
|
19
|
-
}));
|
|
20
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
-
}) : function(o, v) {
|
|
23
|
-
o["default"] = v;
|
|
24
|
-
});
|
|
25
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
26
|
-
if (mod && mod.__esModule) return mod;
|
|
27
|
-
var result = {};
|
|
28
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
29
|
-
__setModuleDefault(result, mod);
|
|
30
|
-
return result;
|
|
31
|
-
};
|
|
32
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
33
|
-
var t = {};
|
|
34
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
35
|
-
t[p] = s[p];
|
|
36
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
37
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
38
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
39
|
-
t[p[i]] = s[p[i]];
|
|
40
|
-
}
|
|
41
|
-
return t;
|
|
42
|
-
};
|
|
43
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
44
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
45
|
-
};
|
|
46
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
|
-
exports.Router = void 0;
|
|
48
|
-
var link_1 = __importDefault(require("next/link"));
|
|
49
|
-
var router_1 = __importStar(require("next/router"));
|
|
50
|
-
var react_1 = __importDefault(require("react"));
|
|
51
|
-
var qs_1 = require("qs");
|
|
52
|
-
// TODO Vejvis: fix eslint ignores
|
|
53
|
-
var Router = /** @class */ (function () {
|
|
54
|
-
function Router(routes) {
|
|
55
|
-
var _this = this;
|
|
56
|
-
this.getRouteByPathname = function (pathname) {
|
|
57
|
-
return Object.keys(_this.routes).find(function (route) { return _this.routes[route] === pathname; });
|
|
58
|
-
};
|
|
59
|
-
this.getLink = function () { return function (props) {
|
|
60
|
-
var route = props.route, params = props.params, linkProps = __rest(props, ["route", "params"]);
|
|
61
|
-
return react_1.default.createElement(link_1.default, __assign({ href: { pathname: _this.routes[route], query: params } }, linkProps));
|
|
62
|
-
}; };
|
|
63
|
-
this.getUseRouter = function () { return function () {
|
|
64
|
-
var router = (0, router_1.useRouter)();
|
|
65
|
-
return __assign(__assign({}, router), { route: _this.getRouteByPathname(router.pathname), push: function (route, params, options) {
|
|
66
|
-
if (params === void 0) { params = undefined; }
|
|
67
|
-
if (options === void 0) { options = undefined; }
|
|
68
|
-
return router.push({ pathname: _this.routes[route], query: params }, undefined, options);
|
|
69
|
-
}, replace: function (route, params, options) {
|
|
70
|
-
if (params === void 0) { params = undefined; }
|
|
71
|
-
if (options === void 0) { options = undefined; }
|
|
72
|
-
return router.replace({ pathname: _this.routes[route], query: params }, undefined, options);
|
|
73
|
-
} });
|
|
74
|
-
}; };
|
|
75
|
-
this.getSingletonRouter = function () {
|
|
76
|
-
return __assign(__assign({}, router_1.default), { push: function (route, params, options) {
|
|
77
|
-
if (params === void 0) { params = undefined; }
|
|
78
|
-
if (options === void 0) { options = undefined; }
|
|
79
|
-
return router_1.default.push({ pathname: _this.routes[route], query: params }, undefined, options);
|
|
80
|
-
}, replace: function (route, params, options) {
|
|
81
|
-
if (params === void 0) { params = undefined; }
|
|
82
|
-
if (options === void 0) { options = undefined; }
|
|
83
|
-
return router_1.default.replace({ pathname: _this.routes[route], query: params }, undefined, options);
|
|
84
|
-
} });
|
|
85
|
-
};
|
|
86
|
-
this.getUrlByRoute = function (route, params) {
|
|
87
|
-
if (params === void 0) { params = undefined; }
|
|
88
|
-
var pathname = _this.routes[route];
|
|
89
|
-
var restParams = {};
|
|
90
|
-
Object.keys(params !== null && params !== void 0 ? params : {}).forEach(function (key) {
|
|
91
|
-
var value = params[key];
|
|
92
|
-
if (pathname.includes("[".concat(key, "]"))) {
|
|
93
|
-
pathname = pathname.replace("[".concat(key, "]"), value);
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
restParams[key] = value;
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
if (Object.keys(restParams).length > 0) {
|
|
100
|
-
pathname = "".concat(pathname, "?").concat((0, qs_1.stringify)(restParams));
|
|
101
|
-
}
|
|
102
|
-
return pathname;
|
|
103
|
-
};
|
|
104
|
-
this.routes = routes;
|
|
105
|
-
}
|
|
106
|
-
return Router;
|
|
107
|
-
}());
|
|
108
|
-
exports.Router = Router;
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1JvdXRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFBaUM7QUFDakMsb0RBQThFO0FBQzlFLGdEQUEwQjtBQUUxQix5QkFBK0I7QUFFL0Isa0NBQWtDO0FBQ2xDO0lBR0ksZ0JBQVksTUFBb0M7UUFBaEQsaUJBRUM7UUFFTyx1QkFBa0IsR0FBRyxVQUFDLFFBQWdCO1lBQzFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsS0FBSyxJQUFLLE9BQUMsS0FBSSxDQUFDLE1BQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxRQUFRLEVBQXhDLENBQXdDLENBQVEsQ0FBQztRQUNyRyxDQUFDLENBQUM7UUFFSyxZQUFPLEdBQUcsY0FBOEIsT0FBQSxVQUFDLEtBQUs7WUFDekMsSUFBQSxLQUFLLEdBQTJCLEtBQUssTUFBaEMsRUFBRSxNQUFNLEdBQW1CLEtBQUssT0FBeEIsRUFBSyxTQUFTLFVBQUssS0FBSyxFQUF2QyxtQkFBK0IsQ0FBRixDQUFXO1lBQzlDLE9BQU8sOEJBQUMsY0FBUSxhQUFDLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFhLEVBQUUsSUFBTSxTQUFTLEVBQUksQ0FBQztRQUNyRyxDQUFDLEVBSDhDLENBRzlDLENBQUM7UUFFSyxpQkFBWSxHQUFHLGNBQU0sT0FBQTtZQUN4QixJQUFNLE1BQU0sR0FBRyxJQUFBLGtCQUFhLEdBQUUsQ0FBQztZQUUvQiw2QkFDTyxNQUFNLEtBQ1QsS0FBSyxFQUFFLEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQy9DLElBQUksRUFBRSxVQUFDLEtB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
|
package/Router.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/Router.test.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var Router_1 = require("./Router");
|
|
4
|
-
var router = new Router_1.Router({
|
|
5
|
-
index: "/",
|
|
6
|
-
form: "/form/[id]",
|
|
7
|
-
"form-field": "/form/[formId]/field/[fieldId]",
|
|
8
|
-
});
|
|
9
|
-
test("getUrlByRoute", function () {
|
|
10
|
-
expect(router.getUrlByRoute("form", { id: 12, attr: "abc" })).toBe("/form/12?attr=abc");
|
|
11
|
-
expect(router.getUrlByRoute("form-field", { formId: 33, fieldId: "aaa", param1: "ano" })).toBe("/form/33/field/aaa?param1=ano");
|
|
12
|
-
});
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm91dGVyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvUm91dGVyLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtQ0FBa0M7QUFFbEMsSUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUM7SUFDdEIsS0FBSyxFQUFFLEdBQUc7SUFDVixJQUFJLEVBQUUsWUFBWTtJQUNsQixZQUFZLEVBQUUsZ0NBQWdDO0NBQ2pELENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxlQUFlLEVBQUU7SUFDbEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3hGLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDMUYsK0JBQStCLENBQ2xDLENBQUM7QUFDTixDQUFDLENBQUMsQ0FBQyJ9
|