@haskou/ddd-kernel 2.0.1 → 2.0.2
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/dist/{RetryPredicate-DNdxY_KR.d.cts → RetryPredicate-BFGD3FUP.d.cts} +1 -1
- package/dist/{RetryPredicate-CD9n6cE8.d.ts → RetryPredicate-CuL59f8-.d.ts} +1 -1
- package/dist/{ServiceClass-BkEHcXDi.d.cts → ServiceClass-Cv5KbUSf.d.cts} +1 -0
- package/dist/{ServiceClass-Bq_fBC5R.d.ts → ServiceClass-DXDAxvao.d.ts} +1 -0
- package/dist/{ShutdownHook-D23WfIIc.d.cts → ShutdownHook-6-YKfmzG.d.cts} +4 -1
- package/dist/{ShutdownHook-CUl7zYwd.d.ts → ShutdownHook-dvsrwsQi.d.ts} +4 -1
- package/dist/adapters/index.cjs +74 -12
- package/dist/adapters/index.cjs.map +1 -1
- package/dist/adapters/index.d.cts +3 -3
- package/dist/adapters/index.d.ts +3 -3
- package/dist/adapters/index.js +74 -12
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/pubsub/amqp/index.cjs +74 -12
- package/dist/adapters/pubsub/amqp/index.cjs.map +1 -1
- package/dist/adapters/pubsub/amqp/index.js +74 -12
- package/dist/adapters/pubsub/amqp/index.js.map +1 -1
- package/dist/adapters/pubsub/index.cjs +74 -12
- package/dist/adapters/pubsub/index.cjs.map +1 -1
- package/dist/adapters/pubsub/index.d.cts +3 -3
- package/dist/adapters/pubsub/index.d.ts +3 -3
- package/dist/adapters/pubsub/index.js +74 -12
- package/dist/adapters/pubsub/index.js.map +1 -1
- package/dist/adapters/ui/express/index.d.cts +2 -2
- package/dist/adapters/ui/express/index.d.ts +2 -2
- package/dist/adapters/ui/index.cjs +74 -12
- package/dist/adapters/ui/index.cjs.map +1 -1
- package/dist/adapters/ui/index.d.cts +2 -2
- package/dist/adapters/ui/index.d.ts +2 -2
- package/dist/adapters/ui/index.js +74 -12
- package/dist/adapters/ui/index.js.map +1 -1
- package/dist/adapters/ui/routes/index.cjs +74 -12
- package/dist/adapters/ui/routes/index.cjs.map +1 -1
- package/dist/adapters/ui/routes/index.js +74 -12
- package/dist/adapters/ui/routes/index.js.map +1 -1
- package/dist/contracts/index.d.cts +3 -3
- package/dist/contracts/index.d.ts +3 -3
- package/dist/contracts/kernel/index.d.cts +3 -3
- package/dist/contracts/kernel/index.d.ts +3 -3
- package/dist/index.cjs +74 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +74 -12
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/dependency-injection/index.cjs +38 -1
- package/dist/infrastructure/dependency-injection/index.cjs.map +1 -1
- package/dist/infrastructure/dependency-injection/index.d.cts +12 -2
- package/dist/infrastructure/dependency-injection/index.d.ts +12 -2
- package/dist/infrastructure/dependency-injection/index.js +37 -1
- package/dist/infrastructure/dependency-injection/index.js.map +1 -1
- package/dist/infrastructure/express/index.d.cts +2 -2
- package/dist/infrastructure/express/index.d.ts +2 -2
- package/dist/infrastructure/scheduler/index.cjs +74 -12
- package/dist/infrastructure/scheduler/index.cjs.map +1 -1
- package/dist/infrastructure/scheduler/index.js +74 -12
- package/dist/infrastructure/scheduler/index.js.map +1 -1
- package/package.json +2 -1
package/dist/adapters/index.js
CHANGED
|
@@ -66,6 +66,32 @@ var ConsoleKernelLogger = class {
|
|
|
66
66
|
import dotenv from "dotenv";
|
|
67
67
|
import path2 from "path";
|
|
68
68
|
|
|
69
|
+
// src/infrastructure/dependency-injection/AutowireWarningFilter.ts
|
|
70
|
+
var AutowireWarningFilter = class {
|
|
71
|
+
constructor(logger) {
|
|
72
|
+
this.logger = logger;
|
|
73
|
+
}
|
|
74
|
+
logger;
|
|
75
|
+
isIgnorableAutowireWarning(message) {
|
|
76
|
+
return message.startsWith(
|
|
77
|
+
"Autowire: file has export default declaration but no runtime default export:"
|
|
78
|
+
) || message.startsWith("Autowire: failed to create definition for undefined:");
|
|
79
|
+
}
|
|
80
|
+
warn(message, ...optionalParams) {
|
|
81
|
+
if (typeof message === "string" && this.isIgnorableAutowireWarning(message)) {
|
|
82
|
+
this.logger.debug?.(`Ignored ${message}`, ...optionalParams);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
this.logger.warn(message, ...optionalParams);
|
|
86
|
+
}
|
|
87
|
+
info(message, ...optionalParams) {
|
|
88
|
+
this.logger.info?.(message, ...optionalParams);
|
|
89
|
+
}
|
|
90
|
+
debug(message, ...optionalParams) {
|
|
91
|
+
this.logger.debug?.(message, ...optionalParams);
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
|
|
69
95
|
// src/infrastructure/dependency-injection/DependencyInjection.ts
|
|
70
96
|
import fs from "fs-extra";
|
|
71
97
|
import {
|
|
@@ -270,6 +296,15 @@ var DependencyInjection = class _DependencyInjection {
|
|
|
270
296
|
this.applyValueOverride(override);
|
|
271
297
|
}
|
|
272
298
|
}
|
|
299
|
+
async processAutowire() {
|
|
300
|
+
const previousLogger = this.container.logger;
|
|
301
|
+
this.container.logger = new AutowireWarningFilter(previousLogger);
|
|
302
|
+
try {
|
|
303
|
+
await this.autowire?.process();
|
|
304
|
+
} finally {
|
|
305
|
+
this.container.logger = previousLogger;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
273
308
|
registerParentAliases() {
|
|
274
309
|
for (const [id, definition] of this.definitions.entries()) {
|
|
275
310
|
if (definition._abstract === true || !definition._parent) {
|
|
@@ -286,7 +321,7 @@ var DependencyInjection = class _DependencyInjection {
|
|
|
286
321
|
this.options.servicesYamlPath,
|
|
287
322
|
false
|
|
288
323
|
);
|
|
289
|
-
await this.
|
|
324
|
+
await this.processAutowire();
|
|
290
325
|
} else {
|
|
291
326
|
this.loader = new YamlFileLoader(this.container);
|
|
292
327
|
await this.loader.load(this.options.servicesYamlPath);
|
|
@@ -395,6 +430,13 @@ var Kernel = class _Kernel {
|
|
|
395
430
|
);
|
|
396
431
|
}
|
|
397
432
|
}
|
|
433
|
+
static assertRequiredEnvironmentVariableIsNotBlank(name, value, schema) {
|
|
434
|
+
if (schema[name]?.required === true && value.trim() === "") {
|
|
435
|
+
throw new KernelEnvironmentValidationError(
|
|
436
|
+
`Blank required environment variable "${name}".`
|
|
437
|
+
);
|
|
438
|
+
}
|
|
439
|
+
}
|
|
398
440
|
static assertEnvironmentVariableChoice(name, value, schema) {
|
|
399
441
|
const choices = schema[name]?.choices;
|
|
400
442
|
if (choices && !choices.includes(value)) {
|
|
@@ -417,21 +459,16 @@ var Kernel = class _Kernel {
|
|
|
417
459
|
return false;
|
|
418
460
|
}
|
|
419
461
|
throw new KernelEnvironmentValidationError(
|
|
420
|
-
`Environment variable "${name}"
|
|
462
|
+
`Environment variable "${name}" has invalid boolean value "${value}".`
|
|
421
463
|
);
|
|
422
464
|
}
|
|
423
465
|
static parseNumberEnvironmentVariable(name, value) {
|
|
424
|
-
if (value.trim() === "") {
|
|
425
|
-
throw new KernelEnvironmentValidationError(
|
|
426
|
-
`Environment variable "${name}" must be a number.`
|
|
427
|
-
);
|
|
428
|
-
}
|
|
429
466
|
const parsedValue = Number(value);
|
|
430
467
|
if (Number.isFinite(parsedValue)) {
|
|
431
468
|
return parsedValue;
|
|
432
469
|
}
|
|
433
470
|
throw new KernelEnvironmentValidationError(
|
|
434
|
-
`Environment variable "${name}"
|
|
471
|
+
`Environment variable "${name}" has invalid number value "${value}".`
|
|
435
472
|
);
|
|
436
473
|
}
|
|
437
474
|
static parseEnvironmentVariable(name, value, schema) {
|
|
@@ -449,17 +486,42 @@ var Kernel = class _Kernel {
|
|
|
449
486
|
_Kernel.assertEnvironmentVariableChoice(name, value, schema);
|
|
450
487
|
return value;
|
|
451
488
|
}
|
|
489
|
+
static getEnvironmentVariableValue(name, definition, schema) {
|
|
490
|
+
const value = process.env[name];
|
|
491
|
+
_Kernel.assertRequiredEnvironmentVariable(name, value, schema);
|
|
492
|
+
if (value !== void 0) {
|
|
493
|
+
_Kernel.assertRequiredEnvironmentVariableIsNotBlank(name, value, schema);
|
|
494
|
+
}
|
|
495
|
+
if (value !== void 0 && value.trim() !== "") {
|
|
496
|
+
return value;
|
|
497
|
+
}
|
|
498
|
+
return definition.defaultValue?.toString();
|
|
499
|
+
}
|
|
500
|
+
static shouldUnsetBlankOptionalEnvironmentVariable(name, value, valueOrDefault, schema) {
|
|
501
|
+
return value !== void 0 && value.trim() === "" && valueOrDefault === void 0 && schema[name]?.required !== true;
|
|
502
|
+
}
|
|
452
503
|
static validateEnvironmentVariables(schema) {
|
|
453
504
|
const environmentVariables = {};
|
|
454
505
|
for (const [name, definition] of Object.entries(schema)) {
|
|
455
|
-
const value = process.env[name]
|
|
456
|
-
_Kernel.
|
|
457
|
-
|
|
506
|
+
const value = process.env[name];
|
|
507
|
+
const valueOrDefault = _Kernel.getEnvironmentVariableValue(
|
|
508
|
+
name,
|
|
509
|
+
definition,
|
|
510
|
+
schema
|
|
511
|
+
);
|
|
512
|
+
if (valueOrDefault !== void 0) {
|
|
458
513
|
environmentVariables[name] = _Kernel.parseEnvironmentVariable(
|
|
459
514
|
name,
|
|
460
|
-
|
|
515
|
+
valueOrDefault,
|
|
461
516
|
schema
|
|
462
517
|
);
|
|
518
|
+
} else if (_Kernel.shouldUnsetBlankOptionalEnvironmentVariable(
|
|
519
|
+
name,
|
|
520
|
+
value,
|
|
521
|
+
valueOrDefault,
|
|
522
|
+
schema
|
|
523
|
+
)) {
|
|
524
|
+
environmentVariables[name] = void 0;
|
|
463
525
|
}
|
|
464
526
|
}
|
|
465
527
|
return {
|