@navios/core 0.1.3 → 0.1.5
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/index.d.mts +35 -12
- package/dist/index.d.ts +35 -12
- package/dist/index.js +155 -121
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +158 -127
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/attribute.factory.mts +1 -1
- package/src/config/config.provider.mts +11 -20
- package/src/service-locator/__tests__/injectable.spec.mts +2 -1
- package/src/service-locator/__tests__/injection-token.spec.mts +124 -0
- package/src/service-locator/decorators/get-injectable-token.mts +2 -6
- package/src/service-locator/decorators/injectable.decorator.mts +7 -46
- package/src/service-locator/errors/errors.enum.mts +1 -0
- package/src/service-locator/errors/factory-token-not-resolved.mts +10 -0
- package/src/service-locator/errors/index.mts +1 -0
- package/src/service-locator/index.mts +1 -0
- package/src/service-locator/inject.mts +4 -18
- package/src/service-locator/injection-token.mts +57 -6
- package/src/service-locator/resolve-service.mts +46 -0
- package/src/service-locator/service-locator.mts +87 -35
- package/src/service-locator/sync-injector.mts +0 -8
package/dist/index.js
CHANGED
|
@@ -77,9 +77,9 @@ __export(src_exports, {
|
|
|
77
77
|
Application: () => Application,
|
|
78
78
|
AttributeFactory: () => AttributeFactory,
|
|
79
79
|
BadRequestException: () => BadRequestException,
|
|
80
|
+
BoundInjectionToken: () => BoundInjectionToken,
|
|
80
81
|
ConfigProvider: () => ConfigProvider,
|
|
81
82
|
ConfigProviderFactory: () => ConfigProviderFactory,
|
|
82
|
-
ConfigProviderInjectionToken: () => ConfigProviderInjectionToken,
|
|
83
83
|
ConfigProviderOptions: () => ConfigProviderOptions,
|
|
84
84
|
ConfigServiceInstance: () => ConfigServiceInstance,
|
|
85
85
|
ConflictException: () => ConflictException,
|
|
@@ -95,7 +95,9 @@ __export(src_exports, {
|
|
|
95
95
|
ExecutionContext: () => ExecutionContext2,
|
|
96
96
|
ExecutionContextInjectionToken: () => ExecutionContextInjectionToken,
|
|
97
97
|
ExecutionContextToken: () => ExecutionContextToken,
|
|
98
|
+
FactoryInjectionToken: () => FactoryInjectionToken,
|
|
98
99
|
FactoryNotFound: () => FactoryNotFound,
|
|
100
|
+
FactoryTokenNotResolved: () => FactoryTokenNotResolved,
|
|
99
101
|
ForbiddenException: () => ForbiddenException,
|
|
100
102
|
GuardRunnerService: () => GuardRunnerService,
|
|
101
103
|
Header: () => Header,
|
|
@@ -161,10 +163,11 @@ __export(src_exports, {
|
|
|
161
163
|
isString: () => isString,
|
|
162
164
|
isSymbol: () => isSymbol,
|
|
163
165
|
isUndefined: () => isUndefined,
|
|
164
|
-
makeConfigToken: () => makeConfigToken,
|
|
165
166
|
normalizePath: () => normalizePath,
|
|
166
167
|
override: () => override,
|
|
168
|
+
provideConfig: () => provideConfig,
|
|
167
169
|
provideServiceLocator: () => provideServiceLocator,
|
|
170
|
+
resolveService: () => resolveService,
|
|
168
171
|
setPromiseCollector: () => setPromiseCollector,
|
|
169
172
|
stripEndSlash: () => stripEndSlash,
|
|
170
173
|
syncInject: () => syncInject,
|
|
@@ -283,6 +286,9 @@ var isSymbol = (val) => typeof val === "symbol";
|
|
|
283
286
|
// packages/core/src/logger/console-logger.service.mts
|
|
284
287
|
var import_util = require("util");
|
|
285
288
|
|
|
289
|
+
// packages/core/src/service-locator/decorators/injectable.decorator.mts
|
|
290
|
+
var import_common2 = require("@navios/common");
|
|
291
|
+
|
|
286
292
|
// packages/core/src/service-locator/enums/injectable-scope.enum.mts
|
|
287
293
|
var InjectableScope = /* @__PURE__ */ ((InjectableScope2) => {
|
|
288
294
|
InjectableScope2["Singleton"] = "Singleton";
|
|
@@ -302,8 +308,38 @@ var InjectionToken = class _InjectionToken {
|
|
|
302
308
|
static create(name2, schema) {
|
|
303
309
|
return new _InjectionToken(name2, schema);
|
|
304
310
|
}
|
|
305
|
-
|
|
306
|
-
return
|
|
311
|
+
static bound(token, value) {
|
|
312
|
+
return new BoundInjectionToken(token, value);
|
|
313
|
+
}
|
|
314
|
+
static factory(token, factory) {
|
|
315
|
+
return new FactoryInjectionToken(token, factory);
|
|
316
|
+
}
|
|
317
|
+
static refineType(token) {
|
|
318
|
+
return token;
|
|
319
|
+
}
|
|
320
|
+
};
|
|
321
|
+
var BoundInjectionToken = class extends InjectionToken {
|
|
322
|
+
constructor(token, value) {
|
|
323
|
+
super(token.name, token.schema);
|
|
324
|
+
this.token = token;
|
|
325
|
+
this.value = value;
|
|
326
|
+
this.id = token.id;
|
|
327
|
+
}
|
|
328
|
+
};
|
|
329
|
+
var FactoryInjectionToken = class extends InjectionToken {
|
|
330
|
+
constructor(token, factory) {
|
|
331
|
+
super(token.name, token.schema);
|
|
332
|
+
this.token = token;
|
|
333
|
+
this.factory = factory;
|
|
334
|
+
}
|
|
335
|
+
value;
|
|
336
|
+
resolved = false;
|
|
337
|
+
async resolve() {
|
|
338
|
+
if (!this.value) {
|
|
339
|
+
this.value = await this.factory();
|
|
340
|
+
this.resolved = true;
|
|
341
|
+
}
|
|
342
|
+
return this.value;
|
|
307
343
|
}
|
|
308
344
|
};
|
|
309
345
|
|
|
@@ -314,6 +350,7 @@ var ErrorsEnum = /* @__PURE__ */ ((ErrorsEnum2) => {
|
|
|
314
350
|
ErrorsEnum2["InstanceDestroying"] = "InstanceDestroying";
|
|
315
351
|
ErrorsEnum2["UnknownError"] = "UnknownError";
|
|
316
352
|
ErrorsEnum2["FactoryNotFound"] = "FactoryNotFound";
|
|
353
|
+
ErrorsEnum2["FactoryTokenNotResolved"] = "FactoryTokenNotResolved";
|
|
317
354
|
return ErrorsEnum2;
|
|
318
355
|
})(ErrorsEnum || {});
|
|
319
356
|
|
|
@@ -326,6 +363,14 @@ var FactoryNotFound = class extends Error {
|
|
|
326
363
|
code = "FactoryNotFound" /* FactoryNotFound */;
|
|
327
364
|
};
|
|
328
365
|
|
|
366
|
+
// packages/core/src/service-locator/errors/factory-token-not-resolved.mts
|
|
367
|
+
var FactoryTokenNotResolved = class extends Error {
|
|
368
|
+
code = "FactoryTokenNotResolved" /* FactoryTokenNotResolved */;
|
|
369
|
+
constructor(name2) {
|
|
370
|
+
super(`Factory token not resolved: ${name2.toString()}`);
|
|
371
|
+
}
|
|
372
|
+
};
|
|
373
|
+
|
|
329
374
|
// packages/core/src/service-locator/errors/instance-destroying.mts
|
|
330
375
|
var InstanceDestroying = class extends Error {
|
|
331
376
|
constructor(name2) {
|
|
@@ -568,29 +613,48 @@ var ServiceLocator = class {
|
|
|
568
613
|
this.instanceFactories.delete(token);
|
|
569
614
|
}
|
|
570
615
|
}
|
|
571
|
-
|
|
572
|
-
var _a;
|
|
573
|
-
|
|
574
|
-
if (
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
616
|
+
resolveTokenArgs(token, args) {
|
|
617
|
+
var _a, _b;
|
|
618
|
+
let realArgs = args;
|
|
619
|
+
if (token instanceof BoundInjectionToken) {
|
|
620
|
+
realArgs = token.value;
|
|
621
|
+
} else if (token instanceof FactoryInjectionToken) {
|
|
622
|
+
if (token.resolved) {
|
|
623
|
+
realArgs = token.value;
|
|
624
|
+
} else {
|
|
625
|
+
return [new FactoryTokenNotResolved(token.name)];
|
|
626
|
+
}
|
|
580
627
|
}
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
const validatedArgs = token.schema ? token.schema.safeParse(args) : void 0;
|
|
628
|
+
if (!token.schema) {
|
|
629
|
+
return [void 0, realArgs];
|
|
630
|
+
}
|
|
631
|
+
const validatedArgs = (_a = token.schema) == null ? void 0 : _a.safeParse(realArgs);
|
|
586
632
|
if (validatedArgs && !validatedArgs.success) {
|
|
587
|
-
(
|
|
633
|
+
(_b = this.logger) == null ? void 0 : _b.error(
|
|
588
634
|
`[ServiceLocator]#getInstance(): Error validating args for ${token.name.toString()}`,
|
|
589
635
|
validatedArgs.error
|
|
590
636
|
);
|
|
591
637
|
return [new UnknownError(validatedArgs.error)];
|
|
592
638
|
}
|
|
593
|
-
|
|
639
|
+
return [void 0, validatedArgs == null ? void 0 : validatedArgs.data];
|
|
640
|
+
}
|
|
641
|
+
getInstanceIdentifier(token, args) {
|
|
642
|
+
const [err, realArgs] = this.resolveTokenArgs(token, args);
|
|
643
|
+
if (err) {
|
|
644
|
+
throw err;
|
|
645
|
+
}
|
|
646
|
+
return this.makeInstanceName(token, realArgs);
|
|
647
|
+
}
|
|
648
|
+
async getInstance(token, args) {
|
|
649
|
+
var _a, _b;
|
|
650
|
+
const [err, realArgs] = this.resolveTokenArgs(token, args);
|
|
651
|
+
if (err instanceof UnknownError) {
|
|
652
|
+
throw err;
|
|
653
|
+
} else if (err instanceof FactoryTokenNotResolved && token instanceof FactoryInjectionToken) {
|
|
654
|
+
await token.resolve();
|
|
655
|
+
return this.getInstance(token, args);
|
|
656
|
+
}
|
|
657
|
+
const instanceName = this.makeInstanceName(token, realArgs);
|
|
594
658
|
const [error, holder] = this.manager.get(instanceName);
|
|
595
659
|
if (!error) {
|
|
596
660
|
if (holder.status === "creating" /* Creating */) {
|
|
@@ -602,13 +666,13 @@ var ServiceLocator = class {
|
|
|
602
666
|
}
|
|
603
667
|
switch (error.code) {
|
|
604
668
|
case "InstanceDestroying" /* InstanceDestroying */:
|
|
605
|
-
(
|
|
669
|
+
(_a = this.logger) == null ? void 0 : _a.log(
|
|
606
670
|
`[ServiceLocator]#getInstance() TTL expired for ${holder == null ? void 0 : holder.name}`
|
|
607
671
|
);
|
|
608
672
|
await (holder == null ? void 0 : holder.destroyPromise);
|
|
609
673
|
return this.getInstance(token, args);
|
|
610
674
|
case "InstanceExpired" /* InstanceExpired */:
|
|
611
|
-
(
|
|
675
|
+
(_b = this.logger) == null ? void 0 : _b.log(
|
|
612
676
|
`[ServiceLocator]#getInstance() TTL expired for ${holder == null ? void 0 : holder.name}`
|
|
613
677
|
);
|
|
614
678
|
await this.invalidate(instanceName);
|
|
@@ -618,7 +682,7 @@ var ServiceLocator = class {
|
|
|
618
682
|
default:
|
|
619
683
|
return [error];
|
|
620
684
|
}
|
|
621
|
-
return this.createInstance(instanceName, token,
|
|
685
|
+
return this.createInstance(instanceName, token, realArgs);
|
|
622
686
|
}
|
|
623
687
|
async getOrThrowInstance(token, args) {
|
|
624
688
|
const [error, instance] = await this.getInstance(token, args);
|
|
@@ -639,10 +703,15 @@ var ServiceLocator = class {
|
|
|
639
703
|
(_a = this.logger) == null ? void 0 : _a.log(
|
|
640
704
|
`[ServiceLocator]#createInstance() Creating instance for ${instanceName}`
|
|
641
705
|
);
|
|
642
|
-
|
|
643
|
-
|
|
706
|
+
let realToken = token instanceof BoundInjectionToken || token instanceof FactoryInjectionToken ? token.token : token;
|
|
707
|
+
if (this.abstractFactories.has(realToken) || this.instanceFactories.has(realToken)) {
|
|
708
|
+
return this.createInstanceFromAbstractFactory(
|
|
709
|
+
instanceName,
|
|
710
|
+
realToken,
|
|
711
|
+
args
|
|
712
|
+
);
|
|
644
713
|
} else {
|
|
645
|
-
return [new FactoryNotFound(
|
|
714
|
+
return [new FactoryNotFound(realToken.name.toString())];
|
|
646
715
|
}
|
|
647
716
|
}
|
|
648
717
|
async createInstanceFromAbstractFactory(instanceName, token, args) {
|
|
@@ -689,7 +758,7 @@ var ServiceLocator = class {
|
|
|
689
758
|
);
|
|
690
759
|
});
|
|
691
760
|
}
|
|
692
|
-
if (holder.ttl === 0) {
|
|
761
|
+
if (holder.ttl === 0 || !shouldStore) {
|
|
693
762
|
await this.invalidate(instanceName);
|
|
694
763
|
}
|
|
695
764
|
await this.notifyListeners(instanceName);
|
|
@@ -761,16 +830,11 @@ var ServiceLocator = class {
|
|
|
761
830
|
};
|
|
762
831
|
}
|
|
763
832
|
getSyncInstance(token, args) {
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
(_a = this.logger) == null ? void 0 : _a.error(
|
|
768
|
-
`[ServiceLocator]#getInstance(): Error validating args for ${token.name.toString()}`,
|
|
769
|
-
validatedArgs.error
|
|
770
|
-
);
|
|
771
|
-
throw new UnknownError(validatedArgs.error);
|
|
833
|
+
const [err, realArgs] = this.resolveTokenArgs(token, args);
|
|
834
|
+
if (err) {
|
|
835
|
+
return null;
|
|
772
836
|
}
|
|
773
|
-
const instanceName = this.makeInstanceName(token,
|
|
837
|
+
const instanceName = this.makeInstanceName(token, realArgs);
|
|
774
838
|
const [error, holder] = this.manager.get(instanceName);
|
|
775
839
|
if (error) {
|
|
776
840
|
return null;
|
|
@@ -878,6 +942,9 @@ function getServiceLocator() {
|
|
|
878
942
|
return serviceLocator;
|
|
879
943
|
}
|
|
880
944
|
|
|
945
|
+
// packages/core/src/service-locator/resolve-service.mts
|
|
946
|
+
var import_common = require("@navios/common");
|
|
947
|
+
|
|
881
948
|
// packages/core/src/service-locator/proxy-service-locator.mts
|
|
882
949
|
var ProxyServiceLocator = class {
|
|
883
950
|
constructor(serviceLocator2, ctx) {
|
|
@@ -926,14 +993,6 @@ function makeProxyServiceLocator(serviceLocator2, ctx) {
|
|
|
926
993
|
// packages/core/src/service-locator/sync-injector.mts
|
|
927
994
|
var promiseCollector = null;
|
|
928
995
|
function syncInject(token, args) {
|
|
929
|
-
if (token.schema) {
|
|
930
|
-
const parsed = token.schema.safeParse(args);
|
|
931
|
-
if (!parsed.success) {
|
|
932
|
-
throw new Error(
|
|
933
|
-
`[ServiceLocator] Invalid arguments for ${token.name.toString()}: ${parsed.error}`
|
|
934
|
-
);
|
|
935
|
-
}
|
|
936
|
-
}
|
|
937
996
|
let realToken = token;
|
|
938
997
|
if (!(token instanceof InjectionToken)) {
|
|
939
998
|
realToken = getInjectableToken(token);
|
|
@@ -957,6 +1016,40 @@ function setPromiseCollector(collector) {
|
|
|
957
1016
|
return original;
|
|
958
1017
|
}
|
|
959
1018
|
|
|
1019
|
+
// packages/core/src/service-locator/resolve-service.mts
|
|
1020
|
+
async function resolveService(ctx, target, args = []) {
|
|
1021
|
+
const proxyServiceLocator = makeProxyServiceLocator(getServiceLocator(), ctx);
|
|
1022
|
+
let promises = [];
|
|
1023
|
+
const promiseCollector2 = (promise) => {
|
|
1024
|
+
promises.push(promise);
|
|
1025
|
+
};
|
|
1026
|
+
const originalPromiseCollector = setPromiseCollector(promiseCollector2);
|
|
1027
|
+
const tryLoad = () => {
|
|
1028
|
+
const original = provideServiceLocator(proxyServiceLocator);
|
|
1029
|
+
let result = new target(...args);
|
|
1030
|
+
provideServiceLocator(original);
|
|
1031
|
+
return result;
|
|
1032
|
+
};
|
|
1033
|
+
let instance = tryLoad();
|
|
1034
|
+
setPromiseCollector(originalPromiseCollector);
|
|
1035
|
+
if (promises.length > 0) {
|
|
1036
|
+
await Promise.all(promises);
|
|
1037
|
+
promises = [];
|
|
1038
|
+
instance = tryLoad();
|
|
1039
|
+
}
|
|
1040
|
+
if (promises.length > 0) {
|
|
1041
|
+
console.error(`[ServiceLocator] ${target.name} has problem with it's definition.
|
|
1042
|
+
|
|
1043
|
+
One or more of the dependencies are registered as a InjectableScope.Instance and are used with syncInject.
|
|
1044
|
+
|
|
1045
|
+
Please use inject instead of syncInject to load those dependencies.`);
|
|
1046
|
+
throw new import_common.NaviosException(
|
|
1047
|
+
`[ServiceLocator] Service ${target.name} cannot be instantiated.`
|
|
1048
|
+
);
|
|
1049
|
+
}
|
|
1050
|
+
return instance;
|
|
1051
|
+
}
|
|
1052
|
+
|
|
960
1053
|
// packages/core/src/service-locator/decorators/injectable.decorator.mts
|
|
961
1054
|
var InjectableType = /* @__PURE__ */ ((InjectableType2) => {
|
|
962
1055
|
InjectableType2["Class"] = "Class";
|
|
@@ -977,62 +1070,22 @@ function Injectable({
|
|
|
977
1070
|
}
|
|
978
1071
|
let injectableToken = token ?? InjectionToken.create(target);
|
|
979
1072
|
const locator = getServiceLocator();
|
|
980
|
-
if (!locator) {
|
|
981
|
-
throw new Error(
|
|
982
|
-
"[ServiceLocator] Service locator is not initialized. Please provide the service locator before using the @Injectable decorator."
|
|
983
|
-
);
|
|
984
|
-
}
|
|
985
1073
|
if (type === "Class" /* Class */) {
|
|
986
1074
|
locator.registerAbstractFactory(
|
|
987
1075
|
injectableToken,
|
|
988
|
-
async (ctx) =>
|
|
989
|
-
if (scope === "Instance" /* Instance */) {
|
|
990
|
-
ctx.setTtl(0);
|
|
991
|
-
}
|
|
992
|
-
const proxyServiceLocator = makeProxyServiceLocator(
|
|
993
|
-
getServiceLocator(),
|
|
994
|
-
ctx
|
|
995
|
-
);
|
|
996
|
-
const promises = [];
|
|
997
|
-
const promiseCollector2 = (promise) => {
|
|
998
|
-
promises.push(promise);
|
|
999
|
-
};
|
|
1000
|
-
const originalPromiseCollector = setPromiseCollector(promiseCollector2);
|
|
1001
|
-
const tryInit = () => {
|
|
1002
|
-
const original = provideServiceLocator(proxyServiceLocator);
|
|
1003
|
-
let result2 = new target();
|
|
1004
|
-
provideServiceLocator(original);
|
|
1005
|
-
return result2;
|
|
1006
|
-
};
|
|
1007
|
-
const result = tryInit();
|
|
1008
|
-
setPromiseCollector(originalPromiseCollector);
|
|
1009
|
-
if (promises.length > 0) {
|
|
1010
|
-
await Promise.all(promises);
|
|
1011
|
-
return tryInit();
|
|
1012
|
-
}
|
|
1013
|
-
return result;
|
|
1014
|
-
},
|
|
1076
|
+
async (ctx) => resolveService(ctx, target),
|
|
1015
1077
|
scope
|
|
1016
1078
|
);
|
|
1017
1079
|
} else if (type === "Factory" /* Factory */) {
|
|
1018
1080
|
locator.registerAbstractFactory(
|
|
1019
1081
|
injectableToken,
|
|
1020
1082
|
async (ctx, args) => {
|
|
1021
|
-
|
|
1022
|
-
ctx.setTtl(0);
|
|
1023
|
-
}
|
|
1024
|
-
const proxyServiceLocator = makeProxyServiceLocator(
|
|
1025
|
-
getServiceLocator(),
|
|
1026
|
-
ctx
|
|
1027
|
-
);
|
|
1028
|
-
const original = provideServiceLocator(proxyServiceLocator);
|
|
1029
|
-
const builder = new target();
|
|
1083
|
+
const builder = await resolveService(ctx, target);
|
|
1030
1084
|
if (typeof builder.create !== "function") {
|
|
1031
|
-
throw new
|
|
1085
|
+
throw new import_common2.NaviosException(
|
|
1032
1086
|
`[ServiceLocator] Factory ${target.name} does not implement the create method.`
|
|
1033
1087
|
);
|
|
1034
1088
|
}
|
|
1035
|
-
provideServiceLocator(original);
|
|
1036
1089
|
return builder.create(ctx, args);
|
|
1037
1090
|
},
|
|
1038
1091
|
scope
|
|
@@ -1095,14 +1148,6 @@ var EventEmitter = class {
|
|
|
1095
1148
|
|
|
1096
1149
|
// packages/core/src/service-locator/inject.mts
|
|
1097
1150
|
function inject(token, args) {
|
|
1098
|
-
if (token.schema) {
|
|
1099
|
-
const parsed = token.schema.safeParse(args);
|
|
1100
|
-
if (!parsed.success) {
|
|
1101
|
-
throw new Error(
|
|
1102
|
-
`[ServiceLocator] Invalid arguments for ${token.name.toString()}: ${parsed.error}`
|
|
1103
|
-
);
|
|
1104
|
-
}
|
|
1105
|
-
}
|
|
1106
1151
|
let realToken = token;
|
|
1107
1152
|
if (!(token instanceof InjectionToken)) {
|
|
1108
1153
|
realToken = getInjectableToken(token);
|
|
@@ -1677,7 +1722,7 @@ var PinoWrapper = class _PinoWrapper {
|
|
|
1677
1722
|
};
|
|
1678
1723
|
|
|
1679
1724
|
// packages/core/src/config/config.service.mts
|
|
1680
|
-
var
|
|
1725
|
+
var import_common3 = require("@navios/common");
|
|
1681
1726
|
var ConfigServiceInstance = class {
|
|
1682
1727
|
constructor(config = {}, logger) {
|
|
1683
1728
|
this.config = config;
|
|
@@ -1716,30 +1761,29 @@ var ConfigServiceInstance = class {
|
|
|
1716
1761
|
if (value === null) {
|
|
1717
1762
|
const message = errorMessage || `Configuration value for key "${String(key)}" is not defined`;
|
|
1718
1763
|
this.logger.error(message);
|
|
1719
|
-
throw new
|
|
1764
|
+
throw new import_common3.NaviosException(message);
|
|
1720
1765
|
}
|
|
1721
1766
|
return value;
|
|
1722
1767
|
}
|
|
1723
1768
|
};
|
|
1724
1769
|
|
|
1725
1770
|
// packages/core/src/config/config.provider.mts
|
|
1726
|
-
var ConfigProviderInjectionToken = "ConfigProvider";
|
|
1727
1771
|
var ConfigProviderOptions = import_zod3.z.object({
|
|
1728
1772
|
load: import_zod3.z.function()
|
|
1729
1773
|
});
|
|
1730
|
-
var ConfigProvider = InjectionToken.create(
|
|
1774
|
+
var ConfigProvider = InjectionToken.create(ConfigServiceInstance, ConfigProviderOptions);
|
|
1731
1775
|
var _ConfigProviderFactory_decorators, _init4;
|
|
1732
1776
|
_ConfigProviderFactory_decorators = [Injectable({
|
|
1733
1777
|
token: ConfigProvider,
|
|
1734
1778
|
type: "Factory" /* Factory */
|
|
1735
1779
|
})];
|
|
1736
1780
|
var ConfigProviderFactory = class {
|
|
1737
|
-
logger =
|
|
1781
|
+
logger = syncInject(Logger, {
|
|
1738
1782
|
context: "ConfigService"
|
|
1739
1783
|
});
|
|
1740
1784
|
async create(ctx, args) {
|
|
1741
1785
|
const { load } = args;
|
|
1742
|
-
const logger =
|
|
1786
|
+
const logger = this.logger;
|
|
1743
1787
|
try {
|
|
1744
1788
|
const config = await load();
|
|
1745
1789
|
return new ConfigServiceInstance(config, logger);
|
|
@@ -1752,21 +1796,8 @@ var ConfigProviderFactory = class {
|
|
|
1752
1796
|
_init4 = __decoratorStart(null);
|
|
1753
1797
|
ConfigProviderFactory = __decorateElement(_init4, 0, "ConfigProviderFactory", _ConfigProviderFactory_decorators, ConfigProviderFactory);
|
|
1754
1798
|
__runInitializers(_init4, 1, ConfigProviderFactory);
|
|
1755
|
-
function
|
|
1756
|
-
|
|
1757
|
-
_ConfigServiceImpl_decorators = [Injectable({
|
|
1758
|
-
type: "Factory" /* Factory */
|
|
1759
|
-
})];
|
|
1760
|
-
class ConfigServiceImpl {
|
|
1761
|
-
configService = inject(ConfigProvider, options);
|
|
1762
|
-
create() {
|
|
1763
|
-
return this.configService;
|
|
1764
|
-
}
|
|
1765
|
-
}
|
|
1766
|
-
_init9 = __decoratorStart(null);
|
|
1767
|
-
ConfigServiceImpl = __decorateElement(_init9, 0, "ConfigServiceImpl", _ConfigServiceImpl_decorators, ConfigServiceImpl);
|
|
1768
|
-
__runInitializers(_init9, 1, ConfigServiceImpl);
|
|
1769
|
-
return getInjectableToken(ConfigServiceImpl);
|
|
1799
|
+
function provideConfig(options) {
|
|
1800
|
+
return InjectionToken.bound(ConfigProvider, options);
|
|
1770
1801
|
}
|
|
1771
1802
|
|
|
1772
1803
|
// packages/core/src/metadata/endpoint.metadata.mts
|
|
@@ -2079,7 +2110,7 @@ var ConflictException = class extends HttpException {
|
|
|
2079
2110
|
};
|
|
2080
2111
|
|
|
2081
2112
|
// packages/core/src/services/controller-adapter.service.mts
|
|
2082
|
-
var
|
|
2113
|
+
var import_common4 = require("@navios/common");
|
|
2083
2114
|
|
|
2084
2115
|
// packages/core/src/tokens/application.token.mts
|
|
2085
2116
|
var ApplicationInjectionToken = "ApplicationInjectionToken";
|
|
@@ -2300,7 +2331,7 @@ var _ControllerAdapterService = class _ControllerAdapterService {
|
|
|
2300
2331
|
this.logger.error(
|
|
2301
2332
|
`Unknown endpoint type ${endpointMetadata.type} for ${controller.name}:${endpointMetadata.classMethod}`
|
|
2302
2333
|
);
|
|
2303
|
-
throw new
|
|
2334
|
+
throw new import_common4.NaviosException("Unknown endpoint type");
|
|
2304
2335
|
case "config" /* Config */:
|
|
2305
2336
|
return this.provideHandlerForConfig(
|
|
2306
2337
|
controller,
|
|
@@ -2309,7 +2340,7 @@ var _ControllerAdapterService = class _ControllerAdapterService {
|
|
|
2309
2340
|
);
|
|
2310
2341
|
case "handler" /* Handler */:
|
|
2311
2342
|
this.logger.error("Not implemented yet");
|
|
2312
|
-
throw new
|
|
2343
|
+
throw new import_common4.NaviosException("Not implemented yet");
|
|
2313
2344
|
}
|
|
2314
2345
|
}
|
|
2315
2346
|
provideHandlerForConfig(controller, executionContext, endpointMetadata) {
|
|
@@ -2639,9 +2670,9 @@ var NaviosFactory = class {
|
|
|
2639
2670
|
Application,
|
|
2640
2671
|
AttributeFactory,
|
|
2641
2672
|
BadRequestException,
|
|
2673
|
+
BoundInjectionToken,
|
|
2642
2674
|
ConfigProvider,
|
|
2643
2675
|
ConfigProviderFactory,
|
|
2644
|
-
ConfigProviderInjectionToken,
|
|
2645
2676
|
ConfigProviderOptions,
|
|
2646
2677
|
ConfigServiceInstance,
|
|
2647
2678
|
ConflictException,
|
|
@@ -2657,7 +2688,9 @@ var NaviosFactory = class {
|
|
|
2657
2688
|
ExecutionContext,
|
|
2658
2689
|
ExecutionContextInjectionToken,
|
|
2659
2690
|
ExecutionContextToken,
|
|
2691
|
+
FactoryInjectionToken,
|
|
2660
2692
|
FactoryNotFound,
|
|
2693
|
+
FactoryTokenNotResolved,
|
|
2661
2694
|
ForbiddenException,
|
|
2662
2695
|
GuardRunnerService,
|
|
2663
2696
|
Header,
|
|
@@ -2723,10 +2756,11 @@ var NaviosFactory = class {
|
|
|
2723
2756
|
isString,
|
|
2724
2757
|
isSymbol,
|
|
2725
2758
|
isUndefined,
|
|
2726
|
-
makeConfigToken,
|
|
2727
2759
|
normalizePath,
|
|
2728
2760
|
override,
|
|
2761
|
+
provideConfig,
|
|
2729
2762
|
provideServiceLocator,
|
|
2763
|
+
resolveService,
|
|
2730
2764
|
setPromiseCollector,
|
|
2731
2765
|
stripEndSlash,
|
|
2732
2766
|
syncInject,
|