Skip to content

Commit 6019f60

Browse files
author
Luca Forstner
committed
Simplify request
1 parent 40d37d7 commit 6019f60

File tree

1 file changed

+41
-49
lines changed
  • packages/node/src/transports

1 file changed

+41
-49
lines changed

packages/node/src/transports/new.ts

Lines changed: 41 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -94,57 +94,49 @@ function createRequestExecutor(
9494
): TransportRequestExecutor {
9595
const { hostname, pathname, port, protocol } = new URL(options.url);
9696

97-
// This function is extracted because we want to keep the actual `makeRequest` function as light-weight as possible
98-
function performHttpRequest(
99-
callback: (transportMakeRequestResponse: TransportMakeRequestResponse) => void,
100-
): HTTPModuleClientRequest {
101-
return httpModule.request(
102-
{
103-
method: 'POST',
104-
agent,
105-
headers: options.headers,
106-
hostname,
107-
pathname,
108-
port,
109-
protocol,
110-
ca: options.caCerts ? fs.readFileSync(options.caCerts) : undefined,
111-
},
112-
res => {
113-
res.on('data', () => {
114-
// Drain socket
115-
});
116-
117-
res.on('end', () => {
118-
// Drain socket
119-
});
120-
121-
const statusCode = res.statusCode ?? 500;
122-
const status = eventStatusFromHttpCode(statusCode);
123-
124-
res.setEncoding('utf8');
125-
126-
/**
127-
* "Key-value pairs of header names and values. Header names are lower-cased."
128-
* https://nodejs.org/api/http.html#http_message_headers
129-
*/
130-
const retryAfterHeader = res.headers['retry-after'] ?? null;
131-
const rateLimitsHeader = res.headers['x-sentry-rate-limits'] ?? null;
132-
133-
callback({
134-
headers: {
135-
'retry-after': retryAfterHeader,
136-
'x-sentry-rate-limits': Array.isArray(rateLimitsHeader) ? rateLimitsHeader[0] : rateLimitsHeader,
137-
},
138-
reason: status,
139-
statusCode: statusCode,
140-
});
141-
},
142-
);
143-
}
144-
14597
return function makeRequest(request: TransportRequest): Promise<TransportMakeRequestResponse> {
14698
return new Promise((resolve, reject) => {
147-
const req = performHttpRequest(resolve);
99+
const req = httpModule.request(
100+
{
101+
method: 'POST',
102+
agent,
103+
headers: options.headers,
104+
hostname,
105+
pathname,
106+
port,
107+
protocol,
108+
ca: options.caCerts ? fs.readFileSync(options.caCerts) : undefined,
109+
},
110+
res => {
111+
res.on('data', () => {
112+
// Drain socket
113+
});
114+
115+
res.on('end', () => {
116+
// Drain socket
117+
});
118+
119+
const statusCode = res.statusCode ?? 500;
120+
const status = eventStatusFromHttpCode(statusCode);
121+
122+
res.setEncoding('utf8');
123+
124+
// "Key-value pairs of header names and values. Header names are lower-cased."
125+
// https://nodejs.org/api/http.html#http_message_headers
126+
const retryAfterHeader = res.headers['retry-after'] ?? null;
127+
const rateLimitsHeader = res.headers['x-sentry-rate-limits'] ?? null;
128+
129+
resolve({
130+
headers: {
131+
'retry-after': retryAfterHeader,
132+
'x-sentry-rate-limits': Array.isArray(rateLimitsHeader) ? rateLimitsHeader[0] : rateLimitsHeader,
133+
},
134+
reason: status,
135+
statusCode: statusCode,
136+
});
137+
},
138+
);
139+
148140
req.on('error', reject);
149141
req.end(request.body);
150142
});

0 commit comments

Comments
 (0)