proxydi 0.1.1 → 0.1.3
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/CHANGELOG.md +7 -1
- package/README.md +1 -0
- package/dist/ProxyDiContainer.d.ts +2 -2
- package/dist/index.cjs +3 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -1
- package/dist/index.umd.js +3 -0
- package/dist/middleware/middleware.api.d.ts +6 -6
- package/dist/types.d.ts +3 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,7 +5,13 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [[0.1.
|
|
8
|
+
## [[0.1.3](https://www.npmjs.com/package/proxydi/v/0.1.3)] - 2025-03-26
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- ON_CONTAINERIZED symbol to inform dependency was registered in container [#19](https://github.com/proxy-di/proxydi/pull/19)
|
|
13
|
+
|
|
14
|
+
## [[0.1.2](https://www.npmjs.com/package/proxydi/v/0.1.2)] - 2025-03-25
|
|
9
15
|
|
|
10
16
|
### Fixed
|
|
11
17
|
|
package/README.md
CHANGED
|
@@ -19,6 +19,7 @@ Experimental features:
|
|
|
19
19
|
- Construtor injections (see unit tests for examples)
|
|
20
20
|
- Middleware (see unit tests for examples)
|
|
21
21
|
- Matches dependencies by unique identifiers or automatically using class names and property names
|
|
22
|
+
- [ON_CONTAINERIZED]() method
|
|
22
23
|
|
|
23
24
|
## Quick start
|
|
24
25
|
|
|
@@ -37,8 +37,8 @@ export declare class ProxyDiContainer implements IProxyDiContainer {
|
|
|
37
37
|
* @param parent Optional parent container.
|
|
38
38
|
*/
|
|
39
39
|
constructor(settings?: ContainerSettings, parent?: ProxyDiContainer);
|
|
40
|
-
registerMiddleware(middleware: MiddlewareRegistrator | MiddlewareRemover | MiddlewareResolver): void;
|
|
41
|
-
removeMiddleware(middleware: MiddlewareRegistrator | MiddlewareRemover | MiddlewareResolver): void;
|
|
40
|
+
registerMiddleware(middleware: MiddlewareRegistrator<any> | MiddlewareRemover<any> | MiddlewareResolver<any>): void;
|
|
41
|
+
removeMiddleware(middleware: MiddlewareRegistrator<any> | MiddlewareRemover<any> | MiddlewareResolver<any>): void;
|
|
42
42
|
/**
|
|
43
43
|
* Registers a dependency in the container. Could register eacher class or instance.
|
|
44
44
|
* In case of class, it will be instantiated without any parameters.
|
package/dist/index.cjs
CHANGED
|
@@ -48,6 +48,7 @@ const DEPENDENCY_ID = Symbol('DependencyId');
|
|
|
48
48
|
* The property stores a reference to the ProxyDiContainer in which the dependency was registered.
|
|
49
49
|
*/
|
|
50
50
|
const PROXYDI_CONTAINER = Symbol('proxyDiContainer');
|
|
51
|
+
const ON_CONTAINERIZED = Symbol('onContainerized');
|
|
51
52
|
const IS_INJECTION_PROXY = Symbol('isInjectionProxy');
|
|
52
53
|
const INJECTION_OWNER = Symbol('injectionOwner');
|
|
53
54
|
const IS_INSTANCE_PROXY = Symbol('isInstanceProxy');
|
|
@@ -347,6 +348,7 @@ class ProxyDiContainer {
|
|
|
347
348
|
if (isObject) {
|
|
348
349
|
instance[PROXYDI_CONTAINER] = this;
|
|
349
350
|
instance[DEPENDENCY_ID] = id;
|
|
351
|
+
instance[ON_CONTAINERIZED] && instance[ON_CONTAINERIZED](this);
|
|
350
352
|
}
|
|
351
353
|
this.injectDependenciesTo(instance);
|
|
352
354
|
this.dependencies[id] = instance;
|
|
@@ -588,6 +590,7 @@ function recursiveResolveAll(container, dependencyId) {
|
|
|
588
590
|
}
|
|
589
591
|
|
|
590
592
|
exports.DEPENDENCY_ID = DEPENDENCY_ID;
|
|
593
|
+
exports.ON_CONTAINERIZED = ON_CONTAINERIZED;
|
|
591
594
|
exports.PROXYDI_CONTAINER = PROXYDI_CONTAINER;
|
|
592
595
|
exports.ProxyDiContainer = ProxyDiContainer;
|
|
593
596
|
exports.inject = inject;
|
package/dist/index.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ export { ProxyDiContainer } from './ProxyDiContainer';
|
|
|
3
3
|
export { injectable } from './injectable.decorator';
|
|
4
4
|
export { middleware } from './middleware/middleware.decorator';
|
|
5
5
|
export { MiddlewareRegistrator, MiddlewareRemover, MiddlewareResolver, MiddlewareContext, } from './middleware/middleware.api';
|
|
6
|
-
export { Injection, DependencyId, DependencyClass, ContainerSettings, PROXYDI_CONTAINER, DEPENDENCY_ID, } from './types';
|
|
6
|
+
export { Injection, DependencyId, DependencyClass, ContainerSettings, OnContainerizedMethod, PROXYDI_CONTAINER, DEPENDENCY_ID, ON_CONTAINERIZED, } from './types';
|
|
7
7
|
export { resolveAll } from './resolveAll';
|
package/dist/index.js
CHANGED
|
@@ -46,6 +46,7 @@ const DEPENDENCY_ID = Symbol('DependencyId');
|
|
|
46
46
|
* The property stores a reference to the ProxyDiContainer in which the dependency was registered.
|
|
47
47
|
*/
|
|
48
48
|
const PROXYDI_CONTAINER = Symbol('proxyDiContainer');
|
|
49
|
+
const ON_CONTAINERIZED = Symbol('onContainerized');
|
|
49
50
|
const IS_INJECTION_PROXY = Symbol('isInjectionProxy');
|
|
50
51
|
const INJECTION_OWNER = Symbol('injectionOwner');
|
|
51
52
|
const IS_INSTANCE_PROXY = Symbol('isInstanceProxy');
|
|
@@ -345,6 +346,7 @@ class ProxyDiContainer {
|
|
|
345
346
|
if (isObject) {
|
|
346
347
|
instance[PROXYDI_CONTAINER] = this;
|
|
347
348
|
instance[DEPENDENCY_ID] = id;
|
|
349
|
+
instance[ON_CONTAINERIZED] && instance[ON_CONTAINERIZED](this);
|
|
348
350
|
}
|
|
349
351
|
this.injectDependenciesTo(instance);
|
|
350
352
|
this.dependencies[id] = instance;
|
|
@@ -585,4 +587,4 @@ function recursiveResolveAll(container, dependencyId) {
|
|
|
585
587
|
return all;
|
|
586
588
|
}
|
|
587
589
|
|
|
588
|
-
export { DEPENDENCY_ID, PROXYDI_CONTAINER, ProxyDiContainer, inject, injectable, middleware, resolveAll };
|
|
590
|
+
export { DEPENDENCY_ID, ON_CONTAINERIZED, PROXYDI_CONTAINER, ProxyDiContainer, inject, injectable, middleware, resolveAll };
|
package/dist/index.umd.js
CHANGED
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
* The property stores a reference to the ProxyDiContainer in which the dependency was registered.
|
|
53
53
|
*/
|
|
54
54
|
const PROXYDI_CONTAINER = Symbol('proxyDiContainer');
|
|
55
|
+
const ON_CONTAINERIZED = Symbol('onContainerized');
|
|
55
56
|
const IS_INJECTION_PROXY = Symbol('isInjectionProxy');
|
|
56
57
|
const INJECTION_OWNER = Symbol('injectionOwner');
|
|
57
58
|
const IS_INSTANCE_PROXY = Symbol('isInstanceProxy');
|
|
@@ -351,6 +352,7 @@
|
|
|
351
352
|
if (isObject) {
|
|
352
353
|
instance[PROXYDI_CONTAINER] = this;
|
|
353
354
|
instance[DEPENDENCY_ID] = id;
|
|
355
|
+
instance[ON_CONTAINERIZED] && instance[ON_CONTAINERIZED](this);
|
|
354
356
|
}
|
|
355
357
|
this.injectDependenciesTo(instance);
|
|
356
358
|
this.dependencies[id] = instance;
|
|
@@ -592,6 +594,7 @@
|
|
|
592
594
|
}
|
|
593
595
|
|
|
594
596
|
exports.DEPENDENCY_ID = DEPENDENCY_ID;
|
|
597
|
+
exports.ON_CONTAINERIZED = ON_CONTAINERIZED;
|
|
595
598
|
exports.PROXYDI_CONTAINER = PROXYDI_CONTAINER;
|
|
596
599
|
exports.ProxyDiContainer = ProxyDiContainer;
|
|
597
600
|
exports.inject = inject;
|
|
@@ -10,18 +10,18 @@ export interface MiddlewareEvent {
|
|
|
10
10
|
remove: <T>(context: MiddlewareContext<T>) => void;
|
|
11
11
|
resolve: <T>(context: MiddlewareContext<T>) => MiddlewareContext<T>;
|
|
12
12
|
}
|
|
13
|
-
export interface MiddlewareResolver {
|
|
14
|
-
onResolve:
|
|
13
|
+
export interface MiddlewareResolver<T> {
|
|
14
|
+
onResolve: (context: MiddlewareContext<T>) => MiddlewareContext<T>;
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
17
|
* Describe the middleware that able to listen to the registering of a dependency in containers hierarchy
|
|
18
18
|
*/
|
|
19
|
-
export interface MiddlewareRegistrator {
|
|
20
|
-
onRegister
|
|
19
|
+
export interface MiddlewareRegistrator<T> {
|
|
20
|
+
onRegister(context: MiddlewareContext<T>): void;
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
23
|
* Describe the middleware that able to listen to the removing of a dependency in containers hierarchy
|
|
24
24
|
*/
|
|
25
|
-
export interface MiddlewareRemover {
|
|
26
|
-
onRemove
|
|
25
|
+
export interface MiddlewareRemover<T> {
|
|
26
|
+
onRemove(context: MiddlewareContext<T>): void;
|
|
27
27
|
}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ProxyDiContainer } from './ProxyDiContainer';
|
|
1
2
|
export type DependencyId = string | symbol;
|
|
2
3
|
export type DependencyClass<T> = new (...args: any[]) => T;
|
|
3
4
|
export type Setter = (object: unknown, value: unknown) => void;
|
|
@@ -33,6 +34,8 @@ export declare const DEPENDENCY_ID: unique symbol;
|
|
|
33
34
|
* The property stores a reference to the ProxyDiContainer in which the dependency was registered.
|
|
34
35
|
*/
|
|
35
36
|
export declare const PROXYDI_CONTAINER: unique symbol;
|
|
37
|
+
export declare const ON_CONTAINERIZED: unique symbol;
|
|
38
|
+
export type OnContainerizedMethod = (container: ProxyDiContainer) => void;
|
|
36
39
|
export type Injections = Record<string | symbol, Injection>;
|
|
37
40
|
export type Dependency = {
|
|
38
41
|
[INJECTIONS]: Injections;
|