@cudenix/cudenix 0.0.58 → 0.0.59

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.
Files changed (175) hide show
  1. package/dist/core/app.d.ts +16 -16
  2. package/dist/core/app.d.ts.map +1 -1
  3. package/dist/core/app.js +58 -185
  4. package/dist/core/app.js.map +1 -1
  5. package/dist/core/compile.d.ts +6 -1
  6. package/dist/core/compile.d.ts.map +1 -1
  7. package/dist/core/compile.js +121 -116
  8. package/dist/core/compile.js.map +1 -1
  9. package/dist/core/context.d.ts +3 -2
  10. package/dist/core/context.d.ts.map +1 -1
  11. package/dist/core/context.js +142 -76
  12. package/dist/core/context.js.map +1 -1
  13. package/dist/core/error.d.ts +2 -2
  14. package/dist/core/error.d.ts.map +1 -1
  15. package/dist/core/error.js +4 -3
  16. package/dist/core/error.js.map +1 -1
  17. package/dist/core/global.d.ts +5 -1
  18. package/dist/core/global.d.ts.map +1 -1
  19. package/dist/core/group.d.ts +1 -1
  20. package/dist/core/group.d.ts.map +1 -1
  21. package/dist/core/group.js +4 -4
  22. package/dist/core/group.js.map +1 -1
  23. package/dist/core/middleware.d.ts +1 -1
  24. package/dist/core/middleware.d.ts.map +1 -1
  25. package/dist/core/module.d.ts +7 -11
  26. package/dist/core/module.d.ts.map +1 -1
  27. package/dist/core/module.js +8 -8
  28. package/dist/core/module.js.map +1 -1
  29. package/dist/core/response.d.ts +1 -1
  30. package/dist/core/response.d.ts.map +1 -1
  31. package/dist/core/response.js +35 -21
  32. package/dist/core/response.js.map +1 -1
  33. package/dist/core/route.d.ts +12 -16
  34. package/dist/core/route.d.ts.map +1 -1
  35. package/dist/core/route.js +6 -7
  36. package/dist/core/route.js.map +1 -1
  37. package/dist/core/step.d.ts +4 -0
  38. package/dist/core/step.d.ts.map +1 -0
  39. package/dist/core/step.js +199 -0
  40. package/dist/core/step.js.map +1 -0
  41. package/dist/core/success.d.ts.map +1 -1
  42. package/dist/core/success.js +4 -3
  43. package/dist/core/success.js.map +1 -1
  44. package/dist/core/validator.d.ts +7 -11
  45. package/dist/core/validator.d.ts.map +1 -1
  46. package/dist/core/validator.js.map +1 -1
  47. package/dist/ecosystem/client/client.d.ts +6 -5
  48. package/dist/ecosystem/client/client.d.ts.map +1 -1
  49. package/dist/ecosystem/client/client.js +59 -46
  50. package/dist/ecosystem/client/client.js.map +1 -1
  51. package/dist/ecosystem/client/index.d.ts +4 -0
  52. package/dist/ecosystem/client/index.d.ts.map +1 -0
  53. package/dist/ecosystem/client/index.js +4 -0
  54. package/dist/ecosystem/client/index.js.map +1 -0
  55. package/dist/ecosystem/client/sse.d.ts.map +1 -1
  56. package/dist/ecosystem/client/sse.js +15 -28
  57. package/dist/ecosystem/client/sse.js.map +1 -1
  58. package/dist/ecosystem/client/ws.d.ts.map +1 -1
  59. package/dist/ecosystem/client/ws.js +12 -12
  60. package/dist/ecosystem/client/ws.js.map +1 -1
  61. package/dist/ecosystem/plugins/cluster/cluster.d.ts.map +1 -1
  62. package/dist/ecosystem/plugins/cluster/cluster.js +4 -2
  63. package/dist/ecosystem/plugins/cluster/cluster.js.map +1 -1
  64. package/dist/ecosystem/plugins/cluster/index.d.ts +2 -0
  65. package/dist/ecosystem/plugins/cluster/index.d.ts.map +1 -0
  66. package/dist/ecosystem/plugins/cluster/index.js +2 -0
  67. package/dist/ecosystem/plugins/cluster/index.js.map +1 -0
  68. package/dist/ecosystem/plugins/compress/compress.d.ts +8 -0
  69. package/dist/ecosystem/plugins/compress/compress.d.ts.map +1 -0
  70. package/dist/ecosystem/plugins/compress/compress.js +56 -0
  71. package/dist/ecosystem/plugins/compress/compress.js.map +1 -0
  72. package/dist/ecosystem/plugins/compress/index.d.ts +2 -0
  73. package/dist/ecosystem/plugins/compress/index.d.ts.map +1 -0
  74. package/dist/ecosystem/plugins/compress/index.js +2 -0
  75. package/dist/ecosystem/plugins/compress/index.js.map +1 -0
  76. package/dist/ecosystem/plugins/cors/cors.d.ts +11 -0
  77. package/dist/ecosystem/{modules → plugins}/cors/cors.d.ts.map +1 -1
  78. package/dist/ecosystem/plugins/cors/cors.js +69 -0
  79. package/dist/ecosystem/plugins/cors/cors.js.map +1 -0
  80. package/dist/ecosystem/plugins/cors/index.d.ts +2 -0
  81. package/dist/ecosystem/plugins/cors/index.d.ts.map +1 -0
  82. package/dist/ecosystem/plugins/cors/index.js +2 -0
  83. package/dist/ecosystem/plugins/cors/index.js.map +1 -0
  84. package/dist/ecosystem/plugins/events/events.d.ts.map +1 -1
  85. package/dist/ecosystem/plugins/events/events.js +0 -2
  86. package/dist/ecosystem/plugins/events/events.js.map +1 -1
  87. package/dist/ecosystem/plugins/events/index.d.ts +3 -0
  88. package/dist/ecosystem/plugins/events/index.d.ts.map +1 -0
  89. package/dist/ecosystem/plugins/events/index.js +2 -0
  90. package/dist/ecosystem/plugins/events/index.js.map +1 -0
  91. package/dist/ecosystem/{modules → plugins}/global-request-context/global-request-context.d.ts.map +1 -1
  92. package/dist/ecosystem/{modules → plugins}/global-request-context/global-request-context.js.map +1 -1
  93. package/dist/ecosystem/plugins/global-request-context/index.d.ts +2 -0
  94. package/dist/ecosystem/plugins/global-request-context/index.d.ts.map +1 -0
  95. package/dist/ecosystem/plugins/global-request-context/index.js +2 -0
  96. package/dist/ecosystem/plugins/global-request-context/index.js.map +1 -0
  97. package/dist/ecosystem/plugins/i18n/i18n.d.ts +6 -5
  98. package/dist/ecosystem/plugins/i18n/i18n.d.ts.map +1 -1
  99. package/dist/ecosystem/plugins/i18n/i18n.js +86 -52
  100. package/dist/ecosystem/plugins/i18n/i18n.js.map +1 -1
  101. package/dist/ecosystem/plugins/i18n/index.d.ts +3 -0
  102. package/dist/ecosystem/plugins/i18n/index.d.ts.map +1 -0
  103. package/dist/ecosystem/plugins/i18n/index.js +2 -0
  104. package/dist/ecosystem/plugins/i18n/index.js.map +1 -0
  105. package/dist/ecosystem/plugins/openapi/index.d.ts +3 -0
  106. package/dist/ecosystem/plugins/openapi/index.d.ts.map +1 -0
  107. package/dist/ecosystem/plugins/openapi/index.js +3 -0
  108. package/dist/ecosystem/plugins/openapi/index.js.map +1 -0
  109. package/dist/ecosystem/plugins/openapi/openapi.d.ts +4 -3
  110. package/dist/ecosystem/plugins/openapi/openapi.d.ts.map +1 -1
  111. package/dist/ecosystem/plugins/openapi/openapi.js +48 -43
  112. package/dist/ecosystem/plugins/openapi/openapi.js.map +1 -1
  113. package/dist/ecosystem/plugins/openapi/scalar.js +3 -3
  114. package/dist/ecosystem/plugins/openapi/scalar.js.map +1 -1
  115. package/dist/ecosystem/plugins/try-catch/index.d.ts +2 -0
  116. package/dist/ecosystem/plugins/try-catch/index.d.ts.map +1 -0
  117. package/dist/ecosystem/plugins/try-catch/index.js +2 -0
  118. package/dist/ecosystem/plugins/try-catch/index.js.map +1 -0
  119. package/dist/ecosystem/plugins/try-catch/try-catch.d.ts +8 -0
  120. package/dist/ecosystem/plugins/try-catch/try-catch.d.ts.map +1 -0
  121. package/dist/ecosystem/{modules/trycatch/trycatch.js → plugins/try-catch/try-catch.js} +6 -2
  122. package/dist/ecosystem/plugins/try-catch/try-catch.js.map +1 -0
  123. package/dist/types/all-properties-are-unknown.d.ts +1 -1
  124. package/dist/types/all-properties-are-unknown.d.ts.map +1 -1
  125. package/dist/types/conditionally-omit.d.ts +2 -5
  126. package/dist/types/conditionally-omit.d.ts.map +1 -1
  127. package/dist/types/conditionally-optional.d.ts +4 -4
  128. package/dist/types/conditionally-optional.d.ts.map +1 -1
  129. package/dist/types/extract-url-params.d.ts +5 -6
  130. package/dist/types/extract-url-params.d.ts.map +1 -1
  131. package/dist/types/standard-schema.d.ts +4 -4
  132. package/dist/types/standard-schema.d.ts.map +1 -1
  133. package/dist/utils/functions/is-generator.d.ts +2 -0
  134. package/dist/utils/functions/is-generator.d.ts.map +1 -0
  135. package/dist/utils/functions/is-generator.js +6 -0
  136. package/dist/utils/functions/is-generator.js.map +1 -0
  137. package/dist/utils/headers/quality.d.ts +2 -0
  138. package/dist/utils/headers/quality.d.ts.map +1 -0
  139. package/dist/utils/headers/quality.js +19 -0
  140. package/dist/utils/headers/quality.js.map +1 -0
  141. package/dist/utils/headers/select.d.ts +2 -0
  142. package/dist/utils/headers/select.d.ts.map +1 -0
  143. package/dist/utils/headers/select.js +54 -0
  144. package/dist/utils/headers/select.js.map +1 -0
  145. package/dist/utils/json/try-parse.d.ts +2 -0
  146. package/dist/utils/json/try-parse.d.ts.map +1 -0
  147. package/dist/utils/json/try-parse.js +9 -0
  148. package/dist/utils/json/try-parse.js.map +1 -0
  149. package/dist/utils/objects/empty.d.ts +1 -0
  150. package/dist/utils/objects/empty.d.ts.map +1 -1
  151. package/dist/utils/objects/empty.js +2 -1
  152. package/dist/utils/objects/empty.js.map +1 -1
  153. package/dist/utils/objects/merge.js +1 -1
  154. package/dist/utils/objects/merge.js.map +1 -1
  155. package/dist/utils/regexps/path-to-regexp.d.ts +6 -0
  156. package/dist/utils/regexps/path-to-regexp.d.ts.map +1 -0
  157. package/dist/utils/regexps/path-to-regexp.js +40 -0
  158. package/dist/utils/regexps/path-to-regexp.js.map +1 -0
  159. package/dist/utils/standard-schema/validate.d.ts +4 -1
  160. package/dist/utils/standard-schema/validate.d.ts.map +1 -1
  161. package/dist/utils/standard-schema/validate.js +12 -4
  162. package/dist/utils/standard-schema/validate.js.map +1 -1
  163. package/package.json +24 -23
  164. package/dist/ecosystem/modules/compress/compress.d.ts +0 -8
  165. package/dist/ecosystem/modules/compress/compress.d.ts.map +0 -1
  166. package/dist/ecosystem/modules/compress/compress.js +0 -116
  167. package/dist/ecosystem/modules/compress/compress.js.map +0 -1
  168. package/dist/ecosystem/modules/cors/cors.d.ts +0 -27
  169. package/dist/ecosystem/modules/cors/cors.js +0 -67
  170. package/dist/ecosystem/modules/cors/cors.js.map +0 -1
  171. package/dist/ecosystem/modules/trycatch/trycatch.d.ts +0 -5
  172. package/dist/ecosystem/modules/trycatch/trycatch.d.ts.map +0 -1
  173. package/dist/ecosystem/modules/trycatch/trycatch.js.map +0 -1
  174. /package/dist/ecosystem/{modules → plugins}/global-request-context/global-request-context.d.ts +0 -0
  175. /package/dist/ecosystem/{modules → plugins}/global-request-context/global-request-context.js +0 -0
@@ -1,61 +1,61 @@
1
1
  import { Module } from "../core/module.js";
2
+ import { Empty } from "../utils/objects/empty.js";
3
+ import { pathToRegexp } from "../utils/regexps/path-to-regexp.js";
2
4
  import { validateStandardSchema } from "../utils/standard-schema/validate.js";
3
- const endsWithQuestionMarkRegexp = /\?$/;
4
- const getUrlPathnameRegexp = /^(?:[a-zA-Z][a-zA-Z\d+\-.]*:\/\/)?[^/?#]*(\/[^?#]*)?/;
5
- const startsWithColonRegexp = /^:/;
6
- const startsWithEllipsisRegexp = /^\.{3}/;
7
- const useRegexps = [
8
- ["body", /\bbody\b/m],
9
- ["cookies", /\bcookies\b/m],
10
- ["headers", /\bheaders\b/m],
11
- ["params", /\bparams\b/m],
12
- ["query", /\bquery\b/m],
5
+ export const USE_BODY = 1;
6
+ export const USE_COOKIES = 2;
7
+ export const USE_HEADERS = 4;
8
+ export const USE_PARAMS = 8;
9
+ export const USE_QUERY = 16;
10
+ const USE_ALL = USE_BODY | USE_COOKIES | USE_HEADERS | USE_PARAMS | USE_QUERY;
11
+ const USE_KEYWORDS = [
12
+ [USE_BODY, "body"],
13
+ [USE_COOKIES, "cookies"],
14
+ [USE_HEADERS, "headers"],
15
+ [USE_PARAMS, "params"],
16
+ [USE_QUERY, "query"],
13
17
  ];
14
- const getLinkText = (link) => {
15
- switch (link.type) {
16
- case "MIDDLEWARE":
17
- return link.middleware.toString();
18
- case "ROUTE":
19
- return link.route.toString();
20
- case "STORE":
21
- return link.store.toString();
22
- default:
23
- return "";
24
- }
18
+ const KEY_TO_BIT = {
19
+ body: USE_BODY,
20
+ cookies: USE_COOKIES,
21
+ headers: USE_HEADERS,
22
+ params: USE_PARAMS,
23
+ query: USE_QUERY,
25
24
  };
26
- const pathToRegexp = (path, captureParamGroups = false) => {
27
- let pattern = "()";
28
- if (path === "/") {
29
- return `${pattern}\\/`;
25
+ const LINK_USE_BITS_CACHE = new WeakMap();
26
+ const getLinkUseBits = (link) => {
27
+ let bits = LINK_USE_BITS_CACHE.get(link);
28
+ if (bits !== undefined) {
29
+ return bits;
30
30
  }
31
- const segments = path.split("/");
32
- for (let i = 0; i < segments.length; i++) {
33
- let segment = segments[i];
34
- if (!segment) {
35
- continue;
36
- }
37
- const isOptional = endsWithQuestionMarkRegexp.test(segment);
38
- if (isOptional) {
39
- segment = segment.slice(0, -1);
40
- }
41
- if (startsWithColonRegexp.test(segment)) {
42
- segment = `\\/${captureParamGroups ? `(?<${segment.slice(1)}>` : ""}[^/\\s?#]+${captureParamGroups ? ")" : ""}`;
43
- }
44
- else if (startsWithEllipsisRegexp.test(segment)) {
45
- segment = `\\/${captureParamGroups ? `(?<${segment.slice(3)}>` : ""}(?:[^/\\s?#]+/)*(?:[^/\\s?#]+)${captureParamGroups ? ")" : ""}`;
46
- }
47
- else {
48
- segment = `/${segment}`;
31
+ bits = 0;
32
+ if (link.type === "VALIDATOR") {
33
+ for (let i = 0; i < link.keys.length; i++) {
34
+ const key = link.keys[i];
35
+ if (!key) {
36
+ continue;
37
+ }
38
+ bits |= KEY_TO_BIT[key];
49
39
  }
50
- if (isOptional) {
51
- segment = `(?:${segment})?`;
40
+ }
41
+ else {
42
+ const text = link[link.type.toLowerCase()].toString();
43
+ if (text) {
44
+ for (let i = 0; i < USE_KEYWORDS.length; i++) {
45
+ const keyword = USE_KEYWORDS[i];
46
+ if (!keyword || text.indexOf(keyword[1]) === -1) {
47
+ continue;
48
+ }
49
+ bits |= keyword[0];
50
+ }
52
51
  }
53
- pattern = `${pattern}${segment}`;
54
52
  }
55
- return pattern;
53
+ LINK_USE_BITS_CACHE.set(link, bits);
54
+ return bits;
56
55
  };
57
- const step = (stack, endpoints, module, previous) => {
56
+ const step = (endpoints, module, previous) => {
58
57
  const chain = [];
58
+ const merged = previous.chain.slice();
59
59
  let path = module.prefix;
60
60
  for (let i = 0; i < module.chain.length; i++) {
61
61
  const link = module.chain[i];
@@ -66,13 +66,10 @@ const step = (stack, endpoints, module, previous) => {
66
66
  const module = new Module({
67
67
  prefix: `${previous.path}${path === "/" ? "" : path}${link.prefix === "/" ? "" : link.prefix}`,
68
68
  });
69
- module.chain = [...previous.chain, ...chain];
70
- stack.push({
71
- module: link.group(module),
72
- previous: {
73
- chain: [],
74
- path: "",
75
- },
69
+ module.chain = merged.slice();
70
+ step(endpoints, link.group(module), {
71
+ chain: [],
72
+ path: "",
76
73
  });
77
74
  continue;
78
75
  }
@@ -80,66 +77,80 @@ const step = (stack, endpoints, module, previous) => {
80
77
  link.type === "STORE" ||
81
78
  link.type === "VALIDATOR") {
82
79
  chain.push(link);
80
+ merged.push(link);
83
81
  continue;
84
82
  }
85
83
  if (link.type === "MODULE") {
86
- const compiled = step(stack, endpoints, link, {
87
- chain: [...previous.chain, ...chain],
84
+ const compiled = step(endpoints, link, {
85
+ chain: merged.slice(),
88
86
  path: `${previous.path}${path === "/" ? "" : path}`,
89
87
  });
90
88
  chain.push(...compiled.chain);
89
+ for (let j = 0; j < compiled.chain.length; j++) {
90
+ const compiledLink = compiled.chain[j];
91
+ if (!compiledLink) {
92
+ continue;
93
+ }
94
+ merged.push(compiledLink);
95
+ }
91
96
  if (compiled.path !== "/") {
92
- path = `${path}${compiled.path}`;
97
+ path = `${path === "/" ? "" : path}${compiled.path}`;
93
98
  }
94
99
  continue;
95
100
  }
96
- const mergedChain = [...previous.chain, ...chain];
97
- const use = new Set();
98
- for (let j = 0; j < mergedChain.length; j++) {
99
- if (use.size === 5) {
101
+ let useBits = 0;
102
+ for (let j = 0; j < merged.length; j++) {
103
+ if (useBits === USE_ALL) {
100
104
  break;
101
105
  }
102
- const link = mergedChain[j];
103
- if (!link) {
104
- continue;
105
- }
106
- const text = getLinkText(link);
107
- if (!text) {
106
+ const mergedLink = merged[j];
107
+ if (!mergedLink) {
108
108
  continue;
109
109
  }
110
- for (let i = 0; i < useRegexps.length; i++) {
111
- const regexp = useRegexps[i];
112
- if (!regexp || !regexp[1].test(text)) {
110
+ useBits |= getLinkUseBits(mergedLink);
111
+ }
112
+ if (useBits !== USE_ALL) {
113
+ const text = link.route.toString();
114
+ for (let j = 0; j < USE_KEYWORDS.length; j++) {
115
+ const keyword = USE_KEYWORDS[j];
116
+ if (!keyword ||
117
+ (useBits & keyword[0]) !== 0 ||
118
+ text.indexOf(keyword[1]) === -1) {
113
119
  continue;
114
120
  }
115
- use.add(regexp[0]);
121
+ useBits |= keyword[0];
116
122
  }
117
123
  }
118
- if (use.size !== useRegexps.length) {
119
- const text = link.route.toString();
120
- for (let i = 0; i < useRegexps.length; i++) {
121
- const regexp = useRegexps[i];
122
- if (!regexp || !regexp[1].test(text)) {
124
+ if (link.validator && useBits !== USE_ALL) {
125
+ for (let j = 0; j < link.validator.keys.length; j++) {
126
+ const key = link.validator.keys[j];
127
+ if (!key) {
123
128
  continue;
124
129
  }
125
- use.add(regexp[0]);
130
+ useBits |= KEY_TO_BIT[key];
126
131
  }
127
132
  }
128
133
  const method = link.method === "WS" ? "GET" : link.method;
129
- if (!endpoints.has(method)) {
130
- endpoints.set(method, []);
134
+ let methodEndpoints = endpoints.get(method);
135
+ if (!methodEndpoints) {
136
+ methodEndpoints = [];
137
+ endpoints.set(method, methodEndpoints);
131
138
  }
132
- const finalPath = `${previous.path}${path}${link.path === "/" ? "" : link.path}` ||
139
+ const finalPath = `${previous.path}${path === "/" ? "" : path}${link.path === "/" ? "" : link.path}` ||
133
140
  "/";
134
- endpoints.get(method)?.push({
141
+ methodEndpoints.push({
135
142
  chain: link.validator
136
- ? [...mergedChain, link.validator]
137
- : mergedChain,
143
+ ? merged.concat(link.validator)
144
+ : merged.slice(),
138
145
  generator: link.generator,
139
- paramsRegexp: new RegExp(`^${pathToRegexp(finalPath, true)}$`),
146
+ paramsRegexp: finalPath.indexOf(":") !== -1 || finalPath.indexOf("...") !== -1
147
+ ? new RegExp(`^${pathToRegexp(finalPath, {
148
+ captureParamGroups: true,
149
+ })}$`)
150
+ : undefined,
140
151
  path: finalPath,
141
152
  route: link,
142
- use,
153
+ use: useBits,
143
154
  });
144
155
  }
145
156
  return {
@@ -147,52 +158,46 @@ const step = (stack, endpoints, module, previous) => {
147
158
  path,
148
159
  };
149
160
  };
150
- export const compile = async (app, module) => {
161
+ export const compile = (app, module) => {
151
162
  if (!app.memory.has("validator")) {
152
163
  app.memory.set("validator", validateStandardSchema);
153
164
  }
154
- const stack = [
155
- {
156
- module,
157
- previous: {
158
- chain: [],
159
- path: "",
160
- },
161
- },
162
- ];
163
- while (stack.length > 0) {
164
- const { module, previous } = stack.pop();
165
- step(stack, app.endpoints, module, previous);
166
- }
167
- const methods = Array.from(app.endpoints.keys());
168
- for (let i = 0; i < methods.length; i++) {
169
- const method = methods[i];
170
- if (!method) {
171
- continue;
172
- }
173
- const methodEndpoints = app.endpoints.get(method)?.reverse();
174
- if (!methodEndpoints || methodEndpoints.length === 0) {
165
+ const endpoints = new Map();
166
+ step(endpoints, module, {
167
+ chain: [],
168
+ path: "",
169
+ });
170
+ for (const [method, methodEndpoints] of endpoints) {
171
+ if (methodEndpoints.length === 0) {
175
172
  continue;
176
173
  }
177
- app.routes ??= {};
174
+ app.routes ??= new Empty();
175
+ const dynamicEndpoints = [];
178
176
  const methodRegexps = [];
179
177
  const routes = app.routes;
180
- for (let j = 0; j < methodEndpoints.length; j++) {
181
- const methodEndpoint = methodEndpoints[j];
178
+ for (let i = 0; i < methodEndpoints.length; i++) {
179
+ const methodEndpoint = methodEndpoints[i];
182
180
  if (!methodEndpoint) {
183
181
  continue;
184
182
  }
185
- methodRegexps.push(pathToRegexp(methodEndpoint.path));
186
183
  if (methodEndpoint.path.indexOf("?") !== -1 ||
187
184
  methodEndpoint.path.indexOf("...") !== -1) {
185
+ methodRegexps.push(pathToRegexp(methodEndpoint.path));
186
+ dynamicEndpoints.push(methodEndpoint);
188
187
  continue;
189
188
  }
190
- routes[methodEndpoint.path] ??= {};
191
- routes[methodEndpoint.path][methodEndpoint.route.method] = async (request) => {
192
- return app.endpoint(request, methodEndpoint, getUrlPathnameRegexp.exec(request.url)?.[1] || request.url);
189
+ routes[methodEndpoint.path] ??= new Empty();
190
+ routes[methodEndpoint.path][method] = (request) => {
191
+ return app.endpoint(methodEndpoint, methodEndpoint.path, request);
193
192
  };
194
193
  }
195
- app.regexps.set(method, new RegExp(`^(https?:\\/\\/)[^\\s\\/]+(${methodRegexps.join("|")})(?![^?#])`));
194
+ if (dynamicEndpoints.length === 0) {
195
+ continue;
196
+ }
197
+ app.methods.set(method, {
198
+ endpoints: dynamicEndpoints,
199
+ regexp: new RegExp(`^(https?:\\/\\/)[^\\s\\/]+(${methodRegexps.join("|")})(?![^?#])`),
200
+ });
196
201
  }
197
202
  };
198
203
  //# sourceMappingURL=compile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/core/compile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/core/compile.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { Endpoint } from "../core/app.js";
2
2
  import type { AnyError } from "../core/error.js";
3
3
  import type { AnySuccess } from "../core/success.js";
4
+ import type { MaybePromise } from "../types/maybe-promise.js";
4
5
  export interface DeveloperContext<Stores extends Record<PropertyKey, unknown>, Validators extends Record<PropertyKey, unknown>> {
5
6
  memory: Map<string, unknown>;
6
7
  request: {
@@ -16,7 +17,7 @@ export interface ContextResponse {
16
17
  cookies: Bun.CookieMap;
17
18
  headers: Headers;
18
19
  }
19
- export interface ContextRequest {
20
+ interface ContextRequest {
20
21
  body?: unknown;
21
22
  cookies?: unknown;
22
23
  headers?: unknown;
@@ -27,7 +28,7 @@ export interface ContextRequest {
27
28
  }
28
29
  export interface Context {
29
30
  endpoint: Endpoint;
30
- loadRequest(): Promise<void>;
31
+ loadRequest(): MaybePromise<void>;
31
32
  loadRequestBody(): Promise<void>;
32
33
  loadRequestCookies(): void;
33
34
  loadRequestHeaders(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMjD,MAAM,WAAW,gBAAgB,CAChC,MAAM,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,EAC3C,UAAU,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC;IAE/C,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,OAAO,EAAE;QACR,GAAG,EAAE,OAAO,CAAC;KACb,GAAG,UAAU,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC/B,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,cAAc,CAAC;IACjD,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;CACb;AAED,MAAM,WAAW,OAAO;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,kBAAkB,IAAI,IAAI,CAAC;IAC3B,kBAAkB,IAAI,IAAI,CAAC;IAC3B,iBAAiB,IAAI,IAAI,CAAC;IAC1B,gBAAgB,IAAI,IAAI,CAAC;IACzB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,KAAK,WAAW,GAAG,KAClB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KACvB,OAAO,CAAC;AAEb,eAAO,MAAM,OAAO,EAoBJ,WAAW,CAAC;AA6K5B,eAAO,MAAM,OAAO,GACnB,UAAU,QAAQ,EAClB,QAAQ,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,MAAM,MAAM,EACZ,SAAS,OAAO,EAChB,QAAQ,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,YAG3B,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQ3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAI1D,MAAM,WAAW,gBAAgB,CAChC,MAAM,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,EAC3C,UAAU,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC;IAE/C,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,OAAO,EAAE;QACR,GAAG,EAAE,OAAO,CAAC;KACb,GAAG,UAAU,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC/B,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,cAAc,CAAC;IACjD,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,cAAc;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;CACb;AAED,MAAM,WAAW,OAAO;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAClC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,kBAAkB,IAAI,IAAI,CAAC;IAC3B,kBAAkB,IAAI,IAAI,CAAC;IAC3B,iBAAiB,IAAI,IAAI,CAAC;IAC1B,gBAAgB,IAAI,IAAI,CAAC;IACzB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,KAAK,WAAW,GAAG,KAClB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KACvB,OAAO,CAAC;AAEb,eAAO,MAAM,OAAO,EA0BJ,WAAW,CAAC;AAiQ5B,eAAO,MAAM,OAAO,GACnB,UAAU,QAAQ,EAClB,QAAQ,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,MAAM,MAAM,EACZ,SAAS,OAAO,EAChB,QAAQ,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,YAG3B,CAAC"}