Skip to content

Commit 7e55057

Browse files
committed
feat: add isSentByFetch/fetchOpaque to urllib message
1 parent e3efce1 commit 7e55057

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

src/HttpClient.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import { parseJSON, digestAuthHeader, globalId, performanceTime, isReadable, upd
4040
import symbols from './symbols.js';
4141
import { initDiagnosticsChannel } from './diagnosticsChannel.js';
4242
import { HttpClientConnectTimeoutError, HttpClientRequestTimeoutError } from './HttpClientError.js';
43+
import { FetchOpaque } from './FetchOpaqueInterceptor.js';
4344

4445
type Exists<T> = T extends undefined ? never : T;
4546
type UndiciRequestOption = Exists<Parameters<typeof undiciRequest>[1]>;
@@ -150,12 +151,16 @@ export const channels = {
150151

151152
export type RequestDiagnosticsMessage = {
152153
request: RequestMeta;
154+
isSentByFetch?: boolean;
155+
fetchOpaque?: FetchOpaque;
153156
};
154157

155158
export type ResponseDiagnosticsMessage = {
156159
request: RequestMeta;
157160
response: RawResponseWithMeta;
158161
error?: Error;
162+
isSentByFetch?: boolean;
163+
fetchOpaque?: FetchOpaque;
159164
};
160165

161166
export interface PoolStat {

src/fetch.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,12 @@ export interface UrllibRequestInit extends RequestInit {
5151

5252
export type FetchDiagnosticsMessage = {
5353
fetch: FetchMeta;
54+
fetchOpaque: FetchOpaque;
5455
};
5556

5657
export type FetchResponseDiagnosticsMessage = {
5758
fetch: FetchMeta;
59+
fetchOpaque: FetchOpaque;
5860
timingInfo?: UndiciTimingInfo;
5961
response?: Response;
6062
error?: Error;
@@ -202,9 +204,12 @@ export class FetchFactory {
202204
};
203205
channels.request.publish({
204206
request: reqMeta,
207+
isSentByFetch: true,
208+
fetchOpaque: internalOpaque,
205209
} as RequestDiagnosticsMessage);
206210
channels.fetchRequest.publish({
207211
fetch: fetchMeta,
212+
fetchOpaque: internalOpaque,
208213
} as FetchDiagnosticsMessage);
209214

210215
let res: Response;
@@ -239,11 +244,14 @@ export class FetchFactory {
239244
channels.fetchResponse.publish({
240245
fetch: fetchMeta,
241246
error: e,
247+
fetchOpaque: internalOpaque,
242248
} as FetchResponseDiagnosticsMessage);
243249
channels.response.publish({
244250
request: reqMeta,
245251
response: urllibResponse,
246252
error: e,
253+
isSentByFetch: true,
254+
fetchOpaque: internalOpaque,
247255
} as ResponseDiagnosticsMessage);
248256
throw e;
249257
}
@@ -265,10 +273,13 @@ export class FetchFactory {
265273
fetch: fetchMeta,
266274
timingInfo: state.timingInfo,
267275
response: res!,
276+
fetchOpaque: internalOpaque,
268277
} as FetchResponseDiagnosticsMessage);
269278
channels.response.publish({
270279
request: reqMeta,
271280
response: urllibResponse,
281+
isSentByFetch: true,
282+
fetchOpaque: internalOpaque,
272283
} as ResponseDiagnosticsMessage);
273284
return res!;
274285
}

0 commit comments

Comments
 (0)