@decaf-ts/injectable-decorators 1.6.1 → 1.6.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.
@@ -3,59 +3,117 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Injectables = void 0;
4
4
  const registry_1 = require("./registry.cjs");
5
5
  /**
6
- * @summary Static class Holding the access to the injectables functions
6
+ * @description Central registry for managing injectable dependencies.
7
+ * @summary Static class holding the access to the injectables functions. Provides methods for registering,
8
+ * retrieving, and building injectable objects.
9
+ * @template T Type of the injectable object
7
10
  *
8
11
  * @class Injectables
9
- * @static
12
+ *
13
+ * @example
14
+ * // Define an injectable class
15
+ * @injectable()
16
+ * class MyService {
17
+ * doSomething() {
18
+ * return 'Hello World';
19
+ * }
20
+ * }
21
+ *
22
+ * // Inject the service into another class
23
+ * class MyComponent {
24
+ * @inject()
25
+ * private service!: MyService;
26
+ *
27
+ * useService() {
28
+ * return this.service.doSomething();
29
+ * }
30
+ * }
31
+ *
32
+ * @mermaid
33
+ * sequenceDiagram
34
+ * participant Client
35
+ * participant Injectables
36
+ * participant Registry
37
+ *
38
+ * Client->>Injectables: register(MyService)
39
+ * Injectables->>Registry: register(MyService)
40
+ * Registry-->>Injectables: void
41
+ *
42
+ * Client->>Injectables: get("MyService")
43
+ * Injectables->>Registry: get("MyService")
44
+ * Registry-->>Injectables: MyService instance
45
+ * Injectables-->>Client: MyService instance
10
46
  */
11
47
  class Injectables {
12
48
  static { this.actingInjectablesRegistry = undefined; }
13
49
  constructor() { }
14
50
  /**
15
- * @summary Retrieves the named {@link Injectable} from the registry
16
- * @param {string} name
17
- * @param {any[]} args
51
+ * @description Fetches an injectable instance by its registered name.
52
+ * @summary Retrieves the named {@link Injectable} from the registry. If the injectable is a singleton,
53
+ * returns the existing instance. Otherwise, creates a new instance.
54
+ * @template T Type of the injectable object to retrieve
55
+ * @param {string} name The registered name of the injectable to retrieve
56
+ * @param {any[]} args Constructor arguments to pass when instantiating the injectable
57
+ * @return {Injectable<T> | undefined} The injectable instance or undefined if not found
18
58
  */
19
59
  static get(name, ...args) {
20
60
  return Injectables.getRegistry().get(name, ...args);
21
61
  }
22
62
  /**
23
- * @summary registers an injectable constructor
24
- * @param {Injectable} constructor
25
- * @param {any[]} args
26
- *
63
+ * @description Adds a class or object to the injectable registry.
64
+ * @summary Registers an injectable constructor or instance with the registry, making it available for injection.
65
+ * @template T Type of the injectable object to register
66
+ * @param {Injectable<T>} constructor The class constructor or object instance to register
67
+ * @param {any[]} args Additional arguments for registration (category, singleton flag, etc.)
68
+ * @return {void}
27
69
  */
28
70
  static register(constructor, ...args) {
29
71
  return Injectables.getRegistry().register(constructor, ...args);
30
72
  }
31
73
  /**
32
- * @summary Instantiates an Injectable
33
- * @param {Record<string, any>} obj
34
- * @param {any[]} args
35
- * @return T
36
- *
74
+ * @description Creates a new instance of an injectable class.
75
+ * @summary Instantiates an injectable class using its constructor and the provided arguments.
76
+ * @template T Type of the object to build
77
+ * @param {Record<string, any>} obj Object containing the name of the injectable to build
78
+ * @param {any[]} args Constructor arguments to pass when instantiating the injectable
79
+ * @return {T} The newly created instance
37
80
  */
38
81
  static build(obj, ...args) {
39
82
  return Injectables.getRegistry().build(obj, ...args);
40
83
  }
41
84
  /**
42
- * @summary Sets a new {@link InjectablesRegistry}
43
- * @param {InjectablesRegistry} operationsRegistry the new implementation of Registry
85
+ * @description Replaces the current registry implementation.
86
+ * @summary Sets a new {@link InjectablesRegistry} implementation, allowing for custom registry behavior.
87
+ * @param {InjectablesRegistry} operationsRegistry The new implementation of Registry to use
88
+ * @return {void}
44
89
  */
45
90
  static setRegistry(operationsRegistry) {
46
91
  Injectables.actingInjectablesRegistry = operationsRegistry;
47
92
  }
48
93
  /**
49
- * @summary Returns the current {@link InjectablesRegistry}
94
+ * @description Provides access to the current registry instance.
95
+ * @summary Returns the current {@link InjectablesRegistry} or creates a default one if none exists.
96
+ * @return {InjectablesRegistry} The current registry instance
50
97
  */
51
98
  static getRegistry() {
52
99
  if (!Injectables.actingInjectablesRegistry)
53
100
  Injectables.actingInjectablesRegistry = new registry_1.InjectableRegistryImp();
54
101
  return Injectables.actingInjectablesRegistry;
55
102
  }
103
+ /**
104
+ * @description Clears all registered injectables.
105
+ * @summary Resets the registry to a clean state by creating a new empty registry instance.
106
+ * @return {void}
107
+ */
56
108
  static reset() {
57
109
  Injectables.setRegistry(new registry_1.InjectableRegistryImp());
58
110
  }
111
+ /**
112
+ * @description Removes specific injectables from the registry based on a pattern.
113
+ * @summary Selectively resets the registry by removing only the injectables whose names match the provided pattern.
114
+ * @param {string | RegExp} match A string or regular expression pattern to match against injectable names
115
+ * @return {void}
116
+ */
59
117
  static selectiveReset(match) {
60
118
  const regexp = typeof match === "string" ? new RegExp(match) : match;
61
119
  Injectables.actingInjectablesRegistry["cache"] = Object.entries(Injectables.actingInjectablesRegistry["cache"]).reduce((accum, [key, val]) => {
@@ -66,4 +124,4 @@ class Injectables {
66
124
  }
67
125
  }
68
126
  exports.Injectables = Injectables;
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5qZWN0YWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvSW5qZWN0YWJsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBSW9CO0FBRXBCOzs7OztHQUtHO0FBQ0gsTUFBYSxXQUFXO2FBQ1AsOEJBQXlCLEdBQXlCLFNBQVMsQ0FBQztJQUUzRSxnQkFBdUIsQ0FBQztJQUV4Qjs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLEdBQUcsQ0FBSSxJQUFZLEVBQUUsR0FBRyxJQUFXO1FBQ3hDLE9BQU8sV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsUUFBUSxDQUFJLFdBQTBCLEVBQUUsR0FBRyxJQUFXO1FBQzNELE9BQU8sV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBSSxHQUF3QixFQUFFLEdBQUcsSUFBVztRQUN0RCxPQUFPLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxXQUFXLENBQUMsa0JBQXVDO1FBQ3hELFdBQVcsQ0FBQyx5QkFBeUIsR0FBRyxrQkFBa0IsQ0FBQztJQUM3RCxDQUFDO0lBQ0Q7O09BRUc7SUFDSyxNQUFNLENBQUMsV0FBVztRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLHlCQUF5QjtZQUN4QyxXQUFXLENBQUMseUJBQXlCLEdBQUcsSUFBSSxnQ0FBcUIsRUFBRSxDQUFDO1FBQ3RFLE9BQU8sV0FBVyxDQUFDLHlCQUF5QixDQUFDO0lBQy9DLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSztRQUNWLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxnQ0FBcUIsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBc0I7UUFDMUMsTUFBTSxNQUFNLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3BFLFdBQVcsQ0FBQyx5QkFBaUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUNyRSxXQUFXLENBQUMseUJBQWlDLENBQUMsT0FBTyxDQUFDLENBQ3hELENBQUMsTUFBTSxDQUFDLENBQUMsS0FBMEIsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFO1lBQ2xELElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztnQkFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBQ3pDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQzs7QUEvREgsa0NBZ0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0YWJsZVJlZ2lzdHJ5SW1wLFxuICBJbmplY3RhYmxlc1JlZ2lzdHJ5LFxufSBmcm9tIFwiLi9yZWdpc3RyeVwiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IFN0YXRpYyBjbGFzcyBIb2xkaW5nIHRoZSBhY2Nlc3MgdG8gdGhlIGluamVjdGFibGVzIGZ1bmN0aW9uc1xuICpcbiAqIEBjbGFzcyBJbmplY3RhYmxlc1xuICogQHN0YXRpY1xuICovXG5leHBvcnQgY2xhc3MgSW5qZWN0YWJsZXMge1xuICBwcml2YXRlIHN0YXRpYyBhY3RpbmdJbmplY3RhYmxlc1JlZ2lzdHJ5PzogSW5qZWN0YWJsZXNSZWdpc3RyeSA9IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge31cblxuICAvKipcbiAgICogQHN1bW1hcnkgUmV0cmlldmVzIHRoZSBuYW1lZCB7QGxpbmsgSW5qZWN0YWJsZX0gZnJvbSB0aGUgcmVnaXN0cnlcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAgICogQHBhcmFtIHthbnlbXX0gYXJnc1xuICAgKi9cbiAgc3RhdGljIGdldDxUPihuYW1lOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogSW5qZWN0YWJsZTxUPiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIEluamVjdGFibGVzLmdldFJlZ2lzdHJ5KCkuZ2V0KG5hbWUsIC4uLmFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IHJlZ2lzdGVycyBhbiBpbmplY3RhYmxlIGNvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSB7SW5qZWN0YWJsZX0gY29uc3RydWN0b3JcbiAgICogQHBhcmFtIHthbnlbXX0gYXJnc1xuICAgKlxuICAgKi9cbiAgc3RhdGljIHJlZ2lzdGVyPFQ+KGNvbnN0cnVjdG9yOiBJbmplY3RhYmxlPFQ+LCAuLi5hcmdzOiBhbnlbXSk6IHZvaWQge1xuICAgIHJldHVybiBJbmplY3RhYmxlcy5nZXRSZWdpc3RyeSgpLnJlZ2lzdGVyKGNvbnN0cnVjdG9yLCAuLi5hcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBJbnN0YW50aWF0ZXMgYW4gSW5qZWN0YWJsZVxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IG9ialxuICAgKiBAcGFyYW0ge2FueVtdfSBhcmdzXG4gICAqIEByZXR1cm4gVFxuICAgKlxuICAgKi9cbiAgc3RhdGljIGJ1aWxkPFQ+KG9iajogUmVjb3JkPHN0cmluZywgYW55PiwgLi4uYXJnczogYW55W10pOiBUIHtcbiAgICByZXR1cm4gSW5qZWN0YWJsZXMuZ2V0UmVnaXN0cnkoKS5idWlsZChvYmosIC4uLmFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFNldHMgYSBuZXcge0BsaW5rIEluamVjdGFibGVzUmVnaXN0cnl9XG4gICAqIEBwYXJhbSB7SW5qZWN0YWJsZXNSZWdpc3RyeX0gb3BlcmF0aW9uc1JlZ2lzdHJ5IHRoZSBuZXcgaW1wbGVtZW50YXRpb24gb2YgUmVnaXN0cnlcbiAgICovXG4gIHN0YXRpYyBzZXRSZWdpc3RyeShvcGVyYXRpb25zUmVnaXN0cnk6IEluamVjdGFibGVzUmVnaXN0cnkpIHtcbiAgICBJbmplY3RhYmxlcy5hY3RpbmdJbmplY3RhYmxlc1JlZ2lzdHJ5ID0gb3BlcmF0aW9uc1JlZ2lzdHJ5O1xuICB9XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBSZXR1cm5zIHRoZSBjdXJyZW50IHtAbGluayBJbmplY3RhYmxlc1JlZ2lzdHJ5fVxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0UmVnaXN0cnkoKSB7XG4gICAgaWYgKCFJbmplY3RhYmxlcy5hY3RpbmdJbmplY3RhYmxlc1JlZ2lzdHJ5KVxuICAgICAgSW5qZWN0YWJsZXMuYWN0aW5nSW5qZWN0YWJsZXNSZWdpc3RyeSA9IG5ldyBJbmplY3RhYmxlUmVnaXN0cnlJbXAoKTtcbiAgICByZXR1cm4gSW5qZWN0YWJsZXMuYWN0aW5nSW5qZWN0YWJsZXNSZWdpc3RyeTtcbiAgfVxuXG4gIHN0YXRpYyByZXNldCgpIHtcbiAgICBJbmplY3RhYmxlcy5zZXRSZWdpc3RyeShuZXcgSW5qZWN0YWJsZVJlZ2lzdHJ5SW1wKCkpO1xuICB9XG5cbiAgc3RhdGljIHNlbGVjdGl2ZVJlc2V0KG1hdGNoOiBzdHJpbmcgfCBSZWdFeHApIHtcbiAgICBjb25zdCByZWdleHAgPSB0eXBlb2YgbWF0Y2ggPT09IFwic3RyaW5nXCIgPyBuZXcgUmVnRXhwKG1hdGNoKSA6IG1hdGNoO1xuICAgIChJbmplY3RhYmxlcy5hY3RpbmdJbmplY3RhYmxlc1JlZ2lzdHJ5IGFzIGFueSlbXCJjYWNoZVwiXSA9IE9iamVjdC5lbnRyaWVzKFxuICAgICAgKEluamVjdGFibGVzLmFjdGluZ0luamVjdGFibGVzUmVnaXN0cnkgYXMgYW55KVtcImNhY2hlXCJdXG4gICAgKS5yZWR1Y2UoKGFjY3VtOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBba2V5LCB2YWxdKSA9PiB7XG4gICAgICBpZiAoIWtleS5tYXRjaChyZWdleHApKSBhY2N1bVtrZXldID0gdmFsO1xuICAgICAgcmV0dXJuIGFjY3VtO1xuICAgIH0sIHt9KTtcbiAgfVxufVxuIl19
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5qZWN0YWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvSW5qZWN0YWJsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBSW9CO0FBRXBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlDRztBQUNILE1BQWEsV0FBVzthQUNQLDhCQUF5QixHQUF5QixTQUFTLENBQUM7SUFFM0UsZ0JBQXVCLENBQUM7SUFFeEI7Ozs7Ozs7O09BUUc7SUFDSCxNQUFNLENBQUMsR0FBRyxDQUFJLElBQVksRUFBRSxHQUFHLElBQVc7UUFDeEMsT0FBTyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FBSSxXQUEwQixFQUFFLEdBQUcsSUFBVztRQUMzRCxPQUFPLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFJLEdBQXdCLEVBQUUsR0FBRyxJQUFXO1FBQ3RELE9BQU8sV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsV0FBVyxDQUFDLGtCQUF1QztRQUN4RCxXQUFXLENBQUMseUJBQXlCLEdBQUcsa0JBQWtCLENBQUM7SUFDN0QsQ0FBQztJQUNEOzs7O09BSUc7SUFDSyxNQUFNLENBQUMsV0FBVztRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLHlCQUF5QjtZQUN4QyxXQUFXLENBQUMseUJBQXlCLEdBQUcsSUFBSSxnQ0FBcUIsRUFBRSxDQUFDO1FBQ3RFLE9BQU8sV0FBVyxDQUFDLHlCQUF5QixDQUFDO0lBQy9DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLEtBQUs7UUFDVixXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksZ0NBQXFCLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBc0I7UUFDMUMsTUFBTSxNQUFNLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3BFLFdBQVcsQ0FBQyx5QkFBaUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUNyRSxXQUFXLENBQUMseUJBQWlDLENBQUMsT0FBTyxDQUFDLENBQ3hELENBQUMsTUFBTSxDQUFDLENBQUMsS0FBMEIsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFO1lBQ2xELElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztnQkFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBQ3pDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQzs7QUFyRkgsa0NBc0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0YWJsZVJlZ2lzdHJ5SW1wLFxuICBJbmplY3RhYmxlc1JlZ2lzdHJ5LFxufSBmcm9tIFwiLi9yZWdpc3RyeVwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDZW50cmFsIHJlZ2lzdHJ5IGZvciBtYW5hZ2luZyBpbmplY3RhYmxlIGRlcGVuZGVuY2llcy5cbiAqIEBzdW1tYXJ5IFN0YXRpYyBjbGFzcyBob2xkaW5nIHRoZSBhY2Nlc3MgdG8gdGhlIGluamVjdGFibGVzIGZ1bmN0aW9ucy4gUHJvdmlkZXMgbWV0aG9kcyBmb3IgcmVnaXN0ZXJpbmcsXG4gKiByZXRyaWV2aW5nLCBhbmQgYnVpbGRpbmcgaW5qZWN0YWJsZSBvYmplY3RzLlxuICogQHRlbXBsYXRlIFQgVHlwZSBvZiB0aGUgaW5qZWN0YWJsZSBvYmplY3RcbiAqIFxuICogQGNsYXNzIEluamVjdGFibGVzXG4gKiBcbiAqIEBleGFtcGxlXG4gKiAvLyBEZWZpbmUgYW4gaW5qZWN0YWJsZSBjbGFzc1xuICogQGluamVjdGFibGUoKVxuICogY2xhc3MgTXlTZXJ2aWNlIHtcbiAqICAgZG9Tb21ldGhpbmcoKSB7XG4gKiAgICAgcmV0dXJuICdIZWxsbyBXb3JsZCc7XG4gKiAgIH1cbiAqIH1cbiAqIFxuICogLy8gSW5qZWN0IHRoZSBzZXJ2aWNlIGludG8gYW5vdGhlciBjbGFzc1xuICogY2xhc3MgTXlDb21wb25lbnQge1xuICogICBAaW5qZWN0KClcbiAqICAgcHJpdmF0ZSBzZXJ2aWNlITogTXlTZXJ2aWNlO1xuICogICBcbiAqICAgdXNlU2VydmljZSgpIHtcbiAqICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmRvU29tZXRoaW5nKCk7XG4gKiAgIH1cbiAqIH1cbiAqIFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDbGllbnRcbiAqICAgcGFydGljaXBhbnQgSW5qZWN0YWJsZXNcbiAqICAgcGFydGljaXBhbnQgUmVnaXN0cnlcbiAqICAgXG4gKiAgIENsaWVudC0+PkluamVjdGFibGVzOiByZWdpc3RlcihNeVNlcnZpY2UpXG4gKiAgIEluamVjdGFibGVzLT4+UmVnaXN0cnk6IHJlZ2lzdGVyKE15U2VydmljZSlcbiAqICAgUmVnaXN0cnktLT4+SW5qZWN0YWJsZXM6IHZvaWRcbiAqICAgXG4gKiAgIENsaWVudC0+PkluamVjdGFibGVzOiBnZXQoXCJNeVNlcnZpY2VcIilcbiAqICAgSW5qZWN0YWJsZXMtPj5SZWdpc3RyeTogZ2V0KFwiTXlTZXJ2aWNlXCIpXG4gKiAgIFJlZ2lzdHJ5LS0+PkluamVjdGFibGVzOiBNeVNlcnZpY2UgaW5zdGFuY2VcbiAqICAgSW5qZWN0YWJsZXMtLT4+Q2xpZW50OiBNeVNlcnZpY2UgaW5zdGFuY2VcbiAqL1xuZXhwb3J0IGNsYXNzIEluamVjdGFibGVzIHtcbiAgcHJpdmF0ZSBzdGF0aWMgYWN0aW5nSW5qZWN0YWJsZXNSZWdpc3RyeT86IEluamVjdGFibGVzUmVnaXN0cnkgPSB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBGZXRjaGVzIGFuIGluamVjdGFibGUgaW5zdGFuY2UgYnkgaXRzIHJlZ2lzdGVyZWQgbmFtZS5cbiAgICogQHN1bW1hcnkgUmV0cmlldmVzIHRoZSBuYW1lZCB7QGxpbmsgSW5qZWN0YWJsZX0gZnJvbSB0aGUgcmVnaXN0cnkuIElmIHRoZSBpbmplY3RhYmxlIGlzIGEgc2luZ2xldG9uLFxuICAgKiByZXR1cm5zIHRoZSBleGlzdGluZyBpbnN0YW5jZS4gT3RoZXJ3aXNlLCBjcmVhdGVzIGEgbmV3IGluc3RhbmNlLlxuICAgKiBAdGVtcGxhdGUgVCBUeXBlIG9mIHRoZSBpbmplY3RhYmxlIG9iamVjdCB0byByZXRyaWV2ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBUaGUgcmVnaXN0ZXJlZCBuYW1lIG9mIHRoZSBpbmplY3RhYmxlIHRvIHJldHJpZXZlXG4gICAqIEBwYXJhbSB7YW55W119IGFyZ3MgQ29uc3RydWN0b3IgYXJndW1lbnRzIHRvIHBhc3Mgd2hlbiBpbnN0YW50aWF0aW5nIHRoZSBpbmplY3RhYmxlXG4gICAqIEByZXR1cm4ge0luamVjdGFibGU8VD4gfCB1bmRlZmluZWR9IFRoZSBpbmplY3RhYmxlIGluc3RhbmNlIG9yIHVuZGVmaW5lZCBpZiBub3QgZm91bmRcbiAgICovXG4gIHN0YXRpYyBnZXQ8VD4obmFtZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IEluamVjdGFibGU8VD4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBJbmplY3RhYmxlcy5nZXRSZWdpc3RyeSgpLmdldChuYW1lLCAuLi5hcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQWRkcyBhIGNsYXNzIG9yIG9iamVjdCB0byB0aGUgaW5qZWN0YWJsZSByZWdpc3RyeS5cbiAgICogQHN1bW1hcnkgUmVnaXN0ZXJzIGFuIGluamVjdGFibGUgY29uc3RydWN0b3Igb3IgaW5zdGFuY2Ugd2l0aCB0aGUgcmVnaXN0cnksIG1ha2luZyBpdCBhdmFpbGFibGUgZm9yIGluamVjdGlvbi5cbiAgICogQHRlbXBsYXRlIFQgVHlwZSBvZiB0aGUgaW5qZWN0YWJsZSBvYmplY3QgdG8gcmVnaXN0ZXJcbiAgICogQHBhcmFtIHtJbmplY3RhYmxlPFQ+fSBjb25zdHJ1Y3RvciBUaGUgY2xhc3MgY29uc3RydWN0b3Igb3Igb2JqZWN0IGluc3RhbmNlIHRvIHJlZ2lzdGVyXG4gICAqIEBwYXJhbSB7YW55W119IGFyZ3MgQWRkaXRpb25hbCBhcmd1bWVudHMgZm9yIHJlZ2lzdHJhdGlvbiAoY2F0ZWdvcnksIHNpbmdsZXRvbiBmbGFnLCBldGMuKVxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgc3RhdGljIHJlZ2lzdGVyPFQ+KGNvbnN0cnVjdG9yOiBJbmplY3RhYmxlPFQ+LCAuLi5hcmdzOiBhbnlbXSk6IHZvaWQge1xuICAgIHJldHVybiBJbmplY3RhYmxlcy5nZXRSZWdpc3RyeSgpLnJlZ2lzdGVyKGNvbnN0cnVjdG9yLCAuLi5hcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBhbiBpbmplY3RhYmxlIGNsYXNzLlxuICAgKiBAc3VtbWFyeSBJbnN0YW50aWF0ZXMgYW4gaW5qZWN0YWJsZSBjbGFzcyB1c2luZyBpdHMgY29uc3RydWN0b3IgYW5kIHRoZSBwcm92aWRlZCBhcmd1bWVudHMuXG4gICAqIEB0ZW1wbGF0ZSBUIFR5cGUgb2YgdGhlIG9iamVjdCB0byBidWlsZFxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IG9iaiBPYmplY3QgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgaW5qZWN0YWJsZSB0byBidWlsZFxuICAgKiBAcGFyYW0ge2FueVtdfSBhcmdzIENvbnN0cnVjdG9yIGFyZ3VtZW50cyB0byBwYXNzIHdoZW4gaW5zdGFudGlhdGluZyB0aGUgaW5qZWN0YWJsZVxuICAgKiBAcmV0dXJuIHtUfSBUaGUgbmV3bHkgY3JlYXRlZCBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGJ1aWxkPFQ+KG9iajogUmVjb3JkPHN0cmluZywgYW55PiwgLi4uYXJnczogYW55W10pOiBUIHtcbiAgICByZXR1cm4gSW5qZWN0YWJsZXMuZ2V0UmVnaXN0cnkoKS5idWlsZChvYmosIC4uLmFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXBsYWNlcyB0aGUgY3VycmVudCByZWdpc3RyeSBpbXBsZW1lbnRhdGlvbi5cbiAgICogQHN1bW1hcnkgU2V0cyBhIG5ldyB7QGxpbmsgSW5qZWN0YWJsZXNSZWdpc3RyeX0gaW1wbGVtZW50YXRpb24sIGFsbG93aW5nIGZvciBjdXN0b20gcmVnaXN0cnkgYmVoYXZpb3IuXG4gICAqIEBwYXJhbSB7SW5qZWN0YWJsZXNSZWdpc3RyeX0gb3BlcmF0aW9uc1JlZ2lzdHJ5IFRoZSBuZXcgaW1wbGVtZW50YXRpb24gb2YgUmVnaXN0cnkgdG8gdXNlXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqL1xuICBzdGF0aWMgc2V0UmVnaXN0cnkob3BlcmF0aW9uc1JlZ2lzdHJ5OiBJbmplY3RhYmxlc1JlZ2lzdHJ5KSB7XG4gICAgSW5qZWN0YWJsZXMuYWN0aW5nSW5qZWN0YWJsZXNSZWdpc3RyeSA9IG9wZXJhdGlvbnNSZWdpc3RyeTtcbiAgfVxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFByb3ZpZGVzIGFjY2VzcyB0byB0aGUgY3VycmVudCByZWdpc3RyeSBpbnN0YW5jZS5cbiAgICogQHN1bW1hcnkgUmV0dXJucyB0aGUgY3VycmVudCB7QGxpbmsgSW5qZWN0YWJsZXNSZWdpc3RyeX0gb3IgY3JlYXRlcyBhIGRlZmF1bHQgb25lIGlmIG5vbmUgZXhpc3RzLlxuICAgKiBAcmV0dXJuIHtJbmplY3RhYmxlc1JlZ2lzdHJ5fSBUaGUgY3VycmVudCByZWdpc3RyeSBpbnN0YW5jZVxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0UmVnaXN0cnkoKSB7XG4gICAgaWYgKCFJbmplY3RhYmxlcy5hY3RpbmdJbmplY3RhYmxlc1JlZ2lzdHJ5KVxuICAgICAgSW5qZWN0YWJsZXMuYWN0aW5nSW5qZWN0YWJsZXNSZWdpc3RyeSA9IG5ldyBJbmplY3RhYmxlUmVnaXN0cnlJbXAoKTtcbiAgICByZXR1cm4gSW5qZWN0YWJsZXMuYWN0aW5nSW5qZWN0YWJsZXNSZWdpc3RyeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ2xlYXJzIGFsbCByZWdpc3RlcmVkIGluamVjdGFibGVzLlxuICAgKiBAc3VtbWFyeSBSZXNldHMgdGhlIHJlZ2lzdHJ5IHRvIGEgY2xlYW4gc3RhdGUgYnkgY3JlYXRpbmcgYSBuZXcgZW1wdHkgcmVnaXN0cnkgaW5zdGFuY2UuXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqL1xuICBzdGF0aWMgcmVzZXQoKSB7XG4gICAgSW5qZWN0YWJsZXMuc2V0UmVnaXN0cnkobmV3IEluamVjdGFibGVSZWdpc3RyeUltcCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVtb3ZlcyBzcGVjaWZpYyBpbmplY3RhYmxlcyBmcm9tIHRoZSByZWdpc3RyeSBiYXNlZCBvbiBhIHBhdHRlcm4uXG4gICAqIEBzdW1tYXJ5IFNlbGVjdGl2ZWx5IHJlc2V0cyB0aGUgcmVnaXN0cnkgYnkgcmVtb3Zpbmcgb25seSB0aGUgaW5qZWN0YWJsZXMgd2hvc2UgbmFtZXMgbWF0Y2ggdGhlIHByb3ZpZGVkIHBhdHRlcm4uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgUmVnRXhwfSBtYXRjaCBBIHN0cmluZyBvciByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybiB0byBtYXRjaCBhZ2FpbnN0IGluamVjdGFibGUgbmFtZXNcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIHN0YXRpYyBzZWxlY3RpdmVSZXNldChtYXRjaDogc3RyaW5nIHwgUmVnRXhwKSB7XG4gICAgY29uc3QgcmVnZXhwID0gdHlwZW9mIG1hdGNoID09PSBcInN0cmluZ1wiID8gbmV3IFJlZ0V4cChtYXRjaCkgOiBtYXRjaDtcbiAgICAoSW5qZWN0YWJsZXMuYWN0aW5nSW5qZWN0YWJsZXNSZWdpc3RyeSBhcyBhbnkpW1wiY2FjaGVcIl0gPSBPYmplY3QuZW50cmllcyhcbiAgICAgIChJbmplY3RhYmxlcy5hY3RpbmdJbmplY3RhYmxlc1JlZ2lzdHJ5IGFzIGFueSlbXCJjYWNoZVwiXVxuICAgICkucmVkdWNlKChhY2N1bTogUmVjb3JkPHN0cmluZywgYW55PiwgW2tleSwgdmFsXSkgPT4ge1xuICAgICAgaWYgKCFrZXkubWF0Y2gocmVnZXhwKSkgYWNjdW1ba2V5XSA9IHZhbDtcbiAgICAgIHJldHVybiBhY2N1bTtcbiAgICB9LCB7fSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,43 +1,101 @@
1
1
  import { Injectable, InjectablesRegistry } from "./registry";
2
2
  /**
3
- * @summary Static class Holding the access to the injectables functions
3
+ * @description Central registry for managing injectable dependencies.
4
+ * @summary Static class holding the access to the injectables functions. Provides methods for registering,
5
+ * retrieving, and building injectable objects.
6
+ * @template T Type of the injectable object
4
7
  *
5
8
  * @class Injectables
6
- * @static
9
+ *
10
+ * @example
11
+ * // Define an injectable class
12
+ * @injectable()
13
+ * class MyService {
14
+ * doSomething() {
15
+ * return 'Hello World';
16
+ * }
17
+ * }
18
+ *
19
+ * // Inject the service into another class
20
+ * class MyComponent {
21
+ * @inject()
22
+ * private service!: MyService;
23
+ *
24
+ * useService() {
25
+ * return this.service.doSomething();
26
+ * }
27
+ * }
28
+ *
29
+ * @mermaid
30
+ * sequenceDiagram
31
+ * participant Client
32
+ * participant Injectables
33
+ * participant Registry
34
+ *
35
+ * Client->>Injectables: register(MyService)
36
+ * Injectables->>Registry: register(MyService)
37
+ * Registry-->>Injectables: void
38
+ *
39
+ * Client->>Injectables: get("MyService")
40
+ * Injectables->>Registry: get("MyService")
41
+ * Registry-->>Injectables: MyService instance
42
+ * Injectables-->>Client: MyService instance
7
43
  */
8
44
  export declare class Injectables {
9
45
  private static actingInjectablesRegistry?;
10
46
  private constructor();
11
47
  /**
12
- * @summary Retrieves the named {@link Injectable} from the registry
13
- * @param {string} name
14
- * @param {any[]} args
48
+ * @description Fetches an injectable instance by its registered name.
49
+ * @summary Retrieves the named {@link Injectable} from the registry. If the injectable is a singleton,
50
+ * returns the existing instance. Otherwise, creates a new instance.
51
+ * @template T Type of the injectable object to retrieve
52
+ * @param {string} name The registered name of the injectable to retrieve
53
+ * @param {any[]} args Constructor arguments to pass when instantiating the injectable
54
+ * @return {Injectable<T> | undefined} The injectable instance or undefined if not found
15
55
  */
16
56
  static get<T>(name: string, ...args: any[]): Injectable<T> | undefined;
17
57
  /**
18
- * @summary registers an injectable constructor
19
- * @param {Injectable} constructor
20
- * @param {any[]} args
21
- *
58
+ * @description Adds a class or object to the injectable registry.
59
+ * @summary Registers an injectable constructor or instance with the registry, making it available for injection.
60
+ * @template T Type of the injectable object to register
61
+ * @param {Injectable<T>} constructor The class constructor or object instance to register
62
+ * @param {any[]} args Additional arguments for registration (category, singleton flag, etc.)
63
+ * @return {void}
22
64
  */
23
65
  static register<T>(constructor: Injectable<T>, ...args: any[]): void;
24
66
  /**
25
- * @summary Instantiates an Injectable
26
- * @param {Record<string, any>} obj
27
- * @param {any[]} args
28
- * @return T
29
- *
67
+ * @description Creates a new instance of an injectable class.
68
+ * @summary Instantiates an injectable class using its constructor and the provided arguments.
69
+ * @template T Type of the object to build
70
+ * @param {Record<string, any>} obj Object containing the name of the injectable to build
71
+ * @param {any[]} args Constructor arguments to pass when instantiating the injectable
72
+ * @return {T} The newly created instance
30
73
  */
31
74
  static build<T>(obj: Record<string, any>, ...args: any[]): T;
32
75
  /**
33
- * @summary Sets a new {@link InjectablesRegistry}
34
- * @param {InjectablesRegistry} operationsRegistry the new implementation of Registry
76
+ * @description Replaces the current registry implementation.
77
+ * @summary Sets a new {@link InjectablesRegistry} implementation, allowing for custom registry behavior.
78
+ * @param {InjectablesRegistry} operationsRegistry The new implementation of Registry to use
79
+ * @return {void}
35
80
  */
36
81
  static setRegistry(operationsRegistry: InjectablesRegistry): void;
37
82
  /**
38
- * @summary Returns the current {@link InjectablesRegistry}
83
+ * @description Provides access to the current registry instance.
84
+ * @summary Returns the current {@link InjectablesRegistry} or creates a default one if none exists.
85
+ * @return {InjectablesRegistry} The current registry instance
39
86
  */
40
87
  private static getRegistry;
88
+ /**
89
+ * @description Clears all registered injectables.
90
+ * @summary Resets the registry to a clean state by creating a new empty registry instance.
91
+ * @return {void}
92
+ */
41
93
  static reset(): void;
94
+ /**
95
+ * @description Removes specific injectables from the registry based on a pattern.
96
+ * @summary Selectively resets the registry by removing only the injectables whose names match the provided pattern.
97
+ * @param {string | RegExp} match A string or regular expression pattern to match against injectable names
98
+ * @return {void}
99
+ */
42
100
  static selectiveReset(match: string | RegExp): void;
43
101
  }
package/lib/constants.cjs CHANGED
@@ -2,18 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InjectablesKeys = void 0;
4
4
  /**
5
- * @summary Injectables Reflection keys
6
- * @const InjectablesKeys
5
+ * @description Constants used for reflection metadata keys in the dependency injection system.
6
+ * @summary Injectables Reflection keys used to store and retrieve metadata about injectable classes and properties.
7
7
  *
8
- * @property {string} REFLECT Reflection injectables base key
9
- * @property {string} INJECTABLE Reflection injectable key
10
- * @property {string} INJECT Reflection inject key
8
+ * @property {string} REFLECT Reflection injectables base key prefix for all metadata keys
9
+ * @property {string} INJECTABLE Reflection key suffix for marking a class as injectable
10
+ * @property {string} INJECT Reflection key suffix for marking a property for injection
11
11
  *
12
- * @memberOf injectable-decorators
12
+ * @const InjectablesKeys
13
+ * @memberOf module:injectable-decorators
13
14
  */
14
15
  exports.InjectablesKeys = {
15
16
  REFLECT: "inject.db.",
16
17
  INJECTABLE: "injectable",
17
18
  INJECT: "inject",
18
19
  };
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7Ozs7O0dBU0c7QUFDVSxRQUFBLGVBQWUsR0FBRztJQUM3QixPQUFPLEVBQUUsWUFBWTtJQUNyQixVQUFVLEVBQUUsWUFBWTtJQUN4QixNQUFNLEVBQUUsUUFBUTtDQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc3VtbWFyeSBJbmplY3RhYmxlcyBSZWZsZWN0aW9uIGtleXNcbiAqIEBjb25zdCBJbmplY3RhYmxlc0tleXNcbiAqXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUkVGTEVDVCBSZWZsZWN0aW9uIGluamVjdGFibGVzIGJhc2Uga2V5XG4gKiBAcHJvcGVydHkge3N0cmluZ30gSU5KRUNUQUJMRSBSZWZsZWN0aW9uIGluamVjdGFibGUga2V5XG4gKiBAcHJvcGVydHkge3N0cmluZ30gSU5KRUNUIFJlZmxlY3Rpb24gaW5qZWN0IGtleVxuICpcbiAqIEBtZW1iZXJPZiBpbmplY3RhYmxlLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEluamVjdGFibGVzS2V5cyA9IHtcbiAgUkVGTEVDVDogXCJpbmplY3QuZGIuXCIsXG4gIElOSkVDVEFCTEU6IFwiaW5qZWN0YWJsZVwiLFxuICBJTkpFQ1Q6IFwiaW5qZWN0XCIsXG59O1xuIl19
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7Ozs7OztHQVVHO0FBQ1UsUUFBQSxlQUFlLEdBQUc7SUFDN0IsT0FBTyxFQUFFLFlBQVk7SUFDckIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsTUFBTSxFQUFFLFFBQVE7Q0FDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlc2NyaXB0aW9uIENvbnN0YW50cyB1c2VkIGZvciByZWZsZWN0aW9uIG1ldGFkYXRhIGtleXMgaW4gdGhlIGRlcGVuZGVuY3kgaW5qZWN0aW9uIHN5c3RlbS5cbiAqIEBzdW1tYXJ5IEluamVjdGFibGVzIFJlZmxlY3Rpb24ga2V5cyB1c2VkIHRvIHN0b3JlIGFuZCByZXRyaWV2ZSBtZXRhZGF0YSBhYm91dCBpbmplY3RhYmxlIGNsYXNzZXMgYW5kIHByb3BlcnRpZXMuXG4gKiBcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSRUZMRUNUIFJlZmxlY3Rpb24gaW5qZWN0YWJsZXMgYmFzZSBrZXkgcHJlZml4IGZvciBhbGwgbWV0YWRhdGEga2V5c1xuICogQHByb3BlcnR5IHtzdHJpbmd9IElOSkVDVEFCTEUgUmVmbGVjdGlvbiBrZXkgc3VmZml4IGZvciBtYXJraW5nIGEgY2xhc3MgYXMgaW5qZWN0YWJsZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IElOSkVDVCBSZWZsZWN0aW9uIGtleSBzdWZmaXggZm9yIG1hcmtpbmcgYSBwcm9wZXJ0eSBmb3IgaW5qZWN0aW9uXG4gKiBcbiAqIEBjb25zdCBJbmplY3RhYmxlc0tleXNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBJbmplY3RhYmxlc0tleXMgPSB7XG4gIFJFRkxFQ1Q6IFwiaW5qZWN0LmRiLlwiLFxuICBJTkpFQ1RBQkxFOiBcImluamVjdGFibGVcIixcbiAgSU5KRUNUOiBcImluamVjdFwiLFxufTtcbiJdfQ==
@@ -1,12 +1,13 @@
1
1
  /**
2
- * @summary Injectables Reflection keys
3
- * @const InjectablesKeys
2
+ * @description Constants used for reflection metadata keys in the dependency injection system.
3
+ * @summary Injectables Reflection keys used to store and retrieve metadata about injectable classes and properties.
4
4
  *
5
- * @property {string} REFLECT Reflection injectables base key
6
- * @property {string} INJECTABLE Reflection injectable key
7
- * @property {string} INJECT Reflection inject key
5
+ * @property {string} REFLECT Reflection injectables base key prefix for all metadata keys
6
+ * @property {string} INJECTABLE Reflection key suffix for marking a class as injectable
7
+ * @property {string} INJECT Reflection key suffix for marking a property for injection
8
8
  *
9
- * @memberOf injectable-decorators
9
+ * @const InjectablesKeys
10
+ * @memberOf module:injectable-decorators
10
11
  */
11
12
  export declare const InjectablesKeys: {
12
13
  REFLECT: string;