@duplojs/http 0.8.5 → 0.9.5

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 (138) hide show
  1. package/dist/core/builders/preflight/builder.d.ts +5 -6
  2. package/dist/core/builders/preflight/process.d.ts +3 -4
  3. package/dist/core/builders/preflight/route.d.ts +4 -5
  4. package/dist/core/builders/process/builder.d.ts +4 -5
  5. package/dist/core/builders/process/checker.d.ts +2 -3
  6. package/dist/core/builders/process/cut.d.ts +4 -5
  7. package/dist/core/builders/process/exports.d.ts +3 -4
  8. package/dist/core/builders/process/extract.d.ts +2 -3
  9. package/dist/core/builders/process/presetChecker.d.ts +2 -3
  10. package/dist/core/builders/process/process.d.ts +3 -4
  11. package/dist/core/builders/route/builder.d.ts +6 -6
  12. package/dist/core/builders/route/checker.d.ts +2 -3
  13. package/dist/core/builders/route/cut.d.ts +4 -5
  14. package/dist/core/builders/route/extract.d.ts +3 -3
  15. package/dist/core/builders/route/handler.d.ts +3 -4
  16. package/dist/core/builders/route/presetChecker.d.ts +2 -3
  17. package/dist/core/builders/route/process.d.ts +3 -4
  18. package/dist/core/defaultHooks/index.d.ts +1 -1
  19. package/dist/core/functionsBuilders/index.cjs +1 -0
  20. package/dist/core/functionsBuilders/index.d.ts +1 -0
  21. package/dist/core/functionsBuilders/index.mjs +1 -0
  22. package/dist/core/functionsBuilders/route/build.d.ts +5 -2
  23. package/dist/core/functionsBuilders/route/create.d.ts +3 -5
  24. package/dist/core/functionsBuilders/route/{hook.cjs → default/hook.cjs} +16 -7
  25. package/dist/core/functionsBuilders/route/{hook.d.ts → default/hook.d.ts} +5 -5
  26. package/dist/core/functionsBuilders/route/{hook.mjs → default/hook.mjs} +16 -7
  27. package/dist/core/functionsBuilders/route/{default.cjs → default/index.cjs} +22 -34
  28. package/dist/core/functionsBuilders/route/default/index.d.ts +2 -0
  29. package/dist/core/functionsBuilders/route/{default.mjs → default/index.mjs} +11 -29
  30. package/dist/core/functionsBuilders/route/index.cjs +2 -9
  31. package/dist/core/functionsBuilders/route/index.d.ts +0 -1
  32. package/dist/core/functionsBuilders/route/index.mjs +1 -2
  33. package/dist/core/functionsBuilders/router/build.cjs +7 -0
  34. package/dist/core/functionsBuilders/router/build.d.ts +14 -0
  35. package/dist/core/functionsBuilders/router/build.mjs +5 -0
  36. package/dist/core/functionsBuilders/router/create.cjs +7 -0
  37. package/dist/core/functionsBuilders/router/create.d.ts +15 -0
  38. package/dist/core/functionsBuilders/router/create.mjs +5 -0
  39. package/dist/core/functionsBuilders/router/default/index.cjs +52 -0
  40. package/dist/core/functionsBuilders/router/default/index.d.ts +1 -0
  41. package/dist/core/functionsBuilders/router/default/index.mjs +50 -0
  42. package/dist/core/functionsBuilders/router/index.cjs +11 -0
  43. package/dist/core/functionsBuilders/router/index.d.ts +3 -0
  44. package/dist/core/functionsBuilders/router/index.mjs +3 -0
  45. package/dist/core/functionsBuilders/steps/create.d.ts +3 -6
  46. package/dist/core/hub/defaultMalformedUrlHandler.d.ts +1 -1
  47. package/dist/core/hub/defaultNotfoundHandler.d.ts +1 -1
  48. package/dist/core/hub/hooks.d.ts +2 -2
  49. package/dist/core/hub/index.cjs +5 -0
  50. package/dist/core/hub/index.d.ts +6 -3
  51. package/dist/core/hub/index.mjs +5 -0
  52. package/dist/core/implementHttpServer.cjs +1 -1
  53. package/dist/core/implementHttpServer.d.ts +2 -2
  54. package/dist/core/implementHttpServer.mjs +2 -2
  55. package/dist/core/index.cjs +15 -14
  56. package/dist/core/index.mjs +8 -6
  57. package/dist/core/process/index.d.ts +0 -7
  58. package/dist/core/route/hooks.cjs +2 -17
  59. package/dist/core/route/hooks.d.ts +15 -32
  60. package/dist/core/route/hooks.mjs +3 -17
  61. package/dist/core/route/index.cjs +0 -1
  62. package/dist/core/route/index.mjs +1 -1
  63. package/dist/core/router/{buildSystemRoute.cjs → createRouterElementSystem.cjs} +4 -3
  64. package/dist/core/router/createRouterElementSystem.d.ts +9 -0
  65. package/dist/core/router/{buildSystemRoute.mjs → createRouterElementSystem.mjs} +4 -3
  66. package/dist/core/router/index.cjs +19 -60
  67. package/dist/core/router/index.d.ts +3 -4
  68. package/dist/core/router/index.mjs +17 -56
  69. package/dist/core/router/types/buildedRouter.d.ts +2 -12
  70. package/dist/core/router/types/index.cjs +4 -0
  71. package/dist/core/router/types/index.d.ts +4 -0
  72. package/dist/core/router/types/index.mjs +4 -0
  73. package/dist/core/router/types/router.cjs +2 -0
  74. package/dist/core/router/types/router.d.ts +12 -0
  75. package/dist/core/router/types/router.mjs +1 -0
  76. package/dist/core/router/types/routerElement.cjs +2 -0
  77. package/dist/core/router/types/routerElement.d.ts +8 -0
  78. package/dist/core/router/types/routerElement.mjs +1 -0
  79. package/dist/core/router/types/routerElementSystem.cjs +2 -0
  80. package/dist/core/router/types/routerElementSystem.d.ts +6 -0
  81. package/dist/core/router/types/routerElementSystem.mjs +1 -0
  82. package/dist/core/router/types/routerElementWrapper.cjs +2 -0
  83. package/dist/core/router/types/routerElementWrapper.d.ts +2 -0
  84. package/dist/core/router/types/routerElementWrapper.mjs +1 -0
  85. package/dist/core/steps/cut.d.ts +1 -2
  86. package/dist/core/steps/handler.d.ts +1 -2
  87. package/dist/core/steps/types/stepFunctionParams.d.ts +2 -2
  88. package/dist/interfaces/node/createHttpServer.cjs +2 -2
  89. package/dist/interfaces/node/createHttpServer.mjs +2 -2
  90. package/dist/interfaces/node/hooks/index.d.ts +3 -3
  91. package/dist/plugins/cacheController/hooks.cjs +2 -1
  92. package/dist/plugins/cacheController/hooks.d.ts +1 -1
  93. package/dist/plugins/cacheController/hooks.mjs +2 -1
  94. package/dist/plugins/cors/headerFunctions/allowHeaders.cjs +11 -0
  95. package/dist/plugins/cors/headerFunctions/allowHeaders.d.ts +5 -0
  96. package/dist/plugins/cors/headerFunctions/allowHeaders.mjs +9 -0
  97. package/dist/plugins/cors/headerFunctions/allowMethods.cjs +16 -0
  98. package/dist/plugins/cors/headerFunctions/allowMethods.d.ts +6 -0
  99. package/dist/plugins/cors/headerFunctions/allowMethods.mjs +14 -0
  100. package/dist/plugins/cors/headerFunctions/allowOrigin.cjs +24 -0
  101. package/dist/plugins/cors/headerFunctions/allowOrigin.d.ts +7 -0
  102. package/dist/plugins/cors/headerFunctions/allowOrigin.mjs +22 -0
  103. package/dist/plugins/cors/headerFunctions/credentials.cjs +11 -0
  104. package/dist/plugins/cors/headerFunctions/credentials.d.ts +5 -0
  105. package/dist/plugins/cors/headerFunctions/credentials.mjs +9 -0
  106. package/dist/plugins/cors/headerFunctions/exposeHeaders.cjs +11 -0
  107. package/dist/plugins/cors/headerFunctions/exposeHeaders.d.ts +5 -0
  108. package/dist/plugins/cors/headerFunctions/exposeHeaders.mjs +9 -0
  109. package/dist/plugins/cors/headerFunctions/index.cjs +19 -0
  110. package/dist/plugins/cors/headerFunctions/index.d.ts +7 -0
  111. package/dist/plugins/cors/headerFunctions/index.mjs +7 -0
  112. package/dist/plugins/cors/headerFunctions/maxAge.cjs +11 -0
  113. package/dist/plugins/cors/headerFunctions/maxAge.d.ts +5 -0
  114. package/dist/plugins/cors/headerFunctions/maxAge.mjs +9 -0
  115. package/dist/plugins/cors/headerFunctions/vary.cjs +35 -0
  116. package/dist/plugins/cors/headerFunctions/vary.d.ts +5 -0
  117. package/dist/plugins/cors/headerFunctions/vary.mjs +33 -0
  118. package/dist/plugins/cors/index.cjs +9 -0
  119. package/dist/plugins/cors/index.d.ts +2 -0
  120. package/dist/plugins/cors/index.mjs +2 -0
  121. package/dist/plugins/cors/metadata.cjs +8 -0
  122. package/dist/plugins/cors/metadata.d.ts +1 -0
  123. package/dist/plugins/cors/metadata.mjs +6 -0
  124. package/dist/plugins/cors/plugin.cjs +108 -0
  125. package/dist/plugins/cors/plugin.d.ts +12 -0
  126. package/dist/plugins/cors/plugin.mjs +106 -0
  127. package/dist/plugins/openApiGenerator/makeOpenApiRoute.d.ts +1 -1
  128. package/dist/plugins/static/makeRouteFile.d.ts +2 -2
  129. package/dist/plugins/static/makeRouteFolder.cjs +1 -1
  130. package/dist/plugins/static/makeRouteFolder.d.ts +2 -2
  131. package/dist/plugins/static/makeRouteFolder.mjs +1 -1
  132. package/dist/plugins/static/plugin.d.ts +1 -1
  133. package/package.json +30 -5
  134. package/dist/core/functionsBuilders/route/default.d.ts +0 -1
  135. package/dist/core/router/buildSystemRoute.d.ts +0 -11
  136. /package/dist/core/{router/decodeUrl.cjs → decodeUrl.cjs} +0 -0
  137. /package/dist/core/{router/decodeUrl.d.ts → decodeUrl.d.ts} +0 -0
  138. /package/dist/core/{router/decodeUrl.mjs → decodeUrl.mjs} +0 -0
@@ -13,13 +13,13 @@ var index$2 = require('./request/index.cjs');
13
13
  var presetChecker$1 = require('./presetChecker.cjs');
14
14
  var index$3 = require('./hub/index.cjs');
15
15
  require('./functionsBuilders/index.cjs');
16
- var index$4 = require('./router/index.cjs');
16
+ var index$6 = require('./router/index.cjs');
17
17
  var stringIdentifier = require('./stringIdentifier.cjs');
18
18
  require('./metadata/index.cjs');
19
19
  var implementHttpServer = require('./implementHttpServer.cjs');
20
20
  var narrowingInput = require('./narrowingInput.cjs');
21
21
  require('./clean/index.cjs');
22
- var index$5 = require('./defaultHooks/index.cjs');
22
+ var index$7 = require('./defaultHooks/index.cjs');
23
23
  require('./errors/index.cjs');
24
24
  var serverSentEvents = require('./serverSentEvents.cjs');
25
25
  var checker = require('./builders/checker.cjs');
@@ -53,8 +53,8 @@ var defaultMalformedUrlHandler = require('./hub/defaultMalformedUrlHandler.cjs')
53
53
  var defaultEmptyReaderImplementation = require('./hub/defaultEmptyReaderImplementation.cjs');
54
54
  var build = require('./functionsBuilders/route/build.cjs');
55
55
  var create = require('./functionsBuilders/route/create.cjs');
56
- var _default = require('./functionsBuilders/route/default.cjs');
57
- var hook$1 = require('./functionsBuilders/route/hook.cjs');
56
+ var hook$1 = require('./functionsBuilders/route/default/hook.cjs');
57
+ var index$4 = require('./functionsBuilders/route/default/index.cjs');
58
58
  var create$1 = require('./functionsBuilders/steps/create.cjs');
59
59
  var checkerStep = require('./functionsBuilders/steps/defaults/checkerStep.cjs');
60
60
  var cutStep = require('./functionsBuilders/steps/defaults/cutStep.cjs');
@@ -62,11 +62,13 @@ var handlerStep = require('./functionsBuilders/steps/defaults/handlerStep.cjs');
62
62
  var extractStep = require('./functionsBuilders/steps/defaults/extractStep.cjs');
63
63
  var processStep = require('./functionsBuilders/steps/defaults/processStep.cjs');
64
64
  var build$1 = require('./functionsBuilders/steps/build.cjs');
65
+ var create$2 = require('./functionsBuilders/router/create.cjs');
66
+ var index$5 = require('./functionsBuilders/router/default/index.cjs');
67
+ var build$2 = require('./functionsBuilders/router/build.cjs');
65
68
  var pathToRegExp = require('./router/pathToRegExp.cjs');
66
69
  var buildError = require('./router/buildError.cjs');
67
- var decodeUrl = require('./router/decodeUrl.cjs');
68
70
  var notFoundBodyReaderImplementationError = require('./router/notFoundBodyReaderImplementationError.cjs');
69
- var buildSystemRoute = require('./router/buildSystemRoute.cjs');
71
+ var createRouterElementSystem = require('./router/createRouterElementSystem.cjs');
70
72
  var base$2 = require('./metadata/base.cjs');
71
73
  var ignoreByRouteStore = require('./metadata/ignoreByRouteStore.cjs');
72
74
  var wrongContentTypeError = require('./errors/wrongContentTypeError.cjs');
@@ -90,11 +92,11 @@ exports.presetCheckerKind = presetChecker$1.presetCheckerKind;
90
92
  exports.Hub = index$3.Hub;
91
93
  exports.createHub = index$3.createHub;
92
94
  exports.hubKind = index$3.hubKind;
93
- exports.buildRouter = index$4.buildRouter;
95
+ exports.createRouter = index$6.createRouter;
94
96
  exports.createCoreLibStringIdentifier = stringIdentifier.createCoreLibStringIdentifier;
95
97
  exports.implementHttpServer = implementHttpServer.implementHttpServer;
96
98
  exports.createNarrowingInput = narrowingInput.createNarrowingInput;
97
- exports.initDefaultHook = index$5.initDefaultHook;
99
+ exports.initDefaultHook = index$7.initDefaultHook;
98
100
  Object.defineProperty(exports, "ServerSentEvents", {
99
101
  enumerable: true,
100
102
  get: function () { return serverSentEvents.ServerSentEvents; }
@@ -118,7 +120,6 @@ exports.PredictedResponse = predicted.PredictedResponse;
118
120
  exports.ServerSentEventsPredictedResponse = serverSentEventsPredicted.ServerSentEventsPredictedResponse;
119
121
  exports.createHookRouteLifeCycle = hooks.createHookRouteLifeCycle;
120
122
  exports.hookRouteExitKind = hooks.hookRouteExitKind;
121
- exports.hookRouteLifeCycleAddRequestProperties = hooks.hookRouteLifeCycleAddRequestProperties;
122
123
  exports.hookRouteNextKind = hooks.hookRouteNextKind;
123
124
  exports.stepKind = kind.stepKind;
124
125
  exports.stepIdentifier = identifier.stepIdentifier;
@@ -158,13 +159,13 @@ exports.defaultMalformedUrlHandler = defaultMalformedUrlHandler.defaultMalformed
158
159
  exports.defaultEmptyReaderImplementation = defaultEmptyReaderImplementation.defaultEmptyReaderImplementation;
159
160
  exports.buildRouteFunction = build.buildRouteFunction;
160
161
  exports.createRouteFunctionBuilder = create.createRouteFunctionBuilder;
161
- exports.defaultRouteFunctionBuilder = _default.defaultRouteFunctionBuilder;
162
162
  exports.buildHookAfter = hook$1.buildHookAfter;
163
163
  exports.buildHookBefore = hook$1.buildHookBefore;
164
164
  exports.buildHookErrorBefore = hook$1.buildHookErrorBefore;
165
165
  exports.createHookResponse = hook$1.createHookResponse;
166
166
  exports.exitHookFunction = hook$1.exitHookFunction;
167
167
  exports.nextHookFunction = hook$1.nextHookFunction;
168
+ exports.defaultRouteFunctionBuilder = index$4.defaultRouteFunctionBuilder;
168
169
  exports.createStepFunctionBuilder = create$1.createStepFunctionBuilder;
169
170
  exports.defaultCheckerStepFunctionBuilder = checkerStep.defaultCheckerStepFunctionBuilder;
170
171
  exports.defaultCutStepFunctionBuilder = cutStep.defaultCutStepFunctionBuilder;
@@ -173,13 +174,13 @@ exports.defaultExtractStepFunctionBuilder = extractStep.defaultExtractStepFuncti
173
174
  exports.buildStepsFunction = processStep.buildStepsFunction;
174
175
  exports.defaultProcessStepFunctionBuilder = processStep.defaultProcessStepFunctionBuilder;
175
176
  exports.buildStepFunction = build$1.buildStepFunction;
177
+ exports.createRouterFunctionBuilder = create$2.createRouterFunctionBuilder;
178
+ exports.defaultRouterFunctionBuilder = index$5.defaultRouterFunctionBuilder;
179
+ exports.buildRouterFunction = build$2.buildRouterFunction;
176
180
  exports.pathToRegExp = pathToRegExp.pathToRegExp;
177
181
  exports.RouterBuildError = buildError.RouterBuildError;
178
- exports.decodeUrl = decodeUrl.decodeUrl;
179
- exports.regexQueryAnalyser = decodeUrl.regexQueryAnalyser;
180
- exports.regexUrlAnalyser = decodeUrl.regexUrlAnalyser;
181
182
  exports.NotFoundBodyReaderImplementationError = notFoundBodyReaderImplementationError.NotFoundBodyReaderImplementationError;
182
- exports.buildSystemRoute = buildSystemRoute.buildSystemRoute;
183
+ exports.createRouterElementSystem = createRouterElementSystem.createRouterElementSystem;
183
184
  exports.createMetadata = base$2.createMetadata;
184
185
  exports.metadataKind = base$2.metadataKind;
185
186
  exports.IgnoreByRouteStoreMetadata = ignoreByRouteStore.IgnoreByRouteStoreMetadata;
@@ -11,7 +11,7 @@ export { Request } from './request/index.mjs';
11
11
  export { createPresetChecker, presetCheckerKind } from './presetChecker.mjs';
12
12
  export { Hub, createHub, hubKind } from './hub/index.mjs';
13
13
  import './functionsBuilders/index.mjs';
14
- export { buildRouter } from './router/index.mjs';
14
+ export { createRouter } from './router/index.mjs';
15
15
  export { createCoreLibStringIdentifier } from './stringIdentifier.mjs';
16
16
  import './metadata/index.mjs';
17
17
  export { implementHttpServer } from './implementHttpServer.mjs';
@@ -30,7 +30,7 @@ export { ResponseContract } from './response/contract.mjs';
30
30
  export { HookResponse } from './response/hook.mjs';
31
31
  export { PredictedResponse } from './response/predicted.mjs';
32
32
  export { ServerSentEventsPredictedResponse } from './response/serverSentEventsPredicted.mjs';
33
- export { createHookRouteLifeCycle, hookRouteExitKind, hookRouteLifeCycleAddRequestProperties, hookRouteNextKind } from './route/hooks.mjs';
33
+ export { createHookRouteLifeCycle, hookRouteExitKind, hookRouteNextKind } from './route/hooks.mjs';
34
34
  export { stepKind } from './steps/kind.mjs';
35
35
  export { stepIdentifier } from './steps/identifier.mjs';
36
36
  export { checkerStepKind, createCheckerStep } from './steps/checker.mjs';
@@ -51,8 +51,8 @@ export { defaultMalformedUrlHandler } from './hub/defaultMalformedUrlHandler.mjs
51
51
  export { defaultEmptyReaderImplementation } from './hub/defaultEmptyReaderImplementation.mjs';
52
52
  export { buildRouteFunction } from './functionsBuilders/route/build.mjs';
53
53
  export { createRouteFunctionBuilder } from './functionsBuilders/route/create.mjs';
54
- export { defaultRouteFunctionBuilder } from './functionsBuilders/route/default.mjs';
55
- export { buildHookAfter, buildHookBefore, buildHookErrorBefore, createHookResponse, exitHookFunction, nextHookFunction } from './functionsBuilders/route/hook.mjs';
54
+ export { buildHookAfter, buildHookBefore, buildHookErrorBefore, createHookResponse, exitHookFunction, nextHookFunction } from './functionsBuilders/route/default/hook.mjs';
55
+ export { defaultRouteFunctionBuilder } from './functionsBuilders/route/default/index.mjs';
56
56
  export { createStepFunctionBuilder } from './functionsBuilders/steps/create.mjs';
57
57
  export { defaultCheckerStepFunctionBuilder } from './functionsBuilders/steps/defaults/checkerStep.mjs';
58
58
  export { defaultCutStepFunctionBuilder } from './functionsBuilders/steps/defaults/cutStep.mjs';
@@ -60,11 +60,13 @@ export { defaultHandlerStepFunctionBuilder } from './functionsBuilders/steps/def
60
60
  export { defaultExtractStepFunctionBuilder } from './functionsBuilders/steps/defaults/extractStep.mjs';
61
61
  export { buildStepsFunction, defaultProcessStepFunctionBuilder } from './functionsBuilders/steps/defaults/processStep.mjs';
62
62
  export { buildStepFunction } from './functionsBuilders/steps/build.mjs';
63
+ export { createRouterFunctionBuilder } from './functionsBuilders/router/create.mjs';
64
+ export { defaultRouterFunctionBuilder } from './functionsBuilders/router/default/index.mjs';
65
+ export { buildRouterFunction } from './functionsBuilders/router/build.mjs';
63
66
  export { pathToRegExp } from './router/pathToRegExp.mjs';
64
67
  export { RouterBuildError } from './router/buildError.mjs';
65
- export { decodeUrl, regexQueryAnalyser, regexUrlAnalyser } from './router/decodeUrl.mjs';
66
68
  export { NotFoundBodyReaderImplementationError } from './router/notFoundBodyReaderImplementationError.mjs';
67
- export { buildSystemRoute } from './router/buildSystemRoute.mjs';
69
+ export { createRouterElementSystem } from './router/createRouterElementSystem.mjs';
68
70
  export { createMetadata, metadataKind } from './metadata/base.mjs';
69
71
  export { IgnoreByRouteStoreMetadata } from './metadata/ignoreByRouteStore.mjs';
70
72
  export { WrongContentTypeError } from './errors/wrongContentTypeError.mjs';
@@ -2,30 +2,23 @@ import { type IsEqual, type Kind, type O } from "@duplojs/utils";
2
2
  import { type ProcessStep, type CheckerStep, type CutStep, type ExtractStep, type stepKind, type PresetCheckerStep } from "../steps";
3
3
  import { type Floor } from "../floor";
4
4
  import { type HookRouteLifeCycle } from "../route";
5
- import { type Request } from "../request";
6
5
  import { type Metadata } from "../metadata";
7
6
  export * from "./types";
8
7
  export interface ProcessStepsCustom {
9
8
  }
10
9
  export type ProcessSteps = (ProcessStepsCustom[O.GetPropsWithValueExtends<ProcessStepsCustom, Kind<typeof stepKind.definition>>] | CheckerStep | ExtractStep | PresetCheckerStep | CutStep | ProcessStep);
11
10
  declare const SymbolProcessExportValue: unique symbol;
12
- declare const SymbolProcessRequest: unique symbol;
13
11
  export interface ProcessDefinition {
14
12
  steps: readonly ProcessSteps[];
15
13
  options?: Record<string, unknown>;
16
14
  readonly hooks: readonly HookRouteLifeCycle[];
17
15
  readonly metadata: readonly Metadata[];
18
16
  [SymbolProcessExportValue]?: Floor;
19
- [SymbolProcessRequest]?: Request;
20
17
  }
21
18
  export interface ProcessExportValue<GenericExportValue extends Floor> {
22
19
  [SymbolProcessExportValue]: GenericExportValue;
23
20
  }
24
21
  export type GetProcessExportValue<GenericProcess extends Process> = IsEqual<GenericProcess["definition"][typeof SymbolProcessExportValue], unknown> extends true ? never : GenericProcess["definition"][typeof SymbolProcessExportValue];
25
- export interface ProcessRequest<GenericRequest extends Request> {
26
- [SymbolProcessRequest]: GenericRequest;
27
- }
28
- export type GetProcessRequest<GenericProcess extends Process> = IsEqual<GenericProcess["definition"][typeof SymbolProcessRequest], unknown> extends true ? never : GenericProcess["definition"][typeof SymbolProcessRequest];
29
22
  export declare const processKind: import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<"@DuplojsHttpCore/process", unknown>>;
30
23
  export interface Process<GenericDefinition extends ProcessDefinition = ProcessDefinition> extends Kind<typeof processKind.definition> {
31
24
  definition: GenericDefinition;
@@ -4,25 +4,10 @@ var kind = require('../kind.cjs');
4
4
 
5
5
  const hookRouteExitKind = kind.createCoreLibKind("route-hook-exit");
6
6
  const hookRouteNextKind = kind.createCoreLibKind("route-hook-next");
7
- function createHookRouteLifeCycle(...args) {
8
- if (args.length === 1) {
9
- return args[0];
10
- }
11
- return {
12
- ...args[1],
13
- onConstructRequest: args[0],
14
- };
15
- }
16
- function hookRouteLifeCycleAddRequestProperties(request) {
17
- return (newProperties) => {
18
- for (const key in newProperties) {
19
- request[key] = newProperties[key];
20
- }
21
- return request;
22
- };
7
+ function createHookRouteLifeCycle(hookRouteLifeCycle) {
8
+ return hookRouteLifeCycle;
23
9
  }
24
10
 
25
11
  exports.createHookRouteLifeCycle = createHookRouteLifeCycle;
26
12
  exports.hookRouteExitKind = hookRouteExitKind;
27
- exports.hookRouteLifeCycleAddRequestProperties = hookRouteLifeCycleAddRequestProperties;
28
13
  exports.hookRouteNextKind = hookRouteNextKind;
@@ -1,25 +1,20 @@
1
1
  import { type Request } from "../request";
2
- import { type UnionToIntersection, type AnyFunction, type Kind, type MaybePromise, type SimplifyTopLevel, type IsEqual, type BivariantFunction } from "@duplojs/utils";
2
+ import { type Kind, type MaybePromise } from "@duplojs/utils";
3
3
  import { type HookResponse } from "../response";
4
4
  import { type ResponseCode, type Response } from "../response";
5
- export interface HookParamsOnConstructRequest {
6
- request: Request;
7
- addRequestProperties<GenericNewProperties extends Record<string, unknown>>(newProperties: GenericNewProperties): Request & GenericNewProperties;
8
- }
9
- export type HookOnConstructRequest<GenericRequest extends Request = Request> = (params: HookParamsOnConstructRequest) => MaybePromise<GenericRequest>;
10
5
  export declare const hookRouteExitKind: import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<"@DuplojsHttpCore/route-hook-exit", unknown>>;
11
6
  export interface RouteHookExit extends Kind<typeof hookRouteExitKind.definition> {
12
7
  }
13
8
  export declare const hookRouteNextKind: import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<"@DuplojsHttpCore/route-hook-next", unknown>>;
14
9
  export interface RouteHookNext extends Kind<typeof hookRouteNextKind.definition> {
15
10
  }
16
- export interface RouteHookParams<GenericRequest extends Request = Request> {
17
- readonly request: GenericRequest;
11
+ export interface RouteHookParams {
12
+ readonly request: Request;
18
13
  next(): RouteHookNext;
19
14
  exit(): RouteHookExit;
20
15
  response<GenericCode extends ResponseCode = ResponseCode, GenericInformation extends string = string, GenericBody extends unknown = unknown>(code: GenericCode, information: GenericInformation, body?: GenericBody): HookResponse<GenericCode, GenericInformation, GenericBody | undefined>;
21
16
  }
22
- export type HookBeforeRouteExecution<GenericRequest extends Request = Request> = (params: RouteHookParams<GenericRequest>) => MaybePromise<HookResponse | RouteHookExit | RouteHookNext>;
17
+ export type HookBeforeRouteExecution = (params: RouteHookParams) => MaybePromise<HookResponse | RouteHookExit | RouteHookNext>;
23
18
  export interface RouteHookErrorParams<GenericRequest extends Request = Request> {
24
19
  readonly request: GenericRequest;
25
20
  readonly error: unknown;
@@ -28,32 +23,20 @@ export interface RouteHookErrorParams<GenericRequest extends Request = Request>
28
23
  response<GenericCode extends ResponseCode = ResponseCode, GenericInformation extends string = string, GenericBody extends unknown = unknown>(code: GenericCode, information: GenericInformation, body?: GenericBody): HookResponse<GenericCode, GenericInformation, GenericBody | undefined>;
29
24
  }
30
25
  export type HookError = (params: RouteHookErrorParams<Request>) => MaybePromise<HookResponse | RouteHookExit | RouteHookNext>;
31
- export interface RouteHookParamsAfter<GenericRequest extends Request = Request> {
32
- readonly request: GenericRequest;
26
+ export interface RouteHookParamsAfter {
27
+ readonly request: Request;
33
28
  readonly currentResponse: Response;
34
29
  next(): RouteHookNext;
35
30
  exit(): RouteHookExit;
36
31
  }
37
- export type HookBeforeSendResponse<GenericRequest extends Request = Request> = (params: RouteHookParamsAfter<GenericRequest>) => MaybePromise<RouteHookExit | RouteHookNext>;
38
- export type HookSendResponse<GenericRequest extends Request = Request> = (params: RouteHookParamsAfter<GenericRequest>) => MaybePromise<RouteHookExit | RouteHookNext>;
39
- export type HookAfterSendResponse<GenericRequest extends Request = Request> = (params: RouteHookParamsAfter<GenericRequest>) => MaybePromise<RouteHookExit | RouteHookNext>;
40
- export interface HookRouteLifeCycle<GenericRequest extends Request = Request> {
41
- onConstructRequest?: BivariantFunction<HookOnConstructRequest<GenericRequest>>;
42
- beforeRouteExecution?: BivariantFunction<HookBeforeRouteExecution<GenericRequest>>;
32
+ export type HookBeforeSendResponse = (params: RouteHookParamsAfter) => MaybePromise<RouteHookExit | RouteHookNext>;
33
+ export type HookSendResponse = (params: RouteHookParamsAfter) => MaybePromise<RouteHookExit | RouteHookNext>;
34
+ export type HookAfterSendResponse = (params: RouteHookParamsAfter) => MaybePromise<RouteHookExit | RouteHookNext>;
35
+ export interface HookRouteLifeCycle {
36
+ beforeRouteExecution?: HookBeforeRouteExecution;
43
37
  error?: HookError;
44
- beforeSendResponse?: BivariantFunction<HookBeforeSendResponse<GenericRequest>>;
45
- sendResponse?: BivariantFunction<HookSendResponse<GenericRequest>>;
46
- afterSendResponse?: BivariantFunction<HookAfterSendResponse<GenericRequest>>;
38
+ beforeSendResponse?: HookBeforeSendResponse;
39
+ sendResponse?: HookSendResponse;
40
+ afterSendResponse?: HookAfterSendResponse;
47
41
  }
48
- export declare function createHookRouteLifeCycle<const GenericHookLiveCycle extends Omit<HookRouteLifeCycle, "onConstructRequest">>(hookRouteLifeCycle: GenericHookLiveCycle): GenericHookLiveCycle;
49
- export declare function createHookRouteLifeCycle<GenericOnConstructRequest extends HookOnConstructRequest, const GenericHookLiveCycle extends Omit<HookRouteLifeCycle<Awaited<ReturnType<GenericOnConstructRequest>>>, "onConstructRequest">>(onConstructRequest: GenericOnConstructRequest, hookRouteLifeCycle: GenericHookLiveCycle): SimplifyTopLevel<{
50
- readonly onConstructRequest: GenericOnConstructRequest;
51
- } & GenericHookLiveCycle>;
52
- export declare function hookRouteLifeCycleAddRequestProperties<GenericRequest extends Request = Request>(request: GenericRequest): <GenericNewProperties extends Record<string, unknown> = Record<string, unknown>>(newProperties: GenericNewProperties) => never;
53
- export type ExtractRequestFromHooks<GenericHooks extends readonly HookRouteLifeCycle[]> = GenericHooks extends readonly [
54
- infer InferredFirst,
55
- ...infer InferredRest extends HookRouteLifeCycle[]
56
- ] ? (InferredFirst extends {
57
- onConstructRequest: AnyFunction;
58
- } ? Awaited<ReturnType<InferredFirst["onConstructRequest"]>> : never) extends infer InferredResultFirst ? InferredRest extends readonly [] ? InferredResultFirst : ExtractRequestFromHooks<InferredRest> extends infer InferredResultRest ? InferredResultFirst | InferredResultRest : never : never : never;
59
- export type MakeRequestFromHooks<GenericHooks extends readonly HookRouteLifeCycle[]> = ExtractRequestFromHooks<GenericHooks> extends infer InferredResult extends Request ? IsEqual<InferredResult, never> extends true ? never : UnionToIntersection<InferredResult> : never;
42
+ export declare function createHookRouteLifeCycle<const GenericHookLiveCycle extends HookRouteLifeCycle>(hookRouteLifeCycle: GenericHookLiveCycle): GenericHookLiveCycle;
@@ -2,22 +2,8 @@ import { createCoreLibKind } from '../kind.mjs';
2
2
 
3
3
  const hookRouteExitKind = createCoreLibKind("route-hook-exit");
4
4
  const hookRouteNextKind = createCoreLibKind("route-hook-next");
5
- function createHookRouteLifeCycle(...args) {
6
- if (args.length === 1) {
7
- return args[0];
8
- }
9
- return {
10
- ...args[1],
11
- onConstructRequest: args[0],
12
- };
13
- }
14
- function hookRouteLifeCycleAddRequestProperties(request) {
15
- return (newProperties) => {
16
- for (const key in newProperties) {
17
- request[key] = newProperties[key];
18
- }
19
- return request;
20
- };
5
+ function createHookRouteLifeCycle(hookRouteLifeCycle) {
6
+ return hookRouteLifeCycle;
21
7
  }
22
8
 
23
- export { createHookRouteLifeCycle, hookRouteExitKind, hookRouteLifeCycleAddRequestProperties, hookRouteNextKind };
9
+ export { createHookRouteLifeCycle, hookRouteExitKind, hookRouteNextKind };
@@ -12,7 +12,6 @@ function createRoute(definition) {
12
12
 
13
13
  exports.createHookRouteLifeCycle = hooks.createHookRouteLifeCycle;
14
14
  exports.hookRouteExitKind = hooks.hookRouteExitKind;
15
- exports.hookRouteLifeCycleAddRequestProperties = hooks.hookRouteLifeCycleAddRequestProperties;
16
15
  exports.hookRouteNextKind = hooks.hookRouteNextKind;
17
16
  exports.createRoute = createRoute;
18
17
  exports.routeKind = routeKind;
@@ -1,7 +1,7 @@
1
1
  import { pipe } from '@duplojs/utils';
2
2
  import { createCoreLibKind } from '../kind.mjs';
3
3
  import './types/index.mjs';
4
- export { createHookRouteLifeCycle, hookRouteExitKind, hookRouteLifeCycleAddRequestProperties, hookRouteNextKind } from './hooks.mjs';
4
+ export { createHookRouteLifeCycle, hookRouteExitKind, hookRouteNextKind } from './hooks.mjs';
5
5
 
6
6
  const routeKind = createCoreLibKind("route");
7
7
  function createRoute(definition) {
@@ -5,11 +5,12 @@ require('../functionsBuilders/index.cjs');
5
5
  require('../request/index.cjs');
6
6
  var index = require('../route/index.cjs');
7
7
  var buildError = require('./buildError.cjs');
8
- var defaultEmptyReaderImplementation = require('../hub/defaultEmptyReaderImplementation.cjs');
8
+ require('../hub/index.cjs');
9
9
  var empty = require('../request/bodyController/empty.cjs');
10
+ var defaultEmptyReaderImplementation = require('../hub/defaultEmptyReaderImplementation.cjs');
10
11
  var build = require('../functionsBuilders/route/build.cjs');
11
12
 
12
- async function buildSystemRoute(params) {
13
+ async function createRouterElementSystem(params) {
13
14
  const bodyController = empty.controlBodyAsEmpty();
14
15
  const bodyReader = bodyController.createReaderOrThrow(defaultEmptyReaderImplementation.defaultEmptyReaderImplementation);
15
16
  const route = index.createRoute({
@@ -30,4 +31,4 @@ async function buildSystemRoute(params) {
30
31
  };
31
32
  }
32
33
 
33
- exports.buildSystemRoute = buildSystemRoute;
34
+ exports.createRouterElementSystem = createRouterElementSystem;
@@ -0,0 +1,9 @@
1
+ import { type BuildRouteFunctionParams } from "../functionsBuilders";
2
+ import { type HandlerStep } from "../steps";
3
+ import { type RouterElementSystem } from "./types";
4
+ interface CreateRouterElementSystemParams {
5
+ handlerStep: HandlerStep;
6
+ buildParams: BuildRouteFunctionParams;
7
+ }
8
+ export declare function createRouterElementSystem(params: CreateRouterElementSystemParams): Promise<RouterElementSystem>;
9
+ export {};
@@ -3,11 +3,12 @@ import '../functionsBuilders/index.mjs';
3
3
  import '../request/index.mjs';
4
4
  import { createRoute } from '../route/index.mjs';
5
5
  import { RouterBuildError } from './buildError.mjs';
6
- import { defaultEmptyReaderImplementation } from '../hub/defaultEmptyReaderImplementation.mjs';
6
+ import '../hub/index.mjs';
7
7
  import { controlBodyAsEmpty } from '../request/bodyController/empty.mjs';
8
+ import { defaultEmptyReaderImplementation } from '../hub/defaultEmptyReaderImplementation.mjs';
8
9
  import { buildRouteFunction } from '../functionsBuilders/route/build.mjs';
9
10
 
10
- async function buildSystemRoute(params) {
11
+ async function createRouterElementSystem(params) {
11
12
  const bodyController = controlBodyAsEmpty();
12
13
  const bodyReader = bodyController.createReaderOrThrow(defaultEmptyReaderImplementation);
13
14
  const route = createRoute({
@@ -28,4 +29,4 @@ async function buildSystemRoute(params) {
28
29
  };
29
30
  }
30
31
 
31
- export { buildSystemRoute };
32
+ export { createRouterElementSystem };
@@ -4,13 +4,11 @@ require('../hub/index.cjs');
4
4
  var utils = require('@duplojs/utils');
5
5
  var pathToRegExp = require('./pathToRegExp.cjs');
6
6
  var buildError = require('./buildError.cjs');
7
- require('../functionsBuilders/route/index.cjs');
8
- var decodeUrl = require('./decodeUrl.cjs');
9
7
  var notFoundBodyReaderImplementationError = require('./notFoundBodyReaderImplementationError.cjs');
10
8
  require('../functionsBuilders/index.cjs');
11
- var buildSystemRoute = require('./buildSystemRoute.cjs');
9
+ var createRouterElementSystem = require('./createRouterElementSystem.cjs');
12
10
  require('./types/index.cjs');
13
- var _default = require('../functionsBuilders/route/default.cjs');
11
+ var index = require('../functionsBuilders/route/default/index.cjs');
14
12
  var checkerStep = require('../functionsBuilders/steps/defaults/checkerStep.cjs');
15
13
  var cutStep = require('../functionsBuilders/steps/defaults/cutStep.cjs');
16
14
  var handlerStep = require('../functionsBuilders/steps/defaults/handlerStep.cjs');
@@ -18,13 +16,15 @@ var extractStep = require('../functionsBuilders/steps/defaults/extractStep.cjs')
18
16
  var processStep = require('../functionsBuilders/steps/defaults/processStep.cjs');
19
17
  var hooks = require('../hub/hooks.cjs');
20
18
  var build = require('../functionsBuilders/route/build.cjs');
19
+ var build$1 = require('../functionsBuilders/router/build.cjs');
20
+ var index$1 = require('../functionsBuilders/router/default/index.cjs');
21
21
 
22
- async function buildRouter(hub) {
22
+ async function createRouter(hub) {
23
23
  const { environment } = hub.config;
24
24
  const { hooksRouteLifeCycle, routes, hooksHubLifeCycle, bodyReaderImplementations, } = hub;
25
25
  const routeFunctionBuilders = [
26
26
  ...hub.routeFunctionBuilders,
27
- _default.defaultRouteFunctionBuilder,
27
+ index.defaultRouteFunctionBuilder,
28
28
  ];
29
29
  const stepFunctionBuilders = [
30
30
  ...hub.stepFunctionBuilders,
@@ -42,7 +42,7 @@ async function buildRouter(hub) {
42
42
  routeFunctionBuilders,
43
43
  defaultExtractContract: hub.defaultExtractContract,
44
44
  };
45
- const groupedRoute = await utils.G.asyncReduce(routes, utils.G.reduceFrom({}), async ({ lastValue, element: route, nextWithObject, }) => {
45
+ const routerElementWrapper = await utils.G.asyncReduce(routes, utils.G.reduceFrom({}), async ({ lastValue, element: route, nextWithObject, }) => {
46
46
  const routeAfterHook = await hooks.launchHookBeforeBuildRoute(hooksBeforeBuildRoute, route);
47
47
  const buildedRoute = await build.buildRouteFunction(routeAfterHook, buildParams);
48
48
  if (utils.E.isLeft(buildedRoute)) {
@@ -62,61 +62,23 @@ async function buildRouter(hub) {
62
62
  }))),
63
63
  });
64
64
  });
65
- const defaultNotfoundRoute = await buildSystemRoute.buildSystemRoute({
65
+ const notfoundRouterElement = await createRouterElementSystem.createRouterElementSystem({
66
66
  handlerStep: hub.notfoundHandler,
67
67
  buildParams,
68
68
  });
69
- const defaultMalformedUrlRoute = await buildSystemRoute.buildSystemRoute({
69
+ const malformedUrlRouterElement = await createRouterElementSystem.createRouterElementSystem({
70
70
  handlerStep: hub.malformedUrlHandler,
71
71
  buildParams,
72
72
  });
73
- const Request = hub.classRequest;
74
73
  return {
75
- exec: (initializationData) => {
76
- const routerElements = groupedRoute[initializationData.method];
77
- const decodedUrl = decodeUrl.decodeUrl(initializationData.url);
78
- if (!decodedUrl) {
79
- return defaultMalformedUrlRoute.buildedRoute(new Request({
80
- ...initializationData,
81
- params: {},
82
- path: "",
83
- query: {},
84
- matchedPath: null,
85
- bodyReader: defaultMalformedUrlRoute.bodyReader,
86
- }));
87
- }
88
- if (!routerElements) {
89
- return defaultNotfoundRoute.buildedRoute(new Request({
90
- ...initializationData,
91
- ...decodedUrl,
92
- params: {},
93
- matchedPath: null,
94
- bodyReader: defaultNotfoundRoute.bodyReader,
95
- }));
96
- }
97
- // eslint-disable-next-line @typescript-eslint/prefer-for-of
98
- for (let index = 0; index < routerElements.length; index++) {
99
- const routerElement = routerElements[index];
100
- const result = routerElement.pattern.exec(decodedUrl.path);
101
- if (!result) {
102
- continue;
103
- }
104
- return routerElement.buildedRoute(new Request({
105
- ...initializationData,
106
- ...decodedUrl,
107
- params: result.groups ?? {},
108
- matchedPath: routerElement.matchedPath,
109
- bodyReader: routerElement.bodyReader,
110
- }));
111
- }
112
- return defaultNotfoundRoute.buildedRoute(new Request({
113
- ...initializationData,
114
- ...decodedUrl,
115
- params: {},
116
- matchedPath: null,
117
- bodyReader: defaultNotfoundRoute.bodyReader,
118
- }));
119
- },
74
+ exec: await build$1.buildRouterFunction({
75
+ environment: hub.config.environment,
76
+ routerElementWrapper,
77
+ notfoundRouterElement: notfoundRouterElement,
78
+ malformedUrlRouterElement: malformedUrlRouterElement,
79
+ classRequest: hub.classRequest,
80
+ routerFunctionBuilder: hub.routerFunctionBuilder ?? index$1.defaultRouterFunctionBuilder,
81
+ }),
120
82
  hooksRouteLifeCycle,
121
83
  routeFunctionBuilders,
122
84
  routes,
@@ -127,9 +89,6 @@ async function buildRouter(hub) {
127
89
 
128
90
  exports.pathToRegExp = pathToRegExp.pathToRegExp;
129
91
  exports.RouterBuildError = buildError.RouterBuildError;
130
- exports.decodeUrl = decodeUrl.decodeUrl;
131
- exports.regexQueryAnalyser = decodeUrl.regexQueryAnalyser;
132
- exports.regexUrlAnalyser = decodeUrl.regexUrlAnalyser;
133
92
  exports.NotFoundBodyReaderImplementationError = notFoundBodyReaderImplementationError.NotFoundBodyReaderImplementationError;
134
- exports.buildSystemRoute = buildSystemRoute.buildSystemRoute;
135
- exports.buildRouter = buildRouter;
93
+ exports.createRouterElementSystem = createRouterElementSystem.createRouterElementSystem;
94
+ exports.createRouter = createRouter;
@@ -1,9 +1,8 @@
1
1
  import { type Hub } from "../hub";
2
- import { type BuildedRouter } from "./types";
2
+ import { type Router } from "./types";
3
3
  export * from "./types";
4
4
  export * from "./pathToRegExp";
5
5
  export * from "./buildError";
6
- export * from "./decodeUrl";
7
6
  export * from "./notFoundBodyReaderImplementationError";
8
- export * from "./buildSystemRoute";
9
- export declare function buildRouter(hub: Hub): Promise<BuildedRouter>;
7
+ export * from "./createRouterElementSystem";
8
+ export declare function createRouter(hub: Hub): Promise<Router>;
@@ -2,14 +2,11 @@ import '../hub/index.mjs';
2
2
  import { pipe, A, isType, G, E, unwrap, justReturn, O, forward } from '@duplojs/utils';
3
3
  import { pathToRegExp } from './pathToRegExp.mjs';
4
4
  import { RouterBuildError } from './buildError.mjs';
5
- import '../functionsBuilders/route/index.mjs';
6
- import { decodeUrl } from './decodeUrl.mjs';
7
- export { regexQueryAnalyser, regexUrlAnalyser } from './decodeUrl.mjs';
8
5
  import { NotFoundBodyReaderImplementationError } from './notFoundBodyReaderImplementationError.mjs';
9
6
  import '../functionsBuilders/index.mjs';
10
- import { buildSystemRoute } from './buildSystemRoute.mjs';
7
+ import { createRouterElementSystem } from './createRouterElementSystem.mjs';
11
8
  import './types/index.mjs';
12
- import { defaultRouteFunctionBuilder } from '../functionsBuilders/route/default.mjs';
9
+ import { defaultRouteFunctionBuilder } from '../functionsBuilders/route/default/index.mjs';
13
10
  import { defaultCheckerStepFunctionBuilder } from '../functionsBuilders/steps/defaults/checkerStep.mjs';
14
11
  import { defaultCutStepFunctionBuilder } from '../functionsBuilders/steps/defaults/cutStep.mjs';
15
12
  import { defaultHandlerStepFunctionBuilder } from '../functionsBuilders/steps/defaults/handlerStep.mjs';
@@ -17,8 +14,10 @@ import { defaultExtractStepFunctionBuilder } from '../functionsBuilders/steps/de
17
14
  import { defaultProcessStepFunctionBuilder } from '../functionsBuilders/steps/defaults/processStep.mjs';
18
15
  import { launchHookBeforeBuildRoute } from '../hub/hooks.mjs';
19
16
  import { buildRouteFunction } from '../functionsBuilders/route/build.mjs';
17
+ import { buildRouterFunction } from '../functionsBuilders/router/build.mjs';
18
+ import { defaultRouterFunctionBuilder } from '../functionsBuilders/router/default/index.mjs';
20
19
 
21
- async function buildRouter(hub) {
20
+ async function createRouter(hub) {
22
21
  const { environment } = hub.config;
23
22
  const { hooksRouteLifeCycle, routes, hooksHubLifeCycle, bodyReaderImplementations, } = hub;
24
23
  const routeFunctionBuilders = [
@@ -41,7 +40,7 @@ async function buildRouter(hub) {
41
40
  routeFunctionBuilders,
42
41
  defaultExtractContract: hub.defaultExtractContract,
43
42
  };
44
- const groupedRoute = await G.asyncReduce(routes, G.reduceFrom({}), async ({ lastValue, element: route, nextWithObject, }) => {
43
+ const routerElementWrapper = await G.asyncReduce(routes, G.reduceFrom({}), async ({ lastValue, element: route, nextWithObject, }) => {
45
44
  const routeAfterHook = await launchHookBeforeBuildRoute(hooksBeforeBuildRoute, route);
46
45
  const buildedRoute = await buildRouteFunction(routeAfterHook, buildParams);
47
46
  if (E.isLeft(buildedRoute)) {
@@ -61,61 +60,23 @@ async function buildRouter(hub) {
61
60
  }))),
62
61
  });
63
62
  });
64
- const defaultNotfoundRoute = await buildSystemRoute({
63
+ const notfoundRouterElement = await createRouterElementSystem({
65
64
  handlerStep: hub.notfoundHandler,
66
65
  buildParams,
67
66
  });
68
- const defaultMalformedUrlRoute = await buildSystemRoute({
67
+ const malformedUrlRouterElement = await createRouterElementSystem({
69
68
  handlerStep: hub.malformedUrlHandler,
70
69
  buildParams,
71
70
  });
72
- const Request = hub.classRequest;
73
71
  return {
74
- exec: (initializationData) => {
75
- const routerElements = groupedRoute[initializationData.method];
76
- const decodedUrl = decodeUrl(initializationData.url);
77
- if (!decodedUrl) {
78
- return defaultMalformedUrlRoute.buildedRoute(new Request({
79
- ...initializationData,
80
- params: {},
81
- path: "",
82
- query: {},
83
- matchedPath: null,
84
- bodyReader: defaultMalformedUrlRoute.bodyReader,
85
- }));
86
- }
87
- if (!routerElements) {
88
- return defaultNotfoundRoute.buildedRoute(new Request({
89
- ...initializationData,
90
- ...decodedUrl,
91
- params: {},
92
- matchedPath: null,
93
- bodyReader: defaultNotfoundRoute.bodyReader,
94
- }));
95
- }
96
- // eslint-disable-next-line @typescript-eslint/prefer-for-of
97
- for (let index = 0; index < routerElements.length; index++) {
98
- const routerElement = routerElements[index];
99
- const result = routerElement.pattern.exec(decodedUrl.path);
100
- if (!result) {
101
- continue;
102
- }
103
- return routerElement.buildedRoute(new Request({
104
- ...initializationData,
105
- ...decodedUrl,
106
- params: result.groups ?? {},
107
- matchedPath: routerElement.matchedPath,
108
- bodyReader: routerElement.bodyReader,
109
- }));
110
- }
111
- return defaultNotfoundRoute.buildedRoute(new Request({
112
- ...initializationData,
113
- ...decodedUrl,
114
- params: {},
115
- matchedPath: null,
116
- bodyReader: defaultNotfoundRoute.bodyReader,
117
- }));
118
- },
72
+ exec: await buildRouterFunction({
73
+ environment: hub.config.environment,
74
+ routerElementWrapper,
75
+ notfoundRouterElement: notfoundRouterElement,
76
+ malformedUrlRouterElement: malformedUrlRouterElement,
77
+ classRequest: hub.classRequest,
78
+ routerFunctionBuilder: hub.routerFunctionBuilder ?? defaultRouterFunctionBuilder,
79
+ }),
119
80
  hooksRouteLifeCycle,
120
81
  routeFunctionBuilders,
121
82
  routes,
@@ -124,4 +85,4 @@ async function buildRouter(hub) {
124
85
  };
125
86
  }
126
87
 
127
- export { NotFoundBodyReaderImplementationError, RouterBuildError, buildRouter, buildSystemRoute, decodeUrl, pathToRegExp };
88
+ export { NotFoundBodyReaderImplementationError, RouterBuildError, createRouter, createRouterElementSystem, pathToRegExp };