@esportsplus/routing 0.0.13 → 0.0.14
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/build/index.d.ts +2 -2
- package/build/index.js +2 -2
- package/build/middleware/dispatch.d.ts +3 -3
- package/build/middleware/index.d.ts +5 -5
- package/build/middleware/match.d.ts +3 -3
- package/build/spa.d.ts +6 -7
- package/build/spa.js +16 -15
- package/package.json +1 -1
- package/src/index.ts +2 -2
- package/src/middleware/dispatch.ts +3 -3
- package/src/middleware/match.ts +3 -3
- package/src/spa.ts +25 -24
package/build/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import spa from './spa';
|
|
2
1
|
import middleware from './middleware';
|
|
3
2
|
import router from './router';
|
|
4
3
|
import slugify from './slugify';
|
|
5
|
-
|
|
4
|
+
import spa from './spa';
|
|
5
|
+
export { middleware, router, slugify, spa };
|
|
6
6
|
export * from './types';
|
package/build/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import spa from './spa';
|
|
2
1
|
import middleware from './middleware';
|
|
3
2
|
import router from './router';
|
|
4
3
|
import slugify from './slugify';
|
|
5
|
-
|
|
4
|
+
import spa from './spa';
|
|
5
|
+
export { middleware, router, slugify, spa };
|
|
6
6
|
export * from './types';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Router } from '../types';
|
|
2
|
-
declare const _default: (request: {
|
|
1
|
+
import { Middleware, Request, Router } from '../types';
|
|
2
|
+
declare const _default: <R>(request: {
|
|
3
3
|
data: ReturnType<Router['match']>;
|
|
4
|
-
}) =>
|
|
4
|
+
}) => Middleware<Request, R>;
|
|
5
5
|
export default _default;
|
|
@@ -2,16 +2,16 @@ import factory from '@esportsplus/middleware';
|
|
|
2
2
|
import dispatch from './dispatch';
|
|
3
3
|
import match from './match';
|
|
4
4
|
declare const _default: {
|
|
5
|
-
dispatch: (request: {
|
|
5
|
+
dispatch: <R>(request: {
|
|
6
6
|
data: {
|
|
7
7
|
parameters?: Record<PropertyKey, unknown> | undefined;
|
|
8
8
|
route?: import("../router/route").Route | undefined;
|
|
9
9
|
};
|
|
10
|
-
}) =>
|
|
11
|
-
factory: <I,
|
|
12
|
-
match: (router: import("../router").Router, { spa }?: {
|
|
10
|
+
}) => import("@esportsplus/middleware/build/types").Middleware<import("../types").Request, R>;
|
|
11
|
+
factory: <I, R_1>(...middleware: import("@esportsplus/middleware/build/types").Middleware<I, R_1>[]) => import("@esportsplus/middleware/build/types").Next<I, R_1>;
|
|
12
|
+
match: <R_2>(router: import("../router").Router, { spa }?: {
|
|
13
13
|
spa?: boolean | undefined;
|
|
14
|
-
}) =>
|
|
14
|
+
}) => import("@esportsplus/middleware/build/types").Middleware<import("../types").Request, R_2>;
|
|
15
15
|
};
|
|
16
16
|
export default _default;
|
|
17
17
|
export { dispatch, factory, match };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare const _default: (router: Router, { spa }?: {
|
|
1
|
+
import { Middleware, Request, Router } from '../types';
|
|
2
|
+
declare const _default: <R>(router: Router, { spa }?: {
|
|
3
3
|
spa?: boolean | undefined;
|
|
4
|
-
}) =>
|
|
4
|
+
}) => Middleware<Request, R>;
|
|
5
5
|
export default _default;
|
package/build/spa.d.ts
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type Cache = {
|
|
3
|
-
factory:
|
|
4
|
-
state:
|
|
1
|
+
import { Router } from './types';
|
|
2
|
+
type Cache<T = Record<string, unknown>> = {
|
|
3
|
+
factory: () => T;
|
|
4
|
+
state: T;
|
|
5
5
|
};
|
|
6
|
-
declare const
|
|
7
|
-
declare const _default: (router: Router, state: Cache['state'], factory?: Cache['factory']) => {
|
|
6
|
+
declare const _default: (router: Router, fn?: Cache['factory']) => {
|
|
8
7
|
back: () => void;
|
|
9
8
|
forward: () => void;
|
|
10
9
|
redirect: (path: string, { state, values }: {
|
|
11
10
|
state?: Record<PropertyKey, unknown> | undefined;
|
|
12
11
|
values?: unknown[] | undefined;
|
|
13
12
|
}) => void;
|
|
14
|
-
request:
|
|
13
|
+
request: Record<string, unknown>;
|
|
15
14
|
uri: (path: string, values?: unknown[]) => string;
|
|
16
15
|
};
|
|
17
16
|
export default _default;
|
package/build/spa.js
CHANGED
|
@@ -1,15 +1,5 @@
|
|
|
1
1
|
let cache = [];
|
|
2
|
-
function
|
|
3
|
-
for (let i = 0, n = cache.length; i < n; i++) {
|
|
4
|
-
let { factory, state } = cache[i], values = factory();
|
|
5
|
-
for (let key in values) {
|
|
6
|
-
state[key] = values[key];
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
const back = () => window.history.back();
|
|
11
|
-
const forward = () => window.history.forward();
|
|
12
|
-
const request = (url = window?.location?.href || '') => {
|
|
2
|
+
function request(url = window?.location?.href || '') {
|
|
13
3
|
let { hash, hostname, href, origin, port, protocol } = new URL(url), path = hash?.replace('#/', '/')?.split('?') || ['/', ''];
|
|
14
4
|
return {
|
|
15
5
|
data: {},
|
|
@@ -22,10 +12,21 @@ const request = (url = window?.location?.href || '') => {
|
|
|
22
12
|
protocol,
|
|
23
13
|
query: Object.fromEntries((new URLSearchParams(path[1])).entries())
|
|
24
14
|
};
|
|
25
|
-
}
|
|
26
|
-
|
|
15
|
+
}
|
|
16
|
+
function update() {
|
|
17
|
+
for (let i = 0, n = cache.length; i < n; i++) {
|
|
18
|
+
let { factory, state } = cache[i], values = factory();
|
|
19
|
+
for (let key in values) {
|
|
20
|
+
state[key] = values[key];
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
const back = () => window.history.back();
|
|
25
|
+
const forward = () => window.history.forward();
|
|
26
|
+
export default (router, fn = request) => {
|
|
27
|
+
let state = {};
|
|
27
28
|
cache.push({
|
|
28
|
-
factory:
|
|
29
|
+
factory: fn,
|
|
29
30
|
state
|
|
30
31
|
});
|
|
31
32
|
update();
|
|
@@ -43,7 +44,7 @@ export default (router, state, factory) => {
|
|
|
43
44
|
}
|
|
44
45
|
window.history.pushState(state || {}, '', uri);
|
|
45
46
|
},
|
|
46
|
-
request:
|
|
47
|
+
request: state,
|
|
47
48
|
uri: (path, values = []) => {
|
|
48
49
|
let uri = router.uri(path, values || []);
|
|
49
50
|
if (uri[0] === '/') {
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import spa from './spa';
|
|
2
1
|
import middleware from './middleware';
|
|
3
2
|
import router from './router';
|
|
4
3
|
import slugify from './slugify';
|
|
4
|
+
import spa from './spa';
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
export {
|
|
7
|
+
export { middleware, router, slugify, spa };
|
|
8
8
|
export * from './types';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { Router } from '~/types';
|
|
1
|
+
import { Middleware, Request, Router } from '~/types';
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
export default (request: { data: ReturnType<Router['match']> }) => {
|
|
4
|
+
export default <R>(request: { data: ReturnType<Router['match']> }) => {
|
|
5
5
|
let { route } = request.data;
|
|
6
6
|
|
|
7
7
|
if (!route) {
|
|
8
8
|
throw new Error(`Routing: route dispatching failed, route is undefined!`);
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
return route.dispatcher(request)
|
|
11
|
+
return route.dispatcher(request) as Middleware<Request, R>;
|
|
12
12
|
};
|
package/src/middleware/match.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Middleware, Request, Router } from '~/types';
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
export default (router: Router, { spa }: { spa?: boolean } = {}) => {
|
|
4
|
+
export default <R>(router: Router, { spa }: { spa?: boolean } = {}): Middleware<Request, R> => {
|
|
5
5
|
let subdomain: string | null = null;
|
|
6
6
|
|
|
7
|
-
return (request
|
|
7
|
+
return (request, next) => {
|
|
8
8
|
if ((typeof request.subdomain !== 'string' && !spa) || subdomain === null) {
|
|
9
9
|
if (router.subdomains) {
|
|
10
10
|
for (let i = 0, n = router.subdomains.length; i < n; i++) {
|
package/src/spa.ts
CHANGED
|
@@ -1,22 +1,38 @@
|
|
|
1
1
|
import { Request, Router } from './types';
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
type Cache = {
|
|
5
|
-
factory:
|
|
6
|
-
state:
|
|
4
|
+
type Cache<T = Record<string, unknown>> = {
|
|
5
|
+
factory: () => T;
|
|
6
|
+
state: T;
|
|
7
7
|
};
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
let cache: Cache[] = [];
|
|
11
11
|
|
|
12
12
|
|
|
13
|
+
function request(url: string = window?.location?.href || ''): Request {
|
|
14
|
+
let { hash, hostname, href, origin, port, protocol } = new URL( url ),
|
|
15
|
+
path = hash?.replace('#/', '/')?.split('?') || ['/', ''];
|
|
16
|
+
|
|
17
|
+
return {
|
|
18
|
+
data: {},
|
|
19
|
+
href,
|
|
20
|
+
hostname,
|
|
21
|
+
method: 'GET',
|
|
22
|
+
origin,
|
|
23
|
+
path: path[0],
|
|
24
|
+
port,
|
|
25
|
+
protocol,
|
|
26
|
+
query: Object.fromEntries( (new URLSearchParams(path[1])).entries() )
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
|
|
13
30
|
function update() {
|
|
14
31
|
for (let i = 0, n = cache.length; i < n; i++) {
|
|
15
32
|
let { factory, state } = cache[i],
|
|
16
|
-
values
|
|
33
|
+
values = factory();
|
|
17
34
|
|
|
18
35
|
for (let key in values) {
|
|
19
|
-
// @ts-ignore STFU
|
|
20
36
|
state[key] = values[key];
|
|
21
37
|
}
|
|
22
38
|
}
|
|
@@ -27,27 +43,12 @@ const back = () => window.history.back();
|
|
|
27
43
|
|
|
28
44
|
const forward = () => window.history.forward();
|
|
29
45
|
|
|
30
|
-
const request = (url: string = window?.location?.href || ''): Request => {
|
|
31
|
-
let { hash, hostname, href, origin, port, protocol } = new URL( url ),
|
|
32
|
-
path = hash?.replace('#/', '/')?.split('?') || ['/', ''];
|
|
33
|
-
|
|
34
|
-
return {
|
|
35
|
-
data: {},
|
|
36
|
-
href,
|
|
37
|
-
hostname,
|
|
38
|
-
method: 'GET',
|
|
39
|
-
origin,
|
|
40
|
-
path: path[0],
|
|
41
|
-
port,
|
|
42
|
-
protocol,
|
|
43
|
-
query: Object.fromEntries( (new URLSearchParams(path[1])).entries() )
|
|
44
|
-
};
|
|
45
|
-
};
|
|
46
46
|
|
|
47
|
+
export default (router: Router, fn: Cache['factory'] = request) => {
|
|
48
|
+
let state = {} as ReturnType< typeof fn >;
|
|
47
49
|
|
|
48
|
-
export default (router: Router, state: Cache['state'], factory?: Cache['factory']) => {
|
|
49
50
|
cache.push({
|
|
50
|
-
factory:
|
|
51
|
+
factory: fn,
|
|
51
52
|
state
|
|
52
53
|
});
|
|
53
54
|
|
|
@@ -71,7 +72,7 @@ export default (router: Router, state: Cache['state'], factory?: Cache['factory'
|
|
|
71
72
|
|
|
72
73
|
window.history.pushState(state || {}, '', uri);
|
|
73
74
|
},
|
|
74
|
-
request:
|
|
75
|
+
request: state,
|
|
75
76
|
uri: (path: string, values: unknown[] = []) => {
|
|
76
77
|
let uri = router.uri(path, values || []);
|
|
77
78
|
|