ts-ioc-container 27.0.0 → 27.1.0

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/README.md CHANGED
@@ -129,33 +129,25 @@ describe('Basic usage', function () {
129
129
  expect(app.scope).toBe(root);
130
130
  });
131
131
 
132
- it('should raise an error when key is busy', () => {
133
- expect(() => {
134
- new Container(new ReflectionInjector())
135
- .register('ILogger', Provider.fromClass(Logger))
136
- .register('ILogger', Provider.fromClass(Logger));
137
- }).toThrowError(RegistrationConflictError);
138
- });
139
-
140
132
  it('should not raise an error when key is busy', () => {
141
133
  expect(() => {
142
134
  new Container(new ReflectionInjector())
143
135
  .register('ILogger', Provider.fromClass(Logger))
144
- .register('ILogger', Provider.fromClass(Logger), { override: true });
136
+ .register('ILogger', Provider.fromClass(Logger));
145
137
  }).not.toThrowError(RegistrationConflictError);
146
138
  });
147
139
 
148
140
  it('registration -> should raise an error when key is busy', () => {
149
141
  expect(() => {
150
- new Container(new ReflectionInjector()).use(Registration.fromClass(Logger)).use(Registration.fromClass(Logger));
142
+ new Container(new ReflectionInjector())
143
+ .use(Registration.fromClass(Logger))
144
+ .use(Registration.fromClass(Logger).throwErrorOnConfict());
151
145
  }).toThrowError(RegistrationConflictError);
152
146
  });
153
147
 
154
148
  it('registration -> should not raise an error when key is busy', () => {
155
149
  expect(() => {
156
- new Container(new ReflectionInjector())
157
- .use(Registration.fromClass(Logger))
158
- .use(Registration.fromClass(Logger).options({ override: true }));
150
+ new Container(new ReflectionInjector()).use(Registration.fromClass(Logger)).use(Registration.fromClass(Logger));
159
151
  }).not.toThrowError(RegistrationConflictError);
160
152
  });
161
153
 
@@ -167,27 +159,15 @@ describe('Basic usage', function () {
167
159
  class Logger2 {}
168
160
 
169
161
  expect(() => {
170
- new Container(new ReflectionInjector()).use(Registration.fromClass(Logger1)).use(Registration.fromClass(Logger2));
162
+ new Container(new ReflectionInjector())
163
+ .use(Registration.fromClass(Logger1))
164
+ .use(Registration.fromClass(Logger2).throwErrorOnConfict());
171
165
  }).toThrowError(RegistrationConflictError);
172
166
  });
173
167
 
174
- it('@key -> should not raise an error when key is busy', () => {
175
- @key('Logger')
176
- class Logger1 {}
177
-
178
- @key('Logger', { override: true })
179
- class Logger2 {}
180
-
181
- expect(() => {
182
- new Container(new ReflectionInjector()).use(Registration.fromClass(Logger1)).use(Registration.fromClass(Logger2));
183
- }).not.toThrowError(RegistrationConflictError);
184
- });
185
-
186
168
  it('registration -> should not raise an error when key is busy', () => {
187
169
  expect(() => {
188
- new Container(new ReflectionInjector())
189
- .use(Registration.fromClass(Logger))
190
- .use(Registration.fromClass(Logger).options({ override: true }));
170
+ new Container(new ReflectionInjector()).use(Registration.fromClass(Logger)).use(Registration.fromClass(Logger));
191
171
  }).not.toThrowError(RegistrationConflictError);
192
172
  });
193
173
  });
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AutoMockedContainer = void 0;
4
4
  const index_1 = require("../index");
5
5
  class AutoMockedContainer {
6
- findProvider(key) {
7
- return undefined;
6
+ hasDependency(key) {
7
+ return false;
8
8
  }
9
9
  getTokensByProvider() {
10
10
  return [];
@@ -4,7 +4,6 @@ exports.Container = void 0;
4
4
  const IContainer_1 = require("./IContainer");
5
5
  const EmptyContainer_1 = require("./EmptyContainer");
6
6
  const ContainerDisposedError_1 = require("../errors/ContainerDisposedError");
7
- const OverrideGuard_1 = require("./OverrideGuard");
8
7
  class Container {
9
8
  constructor(injector, options = {}) {
10
9
  var _a, _b;
@@ -13,15 +12,11 @@ class Container {
13
12
  this.isDisposed = false;
14
13
  this.scopes = new Set();
15
14
  this.instances = new Set();
16
- this.overrideGuard = new OverrideGuard_1.OverrideGuard();
17
15
  this.parent = (_a = options.parent) !== null && _a !== void 0 ? _a : new EmptyContainer_1.EmptyContainer();
18
16
  this.tags = (_b = options.tags) !== null && _b !== void 0 ? _b : [];
19
17
  }
20
- register(key, provider, { override } = {}) {
18
+ register(key, provider) {
21
19
  this.validateContainer();
22
- if (!override) {
23
- this.overrideGuard.applyTo(this, key);
24
- }
25
20
  this.providers.set(key, provider);
26
21
  return this;
27
22
  }
@@ -76,9 +71,9 @@ class Container {
76
71
  module.applyTo(this);
77
72
  return this;
78
73
  }
79
- findProvider(key) {
74
+ hasDependency(key) {
80
75
  var _a;
81
- return (_a = this.providers.get(key)) !== null && _a !== void 0 ? _a : this.parent.findProvider(key);
76
+ return (_a = this.providers.has(key)) !== null && _a !== void 0 ? _a : this.parent.hasDependency(key);
82
77
  }
83
78
  /**
84
79
  * @private
@@ -4,8 +4,8 @@ exports.EmptyContainer = void 0;
4
4
  const MethodNotImplementedError_1 = require("../errors/MethodNotImplementedError");
5
5
  const DependencyNotFoundError_1 = require("../errors/DependencyNotFoundError");
6
6
  class EmptyContainer {
7
- findProvider(key) {
8
- return undefined;
7
+ hasDependency(key) {
8
+ return false;
9
9
  }
10
10
  getTokensByProvider() {
11
11
  return [];
package/cjm/index.js CHANGED
@@ -32,7 +32,7 @@ Object.defineProperty(exports, "tags", { enumerable: true, get: function () { re
32
32
  Object.defineProperty(exports, "TaggedProvider", { enumerable: true, get: function () { return TaggedProvider_1.TaggedProvider; } });
33
33
  var AutoMockedContainer_1 = require("./container/AutoMockedContainer");
34
34
  Object.defineProperty(exports, "AutoMockedContainer", { enumerable: true, get: function () { return AutoMockedContainer_1.AutoMockedContainer; } });
35
- var Registration_1 = require("./provider/Registration");
35
+ var Registration_1 = require("./registration/Registration");
36
36
  Object.defineProperty(exports, "key", { enumerable: true, get: function () { return Registration_1.key; } });
37
37
  Object.defineProperty(exports, "Registration", { enumerable: true, get: function () { return Registration_1.Registration; } });
38
38
  var ReflectionInjector_1 = require("./injector/ReflectionInjector");
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Registration = exports.key = void 0;
4
+ const metadata_1 = require("../metadata");
5
+ const Provider_1 = require("../provider/Provider");
6
+ const ThrowErrorIfNoDependency_1 = require("./ThrowErrorIfNoDependency");
7
+ const DEPENDENCY_KEY = 'DependencyKey';
8
+ const key = (value) => (0, metadata_1.setMetadata)(DEPENDENCY_KEY, value);
9
+ exports.key = key;
10
+ class Registration {
11
+ constructor(key, provider) {
12
+ this.key = key;
13
+ this.provider = provider;
14
+ }
15
+ static fromClass(Target) {
16
+ const dependencyKey = (0, metadata_1.getMetadata)(Target, DEPENDENCY_KEY);
17
+ return new Registration(dependencyKey !== null && dependencyKey !== void 0 ? dependencyKey : Target.name, Provider_1.Provider.fromClass(Target));
18
+ }
19
+ getKey() {
20
+ return this.key;
21
+ }
22
+ setKey(key) {
23
+ this.key = key;
24
+ return this;
25
+ }
26
+ throwErrorOnConfict() {
27
+ return new ThrowErrorIfNoDependency_1.ThrowErrorIfNoDependency(this);
28
+ }
29
+ pipe(...mappers) {
30
+ this.provider = this.provider.pipe(...mappers);
31
+ return this;
32
+ }
33
+ applyTo(container) {
34
+ container.register(this.key, this.provider);
35
+ }
36
+ }
37
+ exports.Registration = Registration;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ThrowErrorIfNoDependency = void 0;
4
+ const RegistrationConflictError_1 = require("../errors/RegistrationConflictError");
5
+ class ThrowErrorIfNoDependency {
6
+ constructor(module) {
7
+ this.module = module;
8
+ }
9
+ getKey() {
10
+ return this.module.getKey();
11
+ }
12
+ applyTo(container) {
13
+ RegistrationConflictError_1.RegistrationConflictError.assert(container.hasDependency(this.module.getKey()) === undefined, `Provider for key ${this.module.getKey().toString()} is already registered`);
14
+ this.module.applyTo(container);
15
+ }
16
+ }
17
+ exports.ThrowErrorIfNoDependency = ThrowErrorIfNoDependency;
@@ -1,7 +1,7 @@
1
1
  import { MethodNotImplementedError } from '../index';
2
2
  export class AutoMockedContainer {
3
- findProvider(key) {
4
- return undefined;
3
+ hasDependency(key) {
4
+ return false;
5
5
  }
6
6
  getTokensByProvider() {
7
7
  return [];
@@ -1,7 +1,6 @@
1
- import { isConstructor, } from './IContainer';
1
+ import { isConstructor } from './IContainer';
2
2
  import { EmptyContainer } from './EmptyContainer';
3
3
  import { ContainerDisposedError } from '../errors/ContainerDisposedError';
4
- import { OverrideGuard } from './OverrideGuard';
5
4
  export class Container {
6
5
  constructor(injector, options = {}) {
7
6
  var _a, _b;
@@ -10,15 +9,11 @@ export class Container {
10
9
  this.isDisposed = false;
11
10
  this.scopes = new Set();
12
11
  this.instances = new Set();
13
- this.overrideGuard = new OverrideGuard();
14
12
  this.parent = (_a = options.parent) !== null && _a !== void 0 ? _a : new EmptyContainer();
15
13
  this.tags = (_b = options.tags) !== null && _b !== void 0 ? _b : [];
16
14
  }
17
- register(key, provider, { override } = {}) {
15
+ register(key, provider) {
18
16
  this.validateContainer();
19
- if (!override) {
20
- this.overrideGuard.applyTo(this, key);
21
- }
22
17
  this.providers.set(key, provider);
23
18
  return this;
24
19
  }
@@ -73,9 +68,9 @@ export class Container {
73
68
  module.applyTo(this);
74
69
  return this;
75
70
  }
76
- findProvider(key) {
71
+ hasDependency(key) {
77
72
  var _a;
78
- return (_a = this.providers.get(key)) !== null && _a !== void 0 ? _a : this.parent.findProvider(key);
73
+ return (_a = this.providers.has(key)) !== null && _a !== void 0 ? _a : this.parent.hasDependency(key);
79
74
  }
80
75
  /**
81
76
  * @private
@@ -1,8 +1,8 @@
1
1
  import { MethodNotImplementedError } from '../errors/MethodNotImplementedError';
2
2
  import { DependencyNotFoundError } from '../errors/DependencyNotFoundError';
3
3
  export class EmptyContainer {
4
- findProvider(key) {
5
- return undefined;
4
+ hasDependency(key) {
5
+ return false;
6
6
  }
7
7
  getTokensByProvider() {
8
8
  return [];
package/esm/index.js CHANGED
@@ -11,7 +11,7 @@ export { argsFn, args, ArgsProvider } from './provider/ArgsProvider';
11
11
  export { singleton, SingletonProvider } from './provider/SingletonProvider';
12
12
  export { tags, TaggedProvider } from './provider/TaggedProvider';
13
13
  export { AutoMockedContainer } from './container/AutoMockedContainer';
14
- export { key, Registration } from './provider/Registration';
14
+ export { key, Registration } from './registration/Registration';
15
15
  export { ReflectionInjector, inject } from './injector/ReflectionInjector';
16
16
  export { SimpleInjector } from './injector/SimpleInjector';
17
17
  export { ProxyInjector } from './injector/ProxyInjector';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,32 @@
1
+ import { getMetadata, setMetadata } from '../metadata';
2
+ import { Provider } from '../provider/Provider';
3
+ import { ThrowErrorIfNoDependency } from './ThrowErrorIfNoDependency';
4
+ const DEPENDENCY_KEY = 'DependencyKey';
5
+ export const key = (value) => setMetadata(DEPENDENCY_KEY, value);
6
+ export class Registration {
7
+ constructor(key, provider) {
8
+ this.key = key;
9
+ this.provider = provider;
10
+ }
11
+ static fromClass(Target) {
12
+ const dependencyKey = getMetadata(Target, DEPENDENCY_KEY);
13
+ return new Registration(dependencyKey !== null && dependencyKey !== void 0 ? dependencyKey : Target.name, Provider.fromClass(Target));
14
+ }
15
+ getKey() {
16
+ return this.key;
17
+ }
18
+ setKey(key) {
19
+ this.key = key;
20
+ return this;
21
+ }
22
+ throwErrorOnConfict() {
23
+ return new ThrowErrorIfNoDependency(this);
24
+ }
25
+ pipe(...mappers) {
26
+ this.provider = this.provider.pipe(...mappers);
27
+ return this;
28
+ }
29
+ applyTo(container) {
30
+ container.register(this.key, this.provider);
31
+ }
32
+ }
@@ -0,0 +1,13 @@
1
+ import { RegistrationConflictError } from '../errors/RegistrationConflictError';
2
+ export class ThrowErrorIfNoDependency {
3
+ constructor(module) {
4
+ this.module = module;
5
+ }
6
+ getKey() {
7
+ return this.module.getKey();
8
+ }
9
+ applyTo(container) {
10
+ RegistrationConflictError.assert(container.hasDependency(this.module.getKey()) === undefined, `Provider for key ${this.module.getKey().toString()} is already registered`);
11
+ this.module.applyTo(container);
12
+ }
13
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-ioc-container",
3
- "version": "27.0.0",
3
+ "version": "27.1.0",
4
4
  "description": "Typescript IoC container",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -60,5 +60,5 @@
60
60
  "ts-node": "^10.9.1",
61
61
  "typescript": "4.4.3"
62
62
  },
63
- "gitHead": "e52571491b720f7f869cbc638273b0b64ee7fa87"
63
+ "gitHead": "751f480d689211f2b52913a5fad224aa054b39ff"
64
64
  }
@@ -1,6 +1,6 @@
1
1
  import { IContainer, InjectionToken, IProvider, DependencyKey } from '../index';
2
2
  export declare abstract class AutoMockedContainer implements IContainer {
3
- findProvider(key: string): IProvider<unknown> | undefined;
3
+ hasDependency(key: string): boolean;
4
4
  getTokensByProvider(): DependencyKey[];
5
5
  createScope(): IContainer;
6
6
  abstract resolve<T>(key: InjectionToken<T>): T;
@@ -1,4 +1,4 @@
1
- import { DependencyKey, IContainer, IContainerModule, InjectionToken, IRegistrationOptions, Tag, Tagged } from './IContainer';
1
+ import { DependencyKey, IContainer, IContainerModule, InjectionToken, Tag, Tagged } from './IContainer';
2
2
  import { IInjector } from '../injector/IInjector';
3
3
  import { IProvider } from '../provider/IProvider';
4
4
  export declare class Container implements IContainer, Tagged {
@@ -9,12 +9,11 @@ export declare class Container implements IContainer, Tagged {
9
9
  private parent;
10
10
  private scopes;
11
11
  private instances;
12
- private overrideGuard;
13
12
  constructor(injector: IInjector, options?: {
14
13
  parent?: IContainer;
15
14
  tags?: Tag[];
16
15
  });
17
- register(key: DependencyKey, provider: IProvider, { override }?: IRegistrationOptions): this;
16
+ register(key: DependencyKey, provider: IProvider): this;
18
17
  resolve<T>(token: InjectionToken<T>, ...args: unknown[]): T;
19
18
  getTokensByProvider(predicate: (provider: IProvider) => boolean): DependencyKey[];
20
19
  createScope(...tags: Tag[]): Container;
@@ -22,7 +21,7 @@ export declare class Container implements IContainer, Tagged {
22
21
  getInstances(): unknown[];
23
22
  hasTag(tag: Tag): boolean;
24
23
  use(module: IContainerModule): this;
25
- findProvider(key: string): IProvider | undefined;
24
+ hasDependency(key: DependencyKey): boolean;
26
25
  /**
27
26
  * @private
28
27
  */
@@ -1,7 +1,7 @@
1
1
  import { DependencyKey, IContainer, InjectionToken } from './IContainer';
2
2
  import { IProvider } from '../provider/IProvider';
3
3
  export declare class EmptyContainer implements IContainer {
4
- findProvider(key: string): IProvider<unknown> | undefined;
4
+ hasDependency(key: string): boolean;
5
5
  getTokensByProvider(): DependencyKey[];
6
6
  hasTag(): boolean;
7
7
  createScope(): IContainer;
@@ -19,7 +19,7 @@ export interface IRegistrationOptions {
19
19
  }
20
20
  export interface IContainer extends Resolvable {
21
21
  createScope(...tags: Tag[]): IContainer;
22
- register(key: DependencyKey, value: IProvider, options?: IRegistrationOptions): this;
22
+ register(key: DependencyKey, value: IProvider): this;
23
23
  removeScope(child: IContainer): void;
24
24
  getInstances(): unknown[];
25
25
  dispose(): void;
@@ -27,5 +27,5 @@ export interface IContainer extends Resolvable {
27
27
  hasTag(tag: Tag): boolean;
28
28
  getAllProviders(): Map<DependencyKey, IProvider>;
29
29
  getTokensByProvider(predicate: (provider: IProvider) => boolean): DependencyKey[];
30
- findProvider(key: DependencyKey): IProvider | undefined;
30
+ hasDependency(key: DependencyKey): boolean;
31
31
  }
@@ -13,7 +13,7 @@ export { ArgsFn, argsFn, args, ArgsProvider } from './provider/ArgsProvider';
13
13
  export { singleton, SingletonProvider } from './provider/SingletonProvider';
14
14
  export { tags, TaggedProvider } from './provider/TaggedProvider';
15
15
  export { AutoMockedContainer } from './container/AutoMockedContainer';
16
- export { key, Registration } from './provider/Registration';
16
+ export { key, Registration } from './registration/Registration';
17
17
  export { ReflectionInjector, inject } from './injector/ReflectionInjector';
18
18
  export { SimpleInjector } from './injector/SimpleInjector';
19
19
  export { ProxyInjector } from './injector/ProxyInjector';
@@ -0,0 +1,4 @@
1
+ import { DependencyKey, IContainerModule } from '../container/IContainer';
2
+ export interface IRegistration extends IContainerModule {
3
+ getKey(): DependencyKey;
4
+ }
@@ -0,0 +1,17 @@
1
+ import { DependencyKey, IContainer } from '../container/IContainer';
2
+ import { constructor, MapFn } from '../utils';
3
+ import { IProvider } from '../provider/IProvider';
4
+ import { ThrowErrorIfNoDependency } from './ThrowErrorIfNoDependency';
5
+ import { IRegistration } from './IRegistration';
6
+ export declare const key: (value: DependencyKey) => ClassDecorator;
7
+ export declare class Registration implements IRegistration {
8
+ private key;
9
+ private provider;
10
+ static fromClass(Target: constructor<unknown>): Registration;
11
+ constructor(key: DependencyKey, provider: IProvider);
12
+ getKey(): DependencyKey;
13
+ setKey(key: DependencyKey): this;
14
+ throwErrorOnConfict(): ThrowErrorIfNoDependency;
15
+ pipe(...mappers: MapFn<IProvider>[]): this;
16
+ applyTo(container: IContainer): void;
17
+ }
@@ -0,0 +1,8 @@
1
+ import { DependencyKey, IContainer } from '../container/IContainer';
2
+ import { IRegistration } from './IRegistration';
3
+ export declare class ThrowErrorIfNoDependency implements IRegistration {
4
+ private module;
5
+ constructor(module: IRegistration);
6
+ getKey(): DependencyKey;
7
+ applyTo(container: IContainer): void;
8
+ }
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OverrideGuard = void 0;
4
- const RegistrationConflictError_1 = require("../errors/RegistrationConflictError");
5
- class OverrideGuard {
6
- applyTo(container, key) {
7
- RegistrationConflictError_1.RegistrationConflictError.assert(container.findProvider(key) === undefined, `Provider for key ${key.toString()} is already registered`);
8
- }
9
- }
10
- exports.OverrideGuard = OverrideGuard;
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Registration = exports.key = void 0;
4
- const metadata_1 = require("../metadata");
5
- const Provider_1 = require("./Provider");
6
- const DEPENDENCY_KEY = 'DependencyKey';
7
- const key = (value, options) => {
8
- const metadata = { key: value, options };
9
- return (0, metadata_1.setMetadata)(DEPENDENCY_KEY, metadata);
10
- };
11
- exports.key = key;
12
- class Registration {
13
- constructor(key, provider, registrationOptions = {}) {
14
- this.key = key;
15
- this.provider = provider;
16
- this.registrationOptions = registrationOptions;
17
- }
18
- static fromClass(Target) {
19
- var _a;
20
- const metadata = (0, metadata_1.getMetadata)(Target, DEPENDENCY_KEY);
21
- return new Registration((_a = metadata === null || metadata === void 0 ? void 0 : metadata.key) !== null && _a !== void 0 ? _a : Target.name, Provider_1.Provider.fromClass(Target), metadata === null || metadata === void 0 ? void 0 : metadata.options);
22
- }
23
- options(value) {
24
- this.registrationOptions = value;
25
- return this;
26
- }
27
- pipe(...mappers) {
28
- this.provider = this.provider.pipe(...mappers);
29
- return this;
30
- }
31
- applyTo(container) {
32
- container.register(this.key, this.provider, this.registrationOptions);
33
- }
34
- }
35
- exports.Registration = Registration;
@@ -1,6 +0,0 @@
1
- import { RegistrationConflictError } from '../errors/RegistrationConflictError';
2
- export class OverrideGuard {
3
- applyTo(container, key) {
4
- RegistrationConflictError.assert(container.findProvider(key) === undefined, `Provider for key ${key.toString()} is already registered`);
5
- }
6
- }
@@ -1,30 +0,0 @@
1
- import { getMetadata, setMetadata } from '../metadata';
2
- import { Provider } from './Provider';
3
- const DEPENDENCY_KEY = 'DependencyKey';
4
- export const key = (value, options) => {
5
- const metadata = { key: value, options };
6
- return setMetadata(DEPENDENCY_KEY, metadata);
7
- };
8
- export class Registration {
9
- constructor(key, provider, registrationOptions = {}) {
10
- this.key = key;
11
- this.provider = provider;
12
- this.registrationOptions = registrationOptions;
13
- }
14
- static fromClass(Target) {
15
- var _a;
16
- const metadata = getMetadata(Target, DEPENDENCY_KEY);
17
- return new Registration((_a = metadata === null || metadata === void 0 ? void 0 : metadata.key) !== null && _a !== void 0 ? _a : Target.name, Provider.fromClass(Target), metadata === null || metadata === void 0 ? void 0 : metadata.options);
18
- }
19
- options(value) {
20
- this.registrationOptions = value;
21
- return this;
22
- }
23
- pipe(...mappers) {
24
- this.provider = this.provider.pipe(...mappers);
25
- return this;
26
- }
27
- applyTo(container) {
28
- container.register(this.key, this.provider, this.registrationOptions);
29
- }
30
- }
@@ -1,4 +0,0 @@
1
- import { DependencyKey, IContainer, IContainerModule } from './IContainer';
2
- export declare class OverrideGuard implements IContainerModule {
3
- applyTo(container: IContainer, key: DependencyKey): void;
4
- }
@@ -1,14 +0,0 @@
1
- import { DependencyKey, IContainer, IContainerModule, IRegistrationOptions } from '../container/IContainer';
2
- import { constructor, MapFn } from '../utils';
3
- import { IProvider } from './IProvider';
4
- export declare const key: (value: DependencyKey, options?: IRegistrationOptions | undefined) => ClassDecorator;
5
- export declare class Registration implements IContainerModule {
6
- private key;
7
- private provider;
8
- private registrationOptions;
9
- static fromClass(Target: constructor<unknown>): Registration;
10
- constructor(key: DependencyKey, provider: IProvider, registrationOptions?: IRegistrationOptions);
11
- options(value: IRegistrationOptions): this;
12
- pipe(...mappers: MapFn<IProvider>[]): this;
13
- applyTo(container: IContainer): void;
14
- }