@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.
@@ -1,11 +1,18 @@
1
1
  // src/http/middleware/request/cors.middleware.ts
2
2
  import corsMiddleware from "cors";
3
- function cors(req, res, next) {
4
- if (req.method === "OPTIONS") {
5
- res.cors = true;
6
- }
7
- corsMiddleware()(req, res, next ?? (() => {
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/services/getEnvVar.ts
222
- function getEnvVar(name) {
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]: getEnvVar("OTEL_SERVICE_NAME") || "unknown",
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 isNever3,
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]: getEnvVar("OTEL_SERVICE_NAME"),
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
- isNever3(parserType);
2590
+ isNever2(parserType);
2592
2591
  res.bodyData = data;
2593
2592
  break;
2594
2593
  }