@tstdl/base 0.89.3 → 0.89.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.
@@ -288,7 +288,15 @@ export class Injector {
288
288
  throw new ResolveError(`${provider.useClass.name} has constructor parameters but is not injectable.`, chain);
289
289
  }
290
290
  const parameters = (typeMetadata?.parameters ?? []).map((metadata) => this.resolveClassInjection(resolutionTag, context, provider.useClass, metadata, arg, chain));
291
- result = { value: new provider.useClass(...parameters) };
291
+ try {
292
+ result = { value: new provider.useClass(...parameters) };
293
+ }
294
+ catch (error) {
295
+ if (error instanceof ResolveError) {
296
+ throw error;
297
+ }
298
+ throw new ResolveError('Error in class constructor.', chain, error);
299
+ }
292
300
  }
293
301
  if (isValueProvider(provider)) {
294
302
  result = { value: provider.useValue };
@@ -13,6 +13,6 @@ export function configureMongoKeyValueStore(keyValueRepositoryConfig, register =
13
13
  Injector.register(DEFAULT_KEY_VALUE_REPOSITORY_CONFIG, { useValue: keyValueRepositoryConfig });
14
14
  if (register) {
15
15
  Injector.registerSingleton(KeyValueStoreProvider, { useToken: MongoKeyValueStoreProvider });
16
- Injector.registerSingleton(KeyValueStore, { useToken: MongoKeyValueStore, defaultArgument: '' });
16
+ Injector.registerSingleton(KeyValueStore, { useToken: MongoKeyValueStore });
17
17
  }
18
18
  }
@@ -7,15 +7,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- var __param = (this && this.__param) || function (paramIndex, decorator) {
11
- return function (target, key) { decorator(target, key, paramIndex); }
12
- };
13
10
  import { getNewId } from '../../database/index.js';
14
- import { InjectArg, Singleton } from '../../injector/index.js';
15
- import { KeyValueStore } from '../../key-value-store/index.js';
11
+ import { Singleton } from '../../injector/index.js';
12
+ import { KeyValueStore, MongoKeyValueStoreProvider } from '../../key-value-store/index.js';
16
13
  import { currentTimestamp } from '../../utils/date-time.js';
17
14
  import { objectEntries } from '../../utils/object/object.js';
18
- import { assertStringPass, isUndefined } from '../../utils/type-guards.js';
15
+ import { assertString, isUndefined } from '../../utils/type-guards.js';
19
16
  import { MongoKeyValueRepository } from './mongo-key-value.repository.js';
20
17
  let MongoKeyValueStore = class MongoKeyValueStore extends KeyValueStore {
21
18
  keyValueRepository;
@@ -61,8 +58,15 @@ let MongoKeyValueStore = class MongoKeyValueStore extends KeyValueStore {
61
58
  }
62
59
  };
63
60
  MongoKeyValueStore = __decorate([
64
- Singleton(),
65
- __param(1, InjectArg((argument) => assertStringPass(argument, 'key-value store argument missing (module)'))),
61
+ Singleton({
62
+ provider: {
63
+ useFactory: (argument, context) => {
64
+ const provider = context.resolve(MongoKeyValueStoreProvider);
65
+ assertString(argument, 'Missing or invalid argument (KV-Store module)');
66
+ return provider.get(argument);
67
+ }
68
+ }
69
+ }),
66
70
  __metadata("design:paramtypes", [MongoKeyValueRepository, String])
67
71
  ], MongoKeyValueStore);
68
72
  export { MongoKeyValueStore };
@@ -10,7 +10,7 @@ import { inject, injectArgument } from '../../injector/inject.js';
10
10
  import { Injector } from '../../injector/injector.js';
11
11
  import { LockProvider } from '../../lock/index.js';
12
12
  import { Logger } from '../../logger/index.js';
13
- import { assertDefinedPass } from '../../utils/type-guards.js';
13
+ import { assertDefinedPass, isDefined } from '../../utils/type-guards.js';
14
14
  import { MongoLock } from './lock.js';
15
15
  import { mongoLockModuleConfig } from './module.js';
16
16
  import { MongoLockRepository } from './mongo-lock-repository.js';
@@ -18,7 +18,7 @@ let MongoLockProvider = MongoLockProvider_1 = class MongoLockProvider extends Lo
18
18
  #injector = inject(Injector);
19
19
  #lockRepository = inject(MongoLockRepository, assertDefinedPass(mongoLockModuleConfig.lockEntityRepositoryConfig, 'mongo lock module not configured'));
20
20
  #logger = inject(Logger, 'MongoLock');
21
- #prefix = injectArgument(this);
21
+ #prefix = injectArgument(this, { optional: true });
22
22
  prefix(prefix) {
23
23
  return this.#injector.resolve(MongoLockProvider_1, this.getResourceString(prefix));
24
24
  }
@@ -26,7 +26,7 @@ let MongoLockProvider = MongoLockProvider_1 = class MongoLockProvider extends Lo
26
26
  return new MongoLock(this.#lockRepository, this.getResourceString(resource), this.#logger);
27
27
  }
28
28
  getResourceString(resource) {
29
- const prefixDivider = (this.#prefix.length > 0) ? ':' : '';
29
+ const prefixDivider = (isDefined(this.#prefix) && (this.#prefix.length > 0)) ? ':' : '';
30
30
  return `${this.#prefix}${prefixDivider}${resource}`;
31
31
  }
32
32
  };
@@ -55,7 +55,9 @@ let WebServerModule = class WebServerModule extends ModuleBase {
55
55
  }
56
56
  };
57
57
  WebServerModule = __decorate([
58
- Singleton({ defaultArgumentProvider: () => webServerModuleConfiguration }),
58
+ Singleton({
59
+ defaultArgumentProvider: () => webServerModuleConfiguration
60
+ }),
59
61
  __metadata("design:paramtypes", [])
60
62
  ], WebServerModule);
61
63
  export { WebServerModule };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tstdl/base",
3
- "version": "0.89.3",
3
+ "version": "0.89.5",
4
4
  "author": "Patrick Hein",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -121,7 +121,7 @@
121
121
  "@typescript-eslint/parser": "6.7",
122
122
  "concurrently": "8.2",
123
123
  "esbuild": "0.19",
124
- "eslint": "8.49",
124
+ "eslint": "8.50",
125
125
  "eslint-import-resolver-typescript": "3.6",
126
126
  "eslint-plugin-import": "2.28",
127
127
  "tsc-alias": "1.8",