mesh-ioc 3.1.4 → 3.3.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.
@@ -1,8 +1,9 @@
1
1
  import 'reflect-metadata';
2
- import { DepMetadata } from '../types.js';
2
+ import { Constructor, DepMetadata } from './types.js';
3
3
  export declare const depMetadata: DepMetadata[];
4
4
  export interface DepOptions {
5
5
  key?: string;
6
6
  cache?: boolean;
7
7
  }
8
8
  export declare function dep(options?: DepOptions): (target: any, propertyName: string) => void;
9
+ export declare function getClassDeps(ctor: Constructor<any>): DepMetadata[];
@@ -1,6 +1,6 @@
1
1
  import 'reflect-metadata';
2
- import { DepInstanceNotConnected, DepKeyNotInferred } from '../errors.js';
3
- import { MESH_REF } from '../mesh.js';
2
+ import { DepInstanceNotConnected, DepKeyNotInferred } from './errors.js';
3
+ import { MESH_REF } from './mesh.js';
4
4
  export const depMetadata = [];
5
5
  export function dep(options = {}) {
6
6
  return function (target, propertyName) {
@@ -36,4 +36,7 @@ export function dep(options = {}) {
36
36
  });
37
37
  };
38
38
  }
39
+ export function getClassDeps(ctor) {
40
+ return depMetadata.filter(_ => _.class === ctor);
41
+ }
39
42
  //# sourceMappingURL=dep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dep.js","sourceRoot":"","sources":["../../src/main/dep.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAQ,QAAQ,EAAE,MAAM,WAAW,CAAC;AAG3C,MAAM,CAAC,MAAM,WAAW,GAAkB,EAAE,CAAC;AAO7C,MAAM,UAAU,GAAG,CAAC,UAAsB,EAAE;IACxC,OAAO,UAAU,MAAW,EAAE,YAAoB;QAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;QAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAa,CAAC;QACxF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,UAAU,EAAE,IAAI,CAAC;QAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC;QACpC,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,MAAM,IAAI,iBAAiB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACzD,CAAC;QACD,WAAW,CAAC,IAAI,CAAC;YACb,KAAK,EAAE,MAAM,CAAC,WAAW;YACzB,YAAY;YACZ,cAAc,EAAE,UAAU,CAAC,IAAI;YAC/B,GAAG;SACN,CAAC,CAAC;QACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE;YACxC,YAAY,EAAE,IAAI;YAClB,GAAG;gBACC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAS,CAAC;gBACpC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACR,MAAM,IAAI,uBAAuB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;gBAC/D,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,KAAK,EAAE,CAAC;oBACR,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE;wBACtC,YAAY,EAAE,IAAI;wBAClB,KAAK;qBACR,CAAC,CAAC;gBACP,CAAC;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC;SACJ,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAsB;IAC/C,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;AACrD,CAAC"}
@@ -1,4 +1,4 @@
1
- export * from './decorators/dep.js';
1
+ export * from './dep.js';
2
2
  export * from './errors.js';
3
3
  export * from './mesh.js';
4
4
  export * from './types.js';
package/out/main/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export * from './decorators/dep.js';
1
+ export * from './dep.js';
2
2
  export * from './errors.js';
3
3
  export * from './mesh.js';
4
4
  export * from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/main/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/main/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
@@ -1,4 +1,4 @@
1
- import { AbstractClass, Binding, Middleware, ServiceConstructor, ServiceKey } from './types.js';
1
+ import { AbstractClass, Binding, Constructor, DepMetadata, Middleware, ServiceConstructor, ServiceKey } from './types.js';
2
2
  export declare const MESH_REF: unique symbol;
3
3
  /**
4
4
  * An IoC container.
@@ -7,9 +7,9 @@ export declare const MESH_REF: unique symbol;
7
7
  *
8
8
  * Three binding types are supported via corresponding methods:
9
9
  *
10
- * - `service` — a zero-arg constructor mapping; these will be instantiated on demand and cached in this mesh
10
+ * - `service` — a zero-arg constructor mapping; these will be instantiated on demand and cached in a mesh instance
11
11
  * - `constant` — an instance of a class (can be bound by using class as service name) or an arbitrary value bound by a string key
12
- * - `alias` — a "redirect" mapping, useful in tests
12
+ * - `alias` — a "redirect" mapping, resolves a key into another key from the same mesh; useful in tests
13
13
  */
14
14
  export declare class Mesh {
15
15
  name: string;
@@ -20,15 +20,21 @@ export declare class Mesh {
20
20
  constructor(name?: string, parent?: Mesh | undefined);
21
21
  [Symbol.iterator](): Generator<[string, Binding<any>], void, undefined>;
22
22
  clone(): Mesh;
23
+ connect<T>(value: T): T;
24
+ use(fn: Middleware): this;
23
25
  service<T>(impl: ServiceConstructor<T>): this;
24
26
  service<T>(key: AbstractClass<T> | string, impl: ServiceConstructor<T>): this;
25
27
  constant<T>(key: ServiceKey<T>, value: T): this;
26
28
  alias<T>(key: AbstractClass<T> | string, referenceKey: AbstractClass<T> | string): this;
29
+ delete<T>(key: ServiceKey<T>): this;
27
30
  resolve<T>(key: ServiceKey<T>, recursive?: boolean): T;
28
31
  tryResolve<T>(key: ServiceKey<T>, recursive?: boolean): T | undefined;
29
- connect<T>(value: T): T;
30
- use(fn: Middleware): this;
31
- protected instantiate<T>(binding: Binding<T>): T;
32
+ getBinding<T>(key: ServiceKey<T>, recursive?: boolean): Binding<T> | undefined;
33
+ allBindings(): Iterable<[string, Binding<any>]>;
34
+ missingDeps(): Iterable<DepMetadata>;
35
+ allDeps(): Iterable<DepMetadata>;
36
+ traverseClassDeps(ctor: Constructor<any>, visitedKeys?: Set<string>): Iterable<DepMetadata>;
37
+ instantiate<T>(binding: Binding<T>): T;
32
38
  protected applyMiddleware<T>(value: T): T;
33
39
  protected injectRef(value: any): void;
34
40
  }
package/out/main/mesh.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { getClassDeps } from './dep.js';
1
2
  import { MeshBindingNotFound, MeshInvalidBinding } from './errors.js';
2
3
  import { keyToString } from './util.js';
3
4
  export const MESH_REF = Symbol.for('MESH_REF');
@@ -8,9 +9,9 @@ export const MESH_REF = Symbol.for('MESH_REF');
8
9
  *
9
10
  * Three binding types are supported via corresponding methods:
10
11
  *
11
- * - `service` — a zero-arg constructor mapping; these will be instantiated on demand and cached in this mesh
12
+ * - `service` — a zero-arg constructor mapping; these will be instantiated on demand and cached in a mesh instance
12
13
  * - `constant` — an instance of a class (can be bound by using class as service name) or an arbitrary value bound by a string key
13
- * - `alias` — a "redirect" mapping, useful in tests
14
+ * - `alias` — a "redirect" mapping, resolves a key into another key from the same mesh; useful in tests
14
15
  */
15
16
  export class Mesh {
16
17
  constructor(name = 'default', parent = undefined) {
@@ -30,6 +31,15 @@ export class Mesh {
30
31
  clone.bindings = new Map(this.bindings);
31
32
  return clone;
32
33
  }
34
+ connect(value) {
35
+ const res = this.applyMiddleware(value);
36
+ this.injectRef(res);
37
+ return res;
38
+ }
39
+ use(fn) {
40
+ this.middlewares.push(fn);
41
+ return this;
42
+ }
33
43
  service(key, impl) {
34
44
  const k = keyToString(key);
35
45
  if (typeof impl === 'function') {
@@ -53,6 +63,11 @@ export class Mesh {
53
63
  this.bindings.set(k, { type: 'alias', key: refK });
54
64
  return this;
55
65
  }
66
+ delete(key) {
67
+ const k = keyToString(key);
68
+ this.bindings.delete(k);
69
+ return this;
70
+ }
56
71
  resolve(key, recursive = true) {
57
72
  const instance = this.tryResolve(key, recursive);
58
73
  if (instance === undefined) {
@@ -79,14 +94,51 @@ export class Mesh {
79
94
  }
80
95
  return undefined;
81
96
  }
82
- connect(value) {
83
- const res = this.applyMiddleware(value);
84
- this.injectRef(res);
85
- return res;
97
+ getBinding(key, recursive = true) {
98
+ const k = keyToString(key);
99
+ const binding = this.bindings.get(k);
100
+ if (binding) {
101
+ return binding;
102
+ }
103
+ if (recursive && this.parent) {
104
+ return this.parent.getBinding(key);
105
+ }
106
+ return undefined;
86
107
  }
87
- use(fn) {
88
- this.middlewares.push(fn);
89
- return this;
108
+ *allBindings() {
109
+ yield* this.bindings.entries();
110
+ if (this.parent) {
111
+ yield* this.parent.allBindings();
112
+ }
113
+ }
114
+ *missingDeps() {
115
+ for (const dep of this.allDeps()) {
116
+ if (!this.getBinding(dep.key)) {
117
+ yield dep;
118
+ }
119
+ }
120
+ }
121
+ *allDeps() {
122
+ const visitedKeys = new Set();
123
+ for (const [, binding] of this.allBindings()) {
124
+ if (binding.type === 'service') {
125
+ yield* this.traverseClassDeps(binding.class, visitedKeys);
126
+ }
127
+ }
128
+ }
129
+ *traverseClassDeps(ctor, visitedKeys = new Set()) {
130
+ const deps = getClassDeps(ctor);
131
+ for (const dep of deps) {
132
+ if (visitedKeys.has(dep.key)) {
133
+ continue;
134
+ }
135
+ visitedKeys.add(dep.key);
136
+ yield dep;
137
+ const binding = this.getBinding(dep.key);
138
+ if (binding?.type === 'service') {
139
+ yield* this.traverseClassDeps(binding.class, visitedKeys);
140
+ }
141
+ }
90
142
  }
91
143
  instantiate(binding) {
92
144
  switch (binding.type) {
@@ -1 +1 @@
1
- {"version":3,"file":"mesh.js","sourceRoot":"","sources":["../../src/main/mesh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mesh.js","sourceRoot":"","sources":["../../src/main/mesh.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mesh-ioc",
3
- "version": "3.1.4",
3
+ "version": "3.3.0",
4
4
  "description": "Powerful and Lightweight IoC Library",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -15,7 +15,7 @@
15
15
  "scripts": {
16
16
  "clean": "rm -rf out *.tsbuildinfo",
17
17
  "dev": "npm run clean && tsc -b -w",
18
- "compile": "tsc -b",
18
+ "compile": "npm run clean && tsc -b",
19
19
  "lint": "eslint --ext=.js,.ts,.vue --cache .",
20
20
  "test": "NODE_ENV=test mocha",
21
21
  "preversion": "npm run lint",
@@ -39,14 +39,14 @@
39
39
  "author": "Boris Okunskiy",
40
40
  "license": "ISC",
41
41
  "devDependencies": {
42
- "@nodescript/eslint-config": "^1.0.0",
42
+ "@nodescript/eslint-config": "^1.2.0",
43
43
  "@types/mocha": "^8.2.3",
44
- "@types/node": "^16.3.1",
44
+ "@types/node": "^16.18.88",
45
45
  "chalk": "^4.1.2",
46
- "eslint": "^8.24.0",
47
- "mocha": "^9.0.2",
46
+ "eslint": "^8.57.0",
47
+ "mocha": "^9.2.2",
48
48
  "pre-commit": "^1.2.2",
49
- "reflect-metadata": "^0.1.13",
50
- "typescript": "^4.3.5"
49
+ "reflect-metadata": "^0.1.14",
50
+ "typescript": "^5.4.2"
51
51
  }
52
52
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"dep.js","sourceRoot":"","sources":["../../../src/main/decorators/dep.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAQ,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG5C,MAAM,CAAC,MAAM,WAAW,GAAkB,EAAE,CAAC;AAO7C,MAAM,UAAU,GAAG,CAAC,UAAsB,EAAE;IACxC,OAAO,UAAU,MAAW,EAAE,YAAoB;QAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;QAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAa,CAAC;QACxF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,UAAU,EAAE,IAAI,CAAC;QAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC;QACpC,IAAI,CAAC,GAAG,EAAE;YACN,MAAM,IAAI,iBAAiB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;SACxD;QACD,WAAW,CAAC,IAAI,CAAC;YACb,KAAK,EAAE,MAAM,CAAC,WAAW;YACzB,YAAY;YACZ,cAAc,EAAE,UAAU,CAAC,IAAI;YAC/B,GAAG;SACN,CAAC,CAAC;QACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE;YACxC,YAAY,EAAE,IAAI;YAClB,GAAG;gBACC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAS,CAAC;gBACpC,IAAI,CAAC,IAAI,EAAE;oBACP,MAAM,IAAI,uBAAuB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;iBAC9D;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,KAAK,EAAE;oBACP,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE;wBACtC,YAAY,EAAE,IAAI;wBAClB,KAAK;qBACR,CAAC,CAAC;iBACN;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC;SACJ,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC"}