@esportsplus/routing 0.0.31 → 0.0.32

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.
@@ -1,4 +1,4 @@
1
- import { Middleware, Router } from './types';
1
+ import { Middleware, Next, Request, Router } from './types';
2
2
  declare function back(): void;
3
3
  declare function forward(): void;
4
4
  declare const _default: <T>(instance?: Router<T> | undefined) => {
@@ -9,20 +9,7 @@ declare const _default: <T>(instance?: Router<T> | undefined) => {
9
9
  parameters?: Record<PropertyKey, unknown> | undefined;
10
10
  route?: import("./router/route").Route<T> | undefined;
11
11
  };
12
- reactive(subdomain?: string): {
13
- parameters?: {
14
- [x: string]: unknown;
15
- [x: number]: unknown;
16
- [x: symbol]: unknown;
17
- } | undefined;
18
- route?: import("./router/route").Route<T> | undefined;
19
- dispose: () => void;
20
- reset: () => void;
21
- nodes: {
22
- parameters?: import("@esportsplus/reactivity/build/signal").default<undefined> | import("@esportsplus/reactivity/build/signal").default<Record<PropertyKey, unknown>> | undefined;
23
- route?: import("@esportsplus/reactivity/build/signal").default<undefined> | import("@esportsplus/reactivity/build/signal").default<import("./router/route").Route<T>> | undefined;
24
- };
25
- };
12
+ middleware(subdomain?: string): (request: Request<T>, next: Next<T>) => import("@esportsplus/template/build/types").Template;
26
13
  };
27
14
  middleware: (...middleware: Middleware<T>[]) => () => T;
28
15
  redirect: (path: string, values?: unknown[]) => void;
package/build/browser.js CHANGED
@@ -1,4 +1,5 @@
1
- import { effect, reactive } from '@esportsplus/reactivity';
1
+ import { effect, reactive, root } from '@esportsplus/reactivity';
2
+ import { html } from '@esportsplus/template';
2
3
  import pipeline from '@esportsplus/pipeline';
3
4
  import factory from './router';
4
5
  let cache = [];
@@ -54,7 +55,7 @@ export default (instance) => {
54
55
  }
55
56
  return router.match(request.method, request.path, subdomain || '');
56
57
  }
57
- match.reactive = (subdomain) => {
58
+ match.middleware = (subdomain) => {
58
59
  let state = reactive({
59
60
  parameters: undefined,
60
61
  route: undefined
@@ -64,7 +65,18 @@ export default (instance) => {
64
65
  state.parameters = parameters;
65
66
  state.route = route;
66
67
  });
67
- return state;
68
+ return (request, next) => {
69
+ return html `${() => {
70
+ if (state.route === undefined) {
71
+ throw new Error(`Routing: route is undefined!`);
72
+ }
73
+ return root(() => {
74
+ request.data.parameters = state.parameters;
75
+ request.data.route = state.route;
76
+ return next(request);
77
+ });
78
+ }}`;
79
+ };
68
80
  };
69
81
  return {
70
82
  back,
package/package.json CHANGED
@@ -2,7 +2,8 @@
2
2
  "author": "ICJR",
3
3
  "dependencies": {
4
4
  "@esportsplus/pipeline": "^0.0.5",
5
- "@esportsplus/reactivity": "^0.1.2"
5
+ "@esportsplus/reactivity": "^0.1.3",
6
+ "@esportsplus/template": "^0.1.5"
6
7
  },
7
8
  "devDependencies": {
8
9
  "@esportsplus/typescript": "^0.0.3"
@@ -17,5 +18,5 @@
17
18
  "prepublishOnly": "npm run build"
18
19
  },
19
20
  "types": "./build/index.d.ts",
20
- "version": "0.0.31"
21
+ "version": "0.0.32"
21
22
  }
package/src/browser.ts CHANGED
@@ -1,5 +1,6 @@
1
- import { effect, reactive } from '@esportsplus/reactivity';
2
- import { Middleware, Request, Router } from './types';
1
+ import { effect, reactive, root } from '@esportsplus/reactivity';
2
+ import { html } from '@esportsplus/template';
3
+ import { Middleware, Next, Request, Router } from './types';
3
4
  import pipeline from '@esportsplus/pipeline';
4
5
  import factory from './router';
5
6
 
@@ -77,7 +78,7 @@ export default <T>(instance?: Router<T>) => {
77
78
  return router.match(request.method, request.path, subdomain || '');
78
79
  }
79
80
 
80
- match.reactive = (subdomain?: string) => {
81
+ match.middleware = (subdomain?: string) => {
81
82
  let state = reactive<ReturnType<typeof router.match>>({
82
83
  parameters: undefined,
83
84
  route: undefined
@@ -90,7 +91,20 @@ export default <T>(instance?: Router<T>) => {
90
91
  state.route = route;
91
92
  });
92
93
 
93
- return state;
94
+ return (request: Request<T>, next: Next<T>) => {
95
+ return html`${() => {
96
+ if (state.route === undefined) {
97
+ throw new Error(`Routing: route is undefined!`);
98
+ }
99
+
100
+ return root(() => {
101
+ request.data.parameters = state.parameters;
102
+ request.data.route = state.route;
103
+
104
+ return next(request);
105
+ });
106
+ }}`;
107
+ };
94
108
  };
95
109
 
96
110
  return {