@forklaunch/core 0.8.7 → 0.8.8
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.
- package/lib/src/http/index.d.mts +13 -1
- package/lib/src/http/index.d.ts +13 -1
- package/lib/src/http/index.js +38 -37
- package/lib/src/http/index.js.map +1 -1
- package/lib/src/http/index.mjs +24 -25
- package/lib/src/http/index.mjs.map +1 -1
- package/lib/src/services/index.d.mts +2 -2
- package/lib/src/services/index.d.ts +2 -2
- package/lib/src/services/index.js +6 -6
- package/lib/src/services/index.js.map +1 -1
- package/lib/src/services/index.mjs +6 -6
- package/lib/src/services/index.mjs.map +1 -1
- package/package.json +17 -17
package/lib/src/http/index.mjs
CHANGED
@@ -1,11 +1,18 @@
|
|
1
1
|
// src/http/middleware/request/cors.middleware.ts
|
2
2
|
import corsMiddleware from "cors";
|
3
|
-
function cors(
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
3
|
+
function cors(corsOptions) {
|
4
|
+
return (req, res, next) => {
|
5
|
+
if (req.method === "OPTIONS") {
|
6
|
+
res.cors = true;
|
7
|
+
}
|
8
|
+
if (!res.getHeader) {
|
9
|
+
res.getHeader = (key) => {
|
10
|
+
return res.getHeaders()[key];
|
11
|
+
};
|
12
|
+
}
|
13
|
+
corsMiddleware(corsOptions)(req, res, next ?? (() => {
|
14
|
+
}));
|
15
|
+
};
|
9
16
|
}
|
10
17
|
|
11
18
|
// src/http/middleware/request/createContext.middleware.ts
|
@@ -218,13 +225,11 @@ async function parseRequestAuth(req, res, next) {
|
|
218
225
|
next?.();
|
219
226
|
}
|
220
227
|
|
221
|
-
// src/
|
222
|
-
|
223
|
-
const value = process.env[name];
|
224
|
-
return value;
|
225
|
-
}
|
228
|
+
// src/http/middleware/request/enrichDetails.middleware.ts
|
229
|
+
import { getEnvVar as getEnvVar2 } from "@forklaunch/common";
|
226
230
|
|
227
231
|
// src/http/telemetry/openTelemetryCollector.ts
|
232
|
+
import { getEnvVar } from "@forklaunch/common";
|
228
233
|
import { HyperExpressInstrumentation } from "@forklaunch/opentelemetry-instrumentation-hyper-express";
|
229
234
|
import {
|
230
235
|
metrics
|
@@ -481,7 +486,7 @@ function enrichDetails(path, contractDetails, requestSchema, responseSchemas, op
|
|
481
486
|
const [seconds, nanoseconds] = process.hrtime(startTime);
|
482
487
|
const durationMs = seconds + nanoseconds / 1e9;
|
483
488
|
httpServerDurationHistogram.record(durationMs, {
|
484
|
-
[ATTR_SERVICE_NAME]:
|
489
|
+
[ATTR_SERVICE_NAME]: getEnvVar2("OTEL_SERVICE_NAME") || "unknown",
|
485
490
|
[ATTR_API_NAME]: req.contractDetails?.name || "unknown",
|
486
491
|
[ATTR_HTTP_REQUEST_METHOD]: req.method,
|
487
492
|
[ATTR_HTTP_ROUTE]: req.originalPath || "unknown",
|
@@ -1301,7 +1306,7 @@ var ForklaunchExpressLikeApplication = class extends ForklaunchExpressLikeRouter
|
|
1301
1306
|
*
|
1302
1307
|
* @param {SV} schemaValidator - The schema validator.
|
1303
1308
|
*/
|
1304
|
-
constructor(schemaValidator, internal, postEnrichMiddleware, openTelemetryCollector) {
|
1309
|
+
constructor(schemaValidator, internal, postEnrichMiddleware, openTelemetryCollector, appOptions) {
|
1305
1310
|
super(
|
1306
1311
|
"/",
|
1307
1312
|
schemaValidator,
|
@@ -1313,8 +1318,9 @@ var ForklaunchExpressLikeApplication = class extends ForklaunchExpressLikeRouter
|
|
1313
1318
|
this.internal = internal;
|
1314
1319
|
this.postEnrichMiddleware = postEnrichMiddleware;
|
1315
1320
|
this.openTelemetryCollector = openTelemetryCollector;
|
1321
|
+
this.appOptions = appOptions;
|
1316
1322
|
this.internal.use(createContext(this.schemaValidator));
|
1317
|
-
this.internal.use(cors);
|
1323
|
+
this.internal.use(cors(this.appOptions?.cors ?? {}));
|
1318
1324
|
}
|
1319
1325
|
};
|
1320
1326
|
|
@@ -2444,7 +2450,7 @@ ${parseErrors.join("\n\n")}`
|
|
2444
2450
|
// src/http/middleware/response/enrichExpressLikeSend.middleware.ts
|
2445
2451
|
import {
|
2446
2452
|
isAsyncGenerator,
|
2447
|
-
isNever as
|
2453
|
+
isNever as isNever2,
|
2448
2454
|
isNodeJsWriteableStream,
|
2449
2455
|
isRecord,
|
2450
2456
|
readableStreamToAsyncIterable,
|
@@ -2453,26 +2459,19 @@ import {
|
|
2453
2459
|
import { Readable, Transform } from "stream";
|
2454
2460
|
|
2455
2461
|
// src/http/telemetry/recordMetric.ts
|
2462
|
+
import { getEnvVar as getEnvVar3 } from "@forklaunch/common";
|
2456
2463
|
import {
|
2457
2464
|
ATTR_HTTP_REQUEST_METHOD as ATTR_HTTP_REQUEST_METHOD3,
|
2458
2465
|
ATTR_HTTP_RESPONSE_STATUS_CODE as ATTR_HTTP_RESPONSE_STATUS_CODE3,
|
2459
2466
|
ATTR_HTTP_ROUTE as ATTR_HTTP_ROUTE3,
|
2460
2467
|
ATTR_SERVICE_NAME as ATTR_SERVICE_NAME3
|
2461
2468
|
} from "@opentelemetry/semantic-conventions";
|
2462
|
-
|
2463
|
-
// src/services/configInjector.ts
|
2464
|
-
import { extractArgumentNames as extractArgumentNames2, isNever as isNever2 } from "@forklaunch/common";
|
2465
|
-
import {
|
2466
|
-
prettyPrintParseErrors as prettyPrintParseErrors3
|
2467
|
-
} from "@forklaunch/validator";
|
2468
|
-
|
2469
|
-
// src/http/telemetry/recordMetric.ts
|
2470
2469
|
function recordMetric(req, res) {
|
2471
2470
|
if (res.metricRecorded) {
|
2472
2471
|
return;
|
2473
2472
|
}
|
2474
2473
|
httpRequestsTotalCounter.add(1, {
|
2475
|
-
[ATTR_SERVICE_NAME3]:
|
2474
|
+
[ATTR_SERVICE_NAME3]: getEnvVar3("OTEL_SERVICE_NAME"),
|
2476
2475
|
[ATTR_API_NAME]: req.contractDetails?.name,
|
2477
2476
|
[ATTR_CORRELATION_ID]: req.context.correlationId,
|
2478
2477
|
[ATTR_HTTP_REQUEST_METHOD3]: req.method,
|
@@ -2588,7 +2587,7 @@ ${res.locals.errorMessage}`;
|
|
2588
2587
|
res.bodyData = data;
|
2589
2588
|
break;
|
2590
2589
|
default:
|
2591
|
-
|
2590
|
+
isNever2(parserType);
|
2592
2591
|
res.bodyData = data;
|
2593
2592
|
break;
|
2594
2593
|
}
|