@hyperttp/core 1.2.5 → 1.3.0

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.
@@ -0,0 +1,174 @@
1
+ const SINGLE_VALUE_HEADERS = Object.create(null);
2
+ const svh = [
3
+ "content-type",
4
+ "content-length",
5
+ "content-encoding",
6
+ "content-disposition",
7
+ "host",
8
+ "authorization",
9
+ "proxy-authorization",
10
+ "user-agent",
11
+ "referer",
12
+ "origin",
13
+ "location",
14
+ "etag",
15
+ "last-modified",
16
+ ];
17
+ for (let i = 0; i < svh.length; i++) {
18
+ SINGLE_VALUE_HEADERS[svh[i]] = true;
19
+ }
20
+ const METHOD_CACHE = {
21
+ get: "GET",
22
+ GET: "GET",
23
+ post: "POST",
24
+ POST: "POST",
25
+ put: "PUT",
26
+ PUT: "PUT",
27
+ delete: "DELETE",
28
+ DELETE: "DELETE",
29
+ patch: "PATCH",
30
+ PATCH: "PATCH",
31
+ head: "HEAD",
32
+ HEAD: "HEAD",
33
+ options: "OPTIONS",
34
+ OPTIONS: "OPTIONS",
35
+ };
36
+ export function normalizeMethod(method) {
37
+ const cached = METHOD_CACHE[method];
38
+ if (cached !== undefined)
39
+ return cached;
40
+ return method.toUpperCase();
41
+ }
42
+ export function normalizeUrl(req) {
43
+ if (typeof req === "string")
44
+ return req;
45
+ if (req.url)
46
+ return typeof req.url === "string" ? req.url : String(req.url);
47
+ if (req._url)
48
+ return typeof req._url === "string" ? req._url : String(req._url);
49
+ if (req.scheme && req.host && req.path) {
50
+ return `${req.scheme}://${req.host}${req.path}`;
51
+ }
52
+ throw new Error("URL missing in request");
53
+ }
54
+ export function normalizeHeaders(headers) {
55
+ const out = Object.create(null);
56
+ if (!headers || typeof headers !== "object")
57
+ return out;
58
+ if (Array.isArray(headers)) {
59
+ for (let i = 0; i < headers.length; i += 2) {
60
+ const key = headers[i];
61
+ if (typeof key !== "string" || !key)
62
+ continue;
63
+ const rawValue = headers[i + 1];
64
+ if (rawValue === undefined || rawValue === null)
65
+ continue;
66
+ const lower = key.toLowerCase();
67
+ const value = typeof rawValue === "string" ? rawValue : String(rawValue);
68
+ if (SINGLE_VALUE_HEADERS[lower] !== undefined) {
69
+ out[lower] = value;
70
+ continue;
71
+ }
72
+ const existing = out[lower];
73
+ if (existing === undefined) {
74
+ out[lower] = value;
75
+ continue;
76
+ }
77
+ if (lower === "set-cookie") {
78
+ if (Array.isArray(existing)) {
79
+ existing.push(value);
80
+ }
81
+ else {
82
+ out[lower] = [existing, value];
83
+ }
84
+ continue;
85
+ }
86
+ if (lower === "cookie" || lower === "cookie2") {
87
+ out[lower] = `${existing}; ${value}`;
88
+ continue;
89
+ }
90
+ out[lower] = Array.isArray(existing)
91
+ ? `${existing.join(", ")}, ${value}`
92
+ : `${existing}, ${value}`;
93
+ }
94
+ return out;
95
+ }
96
+ const headerObj = headers;
97
+ for (const key in headerObj) {
98
+ if (Object.prototype.hasOwnProperty.call(headerObj, key)) {
99
+ const val = headerObj[key];
100
+ if (val === undefined || val === null)
101
+ continue;
102
+ const lower = key.toLowerCase();
103
+ if (Array.isArray(val)) {
104
+ for (let i = 0; i < val.length; i++) {
105
+ const rawValue = val[i];
106
+ if (rawValue === undefined || rawValue === null)
107
+ continue;
108
+ const value = typeof rawValue === "string" ? rawValue : String(rawValue);
109
+ if (SINGLE_VALUE_HEADERS[lower] !== undefined) {
110
+ out[lower] = value;
111
+ continue;
112
+ }
113
+ const existing = out[lower];
114
+ if (existing === undefined) {
115
+ out[lower] = value;
116
+ continue;
117
+ }
118
+ if (lower === "set-cookie") {
119
+ if (Array.isArray(existing)) {
120
+ existing.push(value);
121
+ }
122
+ else {
123
+ out[lower] = [existing, value];
124
+ }
125
+ continue;
126
+ }
127
+ if (lower === "cookie" || lower === "cookie2") {
128
+ out[lower] = `${existing}; ${value}`;
129
+ continue;
130
+ }
131
+ out[lower] = Array.isArray(existing)
132
+ ? `${existing.join(", ")}, ${value}`
133
+ : `${existing}, ${value}`;
134
+ }
135
+ }
136
+ else {
137
+ const value = typeof val === "string" ? val : String(val);
138
+ if (SINGLE_VALUE_HEADERS[lower] !== undefined) {
139
+ out[lower] = value;
140
+ continue;
141
+ }
142
+ const existing = out[lower];
143
+ if (existing === undefined) {
144
+ out[lower] = value;
145
+ continue;
146
+ }
147
+ if (lower === "set-cookie") {
148
+ if (Array.isArray(existing)) {
149
+ existing.push(value);
150
+ }
151
+ else {
152
+ out[lower] = [existing, value];
153
+ }
154
+ continue;
155
+ }
156
+ if (lower === "cookie" || lower === "cookie2") {
157
+ out[lower] = `${existing}; ${value}`;
158
+ continue;
159
+ }
160
+ out[lower] = Array.isArray(existing)
161
+ ? `${existing.join(", ")}, ${value}`
162
+ : `${existing}, ${value}`;
163
+ }
164
+ }
165
+ }
166
+ return out;
167
+ }
168
+ export function normalizeBody(method, body) {
169
+ if (method === "GET" || method === "HEAD") {
170
+ return undefined;
171
+ }
172
+ return body ?? undefined;
173
+ }
174
+ //# sourceMappingURL=normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/utils/normalize.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { HyperPlugin, PluginContext, InternalRequest, HttpResponse, HyperttpError, HttpClientOptions } from "@hyperttp/types";
1
+ import type { HyperPlugin, PluginContext, InternalRequest, HttpResponse, HyperttpError, HttpClientOptions, TransportResponse } from "@hyperttp/types";
2
2
  /**
3
3
  * @ru Структура записи хука с метаданными для оптимизации и сортировки.
4
4
  * @en Hook record structure with metadata for optimization and sorting.
@@ -10,6 +10,7 @@ export interface HookRecord<T> {
10
10
  }
11
11
  export interface PipelineContainer {
12
12
  readonly request: HookRecord<Required<HyperPlugin>["onRequest"]>[];
13
+ readonly responseData: HookRecord<Required<HyperPlugin>["onResponseData"]>[];
13
14
  readonly responseMutators: HookRecord<Required<HyperPlugin>["onResponse"]>[];
14
15
  readonly responseSideEffects: HookRecord<Required<HyperPlugin>["onResponse"]>[];
15
16
  readonly error: HookRecord<Required<HyperPlugin>["onError"]>[];
@@ -26,17 +27,25 @@ export declare function createPipelines(): PipelineContainer;
26
27
  export declare function insertHookSorted<T>(list: HookRecord<T>[], hook: HookRecord<T>): void;
27
28
  /**
28
29
  * @ru Выполняет конвейер пред-запроса. Поддерживает short-circuit (ранний возврат ответа).
29
- * @en Executes the pre-request pipeline. Supports short-circuiting.
30
+ * Использует Fast-Path для синхронных хуков без аллокации микротасок.
31
+ * @en Executes the pre-request pipeline. Supports short-circuiting with fast-path for sync hooks.
30
32
  */
31
- export declare function executeRequestPipeline(hooks: readonly HookRecord<Required<HyperPlugin>["onRequest"]>[], req: InternalRequest, ctx: PluginContext): Promise<HttpResponse<unknown> | null>;
33
+ export declare function executeRequestPipeline(hooks: readonly HookRecord<Required<HyperPlugin>["onRequest"]>[], req: InternalRequest, ctx: PluginContext): Promise<HttpResponse<unknown> | null> | HttpResponse<unknown> | null | void;
34
+ /**
35
+ * @ru Выполняет низкоуровневый конвейер трансформации сырых данных транспорта (фаза DATA).
36
+ * Если хук возвращает измененный TransportResponse, он передается дальше по цепочке.
37
+ * @en Executes low-level transport data transformation pipeline (DATA phase).
38
+ */
39
+ export declare function executeResponseDataPipeline(hooks: readonly HookRecord<Required<HyperPlugin>["onResponseData"]>[], res: TransportResponse, ctx: PluginContext): Promise<TransportResponse> | TransportResponse;
32
40
  /**
33
41
  * @ru Выполняет конвейер пост-ответа. Разделен на мутаторы (последовательно) и сайд-эффекты (в фоне).
42
+ * Оптимизирован для минимизации выделения памяти под замыкания логгера.
34
43
  * @en Executes the post-response pipeline. Split into mutators (sequential) and side-effects (background).
35
44
  */
36
- export declare function executeResponsePipeline(mutators: readonly HookRecord<Required<HyperPlugin>["onResponse"]>[], sideEffects: readonly HookRecord<Required<HyperPlugin>["onResponse"]>[], res: HttpResponse<unknown>, req: InternalRequest, ctx: PluginContext, logger?: HttpClientOptions["logger"]): Promise<void>;
45
+ export declare function executeResponsePipeline(mutators: readonly HookRecord<Required<HyperPlugin>["onResponse"]>[], sideEffects: readonly HookRecord<Required<HyperPlugin>["onResponse"]>[], res: HttpResponse<unknown>, req: InternalRequest, ctx: PluginContext, logger?: HttpClientOptions["logger"]): Promise<void> | void;
37
46
  /**
38
47
  * @ru Выполняет конвейер перехвата ошибок. Первый вернувший HttpResponse плагин прерывает панику.
39
48
  * @en Executes the error interception pipeline. First plugin to return HttpResponse stops the panic.
40
49
  */
41
- export declare function executeErrorPipeline(hooks: readonly HookRecord<Required<HyperPlugin>["onError"]>[], error: HyperttpError, req: InternalRequest, ctx: PluginContext): Promise<HttpResponse<unknown> | null>;
50
+ export declare function executeErrorPipeline(hooks: readonly HookRecord<Required<HyperPlugin>["onError"]>[], error: HyperttpError, req: InternalRequest, ctx: PluginContext): Promise<HttpResponse<unknown> | null> | HttpResponse<unknown> | null | void;
42
51
  //# sourceMappingURL=pipeline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/utils/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,eAAe,EACf,YAAY,EACZ,aAAa,EACb,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;IACnE,QAAQ,CAAC,gBAAgB,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;IAC7E,QAAQ,CAAC,mBAAmB,EAAE,UAAU,CACtC,QAAQ,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CACpC,EAAE,CAAC;IACJ,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;CAChE;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,iBAAiB,CAOnD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,EACrB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAClB,IAAI,CAON;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,SAAS,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,EAChE,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAWvC;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,SAAS,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,EACpE,WAAW,EAAE,SAAS,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,EACvE,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,EAC1B,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,aAAa,EAClB,MAAM,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GACnC,OAAO,CAAC,IAAI,CAAC,CAgCf;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,SAAS,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAC9D,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAWvC"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/utils/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,eAAe,EACf,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;IACnE,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;IAC7E,QAAQ,CAAC,gBAAgB,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;IAC7E,QAAQ,CAAC,mBAAmB,EAAE,UAAU,CACtC,QAAQ,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CACpC,EAAE,CAAC;IACJ,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;CAChE;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,iBAAiB,CAQnD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,EACrB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAClB,IAAI,CAON;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,SAAS,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,EAChE,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,IAAI,CAgB7E;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,SAAS,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,EACrE,GAAG,EAAE,iBAAiB,EACtB,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,CAuBhD;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,SAAS,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,EACpE,WAAW,EAAE,SAAS,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,EACvE,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,EAC1B,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,aAAa,EAClB,MAAM,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GACnC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CA4BtB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAC9D,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,IAAI,CAc7E"}
package/utils/pipeline.js CHANGED
@@ -5,6 +5,7 @@
5
5
  export function createPipelines() {
6
6
  return {
7
7
  request: [],
8
+ responseData: [],
8
9
  responseMutators: [],
9
10
  responseSideEffects: [],
10
11
  error: [],
@@ -24,46 +25,74 @@ export function insertHookSorted(list, hook) {
24
25
  }
25
26
  /**
26
27
  * @ru Выполняет конвейер пред-запроса. Поддерживает short-circuit (ранний возврат ответа).
27
- * @en Executes the pre-request pipeline. Supports short-circuiting.
28
+ * Использует Fast-Path для синхронных хуков без аллокации микротасок.
29
+ * @en Executes the pre-request pipeline. Supports short-circuiting with fast-path for sync hooks.
28
30
  */
29
- export async function executeRequestPipeline(hooks, req, ctx) {
31
+ export function executeRequestPipeline(hooks, req, ctx) {
30
32
  const len = hooks.length;
31
33
  if (len === 0)
32
34
  return null;
33
35
  for (let i = 0; i < len; i++) {
34
- const shortCircuit = await hooks[i].run(req, ctx);
35
- if (shortCircuit) {
36
- return shortCircuit;
36
+ const res = hooks[i].run(req, ctx);
37
+ // Если хук асинхронный — переключаемся на медленный асинхронный путь
38
+ if (res instanceof Promise) {
39
+ return executeRequestPipelineAsync(hooks, req, ctx, i, res);
37
40
  }
41
+ // Если синхронный хук вернул ответ — прерываем выполнение (Short-Circuit)
42
+ if (res != null)
43
+ return res;
38
44
  }
39
45
  return null;
40
46
  }
47
+ /**
48
+ * @ru Выполняет низкоуровневый конвейер трансформации сырых данных транспорта (фаза DATA).
49
+ * Если хук возвращает измененный TransportResponse, он передается дальше по цепочке.
50
+ * @en Executes low-level transport data transformation pipeline (DATA phase).
51
+ */
52
+ export function executeResponseDataPipeline(hooks, res, ctx) {
53
+ const len = hooks.length;
54
+ if (len === 0)
55
+ return res;
56
+ let currentRes = res;
57
+ for (let i = 0; i < len; i++) {
58
+ const result = hooks[i].run(currentRes, ctx);
59
+ if (result instanceof Promise) {
60
+ return executeResponseDataPipelineAsync(hooks, ctx, i, result, currentRes);
61
+ }
62
+ if (result != null) {
63
+ currentRes = result;
64
+ }
65
+ }
66
+ return currentRes;
67
+ }
41
68
  /**
42
69
  * @ru Выполняет конвейер пост-ответа. Разделен на мутаторы (последовательно) и сайд-эффекты (в фоне).
70
+ * Оптимизирован для минимизации выделения памяти под замыкания логгера.
43
71
  * @en Executes the post-response pipeline. Split into mutators (sequential) and side-effects (background).
44
72
  */
45
- export async function executeResponsePipeline(mutators, sideEffects, res, req, ctx, logger) {
46
- // 1. Запуск фоновых сайд-эффектов (Background Phase) - Fire and Forget безопасно для основного потока
73
+ export function executeResponsePipeline(mutators, sideEffects, res, req, ctx, logger) {
47
74
  const seLen = sideEffects.length;
48
75
  if (seLen > 0) {
49
76
  for (let i = 0; i < seLen; i++) {
50
77
  const effect = sideEffects[i];
51
78
  try {
52
79
  const promise = effect.run(res, req, ctx);
53
- if (promise && typeof promise.catch === "function") {
54
- promise.catch((err) => logger?.("warn", `Background hook ${effect.name} crashed: ${err instanceof Error ? err.message : String(err)}`));
80
+ if (promise instanceof Promise) {
81
+ promise.catch((err) => handleSideEffectError(err, effect.name, logger));
55
82
  }
56
83
  }
57
84
  catch (err) {
58
- logger?.("warn", `Sync background hook ${effect.name} crashed: ${err instanceof Error ? err.message : String(err)}`);
85
+ handleSideEffectError(err, effect.name, logger);
59
86
  }
60
87
  }
61
88
  }
62
- // 2. Запуск мутаторов ответа (Mutator Phase) - Изменяют объект ответа последовательно
63
89
  const mutLen = mutators.length;
64
90
  if (mutLen > 0) {
65
91
  for (let i = 0; i < mutLen; i++) {
66
- await mutators[i].run(res, req, ctx);
92
+ const result = mutators[i].run(res, req, ctx);
93
+ if (result instanceof Promise) {
94
+ return executeMutatorsAsync(mutators, res, req, ctx, i, result);
95
+ }
67
96
  }
68
97
  }
69
98
  }
@@ -71,16 +100,73 @@ export async function executeResponsePipeline(mutators, sideEffects, res, req, c
71
100
  * @ru Выполняет конвейер перехвата ошибок. Первый вернувший HttpResponse плагин прерывает панику.
72
101
  * @en Executes the error interception pipeline. First plugin to return HttpResponse stops the panic.
73
102
  */
74
- export async function executeErrorPipeline(hooks, error, req, ctx) {
103
+ export function executeErrorPipeline(hooks, error, req, ctx) {
75
104
  const len = hooks.length;
76
105
  if (len === 0)
77
106
  return null;
78
107
  for (let i = 0; i < len; i++) {
79
- const recovered = await hooks[i].run(error, req, ctx);
80
- if (recovered) {
81
- return recovered;
108
+ const res = hooks[i].run(error, req, ctx);
109
+ if (res instanceof Promise) {
110
+ return executeErrorPipelineAsync(hooks, error, req, ctx, i, res);
111
+ }
112
+ if (res != null)
113
+ return res;
114
+ }
115
+ return null;
116
+ }
117
+ // ═════════════════════════════════════════════════════════════════════════════════════════
118
+ // ВНУТРЕННИЕ АСИНХРОННЫЕ СЕГМЕНТЫ (ВЫНЕСЕНЫ ИЗ ГОРЯЧИХ ФУНКЦИЙ ДЛЯ ИДЕАЛЬНОГО JIT INLINING)
119
+ // ═════════════════════════════════════════════════════════════════════════════════════════
120
+ async function executeRequestPipelineAsync(hooks, req, ctx, startIndex, initialPromise) {
121
+ const shortCircuit = await initialPromise;
122
+ if (shortCircuit != null)
123
+ return shortCircuit;
124
+ const len = hooks.length;
125
+ for (let i = startIndex + 1; i < len; i++) {
126
+ const res = await hooks[i].run(req, ctx);
127
+ if (res != null)
128
+ return res;
129
+ }
130
+ return null;
131
+ }
132
+ async function executeResponseDataPipelineAsync(hooks, ctx, startIndex, initialPromise, lastRes) {
133
+ let currentRes = lastRes;
134
+ const firstAsyncResult = await initialPromise;
135
+ if (firstAsyncResult != null) {
136
+ currentRes = firstAsyncResult;
137
+ }
138
+ const len = hooks.length;
139
+ for (let i = startIndex + 1; i < len; i++) {
140
+ const result = await hooks[i].run(currentRes, ctx);
141
+ if (result != null) {
142
+ currentRes = result;
82
143
  }
83
144
  }
145
+ return currentRes;
146
+ }
147
+ async function executeMutatorsAsync(mutators, res, req, ctx, startIndex, initialPromise) {
148
+ await initialPromise;
149
+ const len = mutators.length;
150
+ for (let i = startIndex + 1; i < len; i++) {
151
+ await mutators[i].run(res, req, ctx);
152
+ }
153
+ }
154
+ async function executeErrorPipelineAsync(hooks, error, req, ctx, startIndex, initialPromise) {
155
+ const recovered = await initialPromise;
156
+ if (recovered != null)
157
+ return recovered;
158
+ const len = hooks.length;
159
+ for (let i = startIndex + 1; i < len; i++) {
160
+ const res = await hooks[i].run(error, req, ctx);
161
+ if (res != null)
162
+ return res;
163
+ }
84
164
  return null;
85
165
  }
166
+ /**
167
+ * @ru Статический обработчик падений фоновых хуков. Изолирован для предотвращения регенерации замыканий.
168
+ */
169
+ function handleSideEffectError(err, hookName, logger) {
170
+ logger?.("warn", `Background hook ${hookName} crashed: ${err instanceof Error ? err.message : String(err)}`);
171
+ }
86
172
  //# sourceMappingURL=pipeline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/utils/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/utils/pipeline.ts"],"names":[],"mappings":"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"}
@@ -22,9 +22,6 @@ export declare const mapResponseFast: (rawResponse: TransportResponse) => {
22
22
  body: import("@hyperttp/types").TransportResponsePayload;
23
23
  url: string;
24
24
  clone: typeof responseCloneHandler;
25
- json: <T = unknown>() => Promise<T>;
26
- text: () => Promise<string>;
27
- dump: () => Promise<void>;
28
25
  data: null;
29
26
  };
30
27
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/utils/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,cAAc,EACf,MAAM,iBAAiB,CAAC;AAEzB,KAAK,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAExE;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,MAAM,CAAC,KAAG,CAsB1C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GACpB,YAAY,CAAC,CAAC,CAAC,CAWjB;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,aAAa,iBAAiB;;;;;;;;;;CAU5D,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,aAAa,GACxB,aAAa,iBAAiB,KAC7B,cAAc,CAAC,OAAO,CAKvB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EACvC,WAAW,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,KAC3C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CASlC,CAAC"}
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/utils/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,cAAc,EACf,MAAM,iBAAiB,CAAC;AAEzB,KAAK,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAExE;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,MAAM,CAAC,KAAG,CAsB1C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GACpB,YAAY,CAAC,CAAC,CAAC,CAWjB;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,aAAa,iBAAiB;;;;;;;CAO5D,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,aAAa,GACxB,aAAa,iBAAiB,KAC7B,cAAc,CAAC,OAAO,CAKvB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EACvC,WAAW,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,KAC3C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CASlC,CAAC"}
package/utils/response.js CHANGED
@@ -51,9 +51,6 @@ export const mapResponseFast = (rawResponse) => ({
51
51
  body: rawResponse.body,
52
52
  url: rawResponse.url ?? "",
53
53
  clone: responseCloneHandler,
54
- json: rawResponse.json,
55
- text: rawResponse.text,
56
- dump: rawResponse.dump,
57
54
  data: null,
58
55
  });
59
56
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/utils/response.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAI,IAAO,EAAK,EAAE;IAC7C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAE3D,MAAM,GAAG,GAAG,IAA+B,CAAC;IAE5C,IACE,IAAI,YAAY,UAAU;QAC1B,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU;QAC9B,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,EACnC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAM,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAGlC,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;QAC5B,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9B,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,WAA8B,EAAE,EAAE,CAAC,CAAC;IAClE,MAAM,EAAE,WAAW,CAAC,MAAM;IAC1B,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,IAAI,EAAE,WAAW,CAAC,IAAI;IACtB,GAAG,EAAE,WAAW,CAAC,GAAG,IAAI,EAAE;IAC1B,KAAK,EAAE,oBAAoB;IAC3B,IAAI,EAAE,WAAW,CAAC,IAAI;IACtB,IAAI,EAAE,WAAW,CAAC,IAAI;IACtB,IAAI,EAAE,WAAW,CAAC,IAAI;IACtB,IAAI,EAAE,IAAI;CACX,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,WAA8B,EACL,EAAE,CAAC,CAAC;IAC7B,MAAM,EAAE,WAAW,CAAC,MAAM;IAC1B,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,IAAI,EAAE,WAAW,CAAC,IAAI;IACtB,GAAG,EAAE,WAAW,CAAC,GAAG,IAAI,EAAE;CAC3B,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAuC,EACvC,QAA4C,EACT,EAAE;IACrC,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;YACxD,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/utils/response.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAI,IAAO,EAAK,EAAE;IAC7C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAE3D,MAAM,GAAG,GAAG,IAA+B,CAAC;IAE5C,IACE,IAAI,YAAY,UAAU;QAC1B,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU;QAC9B,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,EACnC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAM,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAGlC,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;QAC5B,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9B,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,WAA8B,EAAE,EAAE,CAAC,CAAC;IAClE,MAAM,EAAE,WAAW,CAAC,MAAM;IAC1B,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,IAAI,EAAE,WAAW,CAAC,IAAI;IACtB,GAAG,EAAE,WAAW,CAAC,GAAG,IAAI,EAAE;IAC1B,KAAK,EAAE,oBAAoB;IAC3B,IAAI,EAAE,IAAI;CACX,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,WAA8B,EACL,EAAE,CAAC,CAAC;IAC7B,MAAM,EAAE,WAAW,CAAC,MAAM;IAC1B,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,IAAI,EAAE,WAAW,CAAC,IAAI;IACtB,GAAG,EAAE,WAAW,CAAC,GAAG,IAAI,EAAE;CAC3B,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAuC,EACvC,QAA4C,EACT,EAAE;IACrC,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;YACxD,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}