@zanobijs/core 1.2.0-beta.1 → 1.2.0-beta.2

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 CHANGED
@@ -3,6 +3,12 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.2.0-beta.2](https://github.com/devdroide/ZanobiJS/compare/v1.2.0-beta.1...v1.2.0-beta.2) (2025-06-08)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **core,test:** The injection of provider asValue and asFunction that is done in entities was corrected ([83ae3c1](https://github.com/devdroide/ZanobiJS/commit/83ae3c164b28cdc9747c524b8595a1b86257a957))
11
+
6
12
  # [1.2.0-beta.1](https://github.com/devdroide/ZanobiJS/compare/v1.2.0-beta.0...v1.2.0-beta.1) (2025-06-05)
7
13
 
8
14
  ### Bug Fixes
package/factory.d.ts CHANGED
@@ -14,16 +14,30 @@ export declare class Factory {
14
14
  private logger;
15
15
  private options;
16
16
  constructor(appModule: TClass, options?: IFactoryOptions);
17
+ /**
18
+ * Se encarga de escaenear modulo por modulo los proveedores con el fin de luego
19
+ * poder ser registrados e inyectados en quien depende de ese proveedor
20
+ * @param {TClass} module - Módulo desde el que se escanearan los proveedores.
21
+ * @private
22
+ */
17
23
  private scanProviderModule;
24
+ /**
25
+ * Se encarga tomar la lista de proveedores y registralos para luego se resueltos
26
+ * cuando el usuario lo solicite
27
+ * @private
28
+ */
18
29
  private registerProviderScanedModules;
19
30
  /**
20
- * Registra clases desde un módulo específico.
31
+ * Procesa modulo por modulos registrando los controladores, servicios y proveedores,
32
+ * estos se le irá inyectando sus dependecias resueltas para ser usados por el usuario
21
33
  * @param {TClass} module - Módulo desde el que se registrarán las clases.
22
34
  * @private
23
35
  */
24
36
  private processClassModule;
25
37
  /**
26
- * Crea el contenedor de inyección de dependencias y registra las clases.
38
+ * Crea el contenedor de inyección de dependencias y registra el listado de
39
+ * controladores, servicio y proveedores que se ha venido creando a parti de escaneos
40
+ * y registros de clases.
27
41
  * @returns {Factory} - Instancia actual de la fábrica.
28
42
  */
29
43
  create(): Factory;
@@ -34,5 +48,8 @@ export declare class Factory {
34
48
  * @returns {T} - Instancia resuelta.
35
49
  */
36
50
  get<T>(className: string): T;
51
+ /**
52
+ * Se encarga de evaluar las opciones para ver si o no aplica y realizar lo correspondiente
53
+ */
37
54
  private evaluateOptions;
38
55
  }
package/factory.js CHANGED
@@ -29,6 +29,12 @@ class Factory {
29
29
  this.registerProviderScanedModules();
30
30
  this.processClassModule(appModule);
31
31
  }
32
+ /**
33
+ * Se encarga de escaenear modulo por modulo los proveedores con el fin de luego
34
+ * poder ser registrados e inyectados en quien depende de ese proveedor
35
+ * @param {TClass} module - Módulo desde el que se escanearan los proveedores.
36
+ * @private
37
+ */
32
38
  scanProviderModule(module) {
33
39
  this.logger.debug('Factory - Scan Module:', module.name);
34
40
  this.moduleHandler.setup(module);
@@ -41,11 +47,17 @@ class Factory {
41
47
  });
42
48
  }
43
49
  }
50
+ /**
51
+ * Se encarga tomar la lista de proveedores y registralos para luego se resueltos
52
+ * cuando el usuario lo solicite
53
+ * @private
54
+ */
44
55
  registerProviderScanedModules() {
45
56
  this.moduleHandler.registerAllProviders();
46
57
  }
47
58
  /**
48
- * Registra clases desde un módulo específico.
59
+ * Procesa modulo por modulos registrando los controladores, servicios y proveedores,
60
+ * estos se le irá inyectando sus dependecias resueltas para ser usados por el usuario
49
61
  * @param {TClass} module - Módulo desde el que se registrarán las clases.
50
62
  * @private
51
63
  */
@@ -64,7 +76,9 @@ class Factory {
64
76
  this.logger.debug('===================================================');
65
77
  }
66
78
  /**
67
- * Crea el contenedor de inyección de dependencias y registra las clases.
79
+ * Crea el contenedor de inyección de dependencias y registra el listado de
80
+ * controladores, servicio y proveedores que se ha venido creando a parti de escaneos
81
+ * y registros de clases.
68
82
  * @returns {Factory} - Instancia actual de la fábrica.
69
83
  */
70
84
  create() {
@@ -93,6 +107,9 @@ class Factory {
93
107
  throw new resolution_exception_1.ContainerResolutionException(className, resolutionError[0], error.message);
94
108
  }
95
109
  }
110
+ /**
111
+ * Se encarga de evaluar las opciones para ver si o no aplica y realizar lo correspondiente
112
+ */
96
113
  evaluateOptions() {
97
114
  if (this.options.activeLoggerSystem)
98
115
  process.env.ZANOBIJS_LOGGER = 'true';
@@ -87,8 +87,8 @@ class Injector {
87
87
  for (const key of dInject.keys()) {
88
88
  if (this.listProviders.has(key)) {
89
89
  const paramName = dInject.get(key);
90
- const provider = this.listProviders.get(key);
91
- injectData[paramName] = provider;
90
+ const providerValue = this.listProviders.get(key);
91
+ injectData[paramName] = providerValue.resolve();
92
92
  }
93
93
  else {
94
94
  this.logger.important(`You are trying to inject @INJECT('${key}') into '${target.name}'`, `but the provider '${key}' and its value are not registered in '${this.moduleName}' or any other previously loaded modules`);
@@ -1,7 +1,8 @@
1
1
  import 'reflect-metadata';
2
2
  import { TClass } from '../interfaces';
3
3
  /**
4
- * Módulo para gestionar la configuración y el registro de controladores, servicios y dependencias.
4
+ * Módulo para gestionar la configuración y el registro de
5
+ * controladores, servicios, proveedores y dependencias.
5
6
  */
6
7
  export declare class Module {
7
8
  private config;
@@ -23,9 +24,18 @@ export declare class Module {
23
24
  * @param {any} module - Módulo a configurar.
24
25
  */
25
26
  setup(module: any): void;
27
+ /** Metodo de exposicion para escarnear proveedores y obtener
28
+ * la metadata del modulo que esta confirgurado(Setup) en ese momento
29
+ * @public
30
+ */
26
31
  scan(): void;
27
32
  /**
28
- * Inicializa el módulo extrayendo metadatos y registrando las entidades.
33
+ * Este metodo incializa una serie de pasos dentro de los cuales son:
34
+ * obtener la metada del modulo configurado actualmente, busca y registra
35
+ * las dependencias de las entidades (controladores y servicios), registra
36
+ * las dependencias de los proveedores que son tipo entidad (clase abst a clase)
37
+ * y registra las dependecias con alias cuando sus nombres no son iguales
38
+ * @public
29
39
  */
30
40
  initialize(): void;
31
41
  /**
@@ -37,15 +47,21 @@ export declare class Module {
37
47
  * Registra las entidades de configuración en el módulo.
38
48
  * @private
39
49
  */
40
- private registerDependencies;
50
+ private registerDependenciesFromEntity;
41
51
  /**
42
- * Registra entidades de configuración (controladores o servicios) del módulo.
52
+ * se encarga de filtrar los metadatos del modulo buscando si es controlador o servicio
53
+ * para luego buscar en los metadatos el nombre de la dependecia y de quien depende
54
+ * para se agrupado y agregarlos a la lista de clases a registrar en el contenedor.
43
55
  * @param {('controllers' | 'services')} entityType - Tipo de entidad a registrar.
44
56
  * @private
45
57
  */
46
58
  private registerEntities;
47
59
  /**
48
- * Registra entidades que se escanearon en dentro de proveedores para se reemplazar otra clase.
60
+ * Se encarga de recorrer la lista de proveedores que son tipo clase para
61
+ * luego buscar en los metadatos el nombre de la dependecia y de quien depende
62
+ * para se agrupado y agregarlos a la lista de clases a registrar en el contenedor.
63
+ * toma el proveedor que es nombre la clase o un token (nombre de pendencia)
64
+ * que va ser sustituida por la clase de useClass
49
65
  * @private
50
66
  */
51
67
  private registerEntitiesFromProvider;
@@ -72,6 +88,10 @@ export declare class Module {
72
88
  * contructor(private sA: ServiceA) // parametro con nombre diferente
73
89
  */
74
90
  private registerDependenciesToAlias;
91
+ /**
92
+ * Toma el listado proveedores y los une al listado de clases que van
93
+ * a registrar en el contenedor (asValue y asFunction) para ser resueltos
94
+ */
75
95
  registerAllProviders(): void;
76
96
  /**
77
97
  * Devuelve las importaciones del módulo.
@@ -10,7 +10,8 @@ const metadata_1 = require("../metadata");
10
10
  const exceptions_1 = require("../exceptions");
11
11
  const invalidProvider_module_exception_1 = require("../exceptions/invalidProvider.module.exception");
12
12
  /**
13
- * Módulo para gestionar la configuración y el registro de controladores, servicios y dependencias.
13
+ * Módulo para gestionar la configuración y el registro de
14
+ * controladores, servicios, proveedores y dependencias.
14
15
  */
15
16
  class Module {
16
17
  config;
@@ -44,17 +45,26 @@ class Module {
44
45
  throw new exceptions_1.InvalidModuleAnnotationException();
45
46
  }
46
47
  }
48
+ /** Metodo de exposicion para escarnear proveedores y obtener
49
+ * la metadata del modulo que esta confirgurado(Setup) en ese momento
50
+ * @public
51
+ */
47
52
  scan() {
48
53
  this.injector.scanProviders();
49
54
  this.getMetadataModule();
50
55
  }
51
56
  /**
52
- * Inicializa el módulo extrayendo metadatos y registrando las entidades.
57
+ * Este metodo incializa una serie de pasos dentro de los cuales son:
58
+ * obtener la metada del modulo configurado actualmente, busca y registra
59
+ * las dependencias de las entidades (controladores y servicios), registra
60
+ * las dependencias de los proveedores que son tipo entidad (clase abst a clase)
61
+ * y registra las dependecias con alias cuando sus nombres no son iguales
62
+ * @public
53
63
  */
54
64
  initialize() {
55
65
  this.logger.debug('Module - Initialize:', this.module.name);
56
66
  this.getMetadataModule();
57
- this.registerDependencies();
67
+ this.registerDependenciesFromEntity();
58
68
  this.registerEntitiesFromProvider();
59
69
  this.registerDependenciesToAlias();
60
70
  }
@@ -69,12 +79,14 @@ class Module {
69
79
  * Registra las entidades de configuración en el módulo.
70
80
  * @private
71
81
  */
72
- registerDependencies() {
82
+ registerDependenciesFromEntity() {
73
83
  this.registerEntities('controllers');
74
84
  this.registerEntities('services');
75
85
  }
76
86
  /**
77
- * Registra entidades de configuración (controladores o servicios) del módulo.
87
+ * se encarga de filtrar los metadatos del modulo buscando si es controlador o servicio
88
+ * para luego buscar en los metadatos el nombre de la dependecia y de quien depende
89
+ * para se agrupado y agregarlos a la lista de clases a registrar en el contenedor.
78
90
  * @param {('controllers' | 'services')} entityType - Tipo de entidad a registrar.
79
91
  * @private
80
92
  */
@@ -103,7 +115,11 @@ class Module {
103
115
  }
104
116
  }
105
117
  /**
106
- * Registra entidades que se escanearon en dentro de proveedores para se reemplazar otra clase.
118
+ * Se encarga de recorrer la lista de proveedores que son tipo clase para
119
+ * luego buscar en los metadatos el nombre de la dependecia y de quien depende
120
+ * para se agrupado y agregarlos a la lista de clases a registrar en el contenedor.
121
+ * toma el proveedor que es nombre la clase o un token (nombre de pendencia)
122
+ * que va ser sustituida por la clase de useClass
107
123
  * @private
108
124
  */
109
125
  registerEntitiesFromProvider() {
@@ -167,6 +183,10 @@ class Module {
167
183
  }
168
184
  });
169
185
  }
186
+ /**
187
+ * Toma el listado proveedores y los une al listado de clases que van
188
+ * a registrar en el contenedor (asValue y asFunction) para ser resueltos
189
+ */
170
190
  registerAllProviders() {
171
191
  this.logger.debug('Module - Register list provider:', this.module.name);
172
192
  const listProviders = this.injector.getAllProvider();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zanobijs/core",
3
- "version": "1.2.0-beta.1",
3
+ "version": "1.2.0-beta.2",
4
4
  "description": "Zanobi - modern, small, powerful node.js lambda framework (@core)",
5
5
  "keywords": [],
6
6
  "author": "John Edison Cortes Rivera [Devdroide] <johne.aplicativos@gmail.com>",
@@ -29,5 +29,5 @@
29
29
  "peerDependencies": {
30
30
  "@zanobijs/common": "*"
31
31
  },
32
- "gitHead": "30085eedbf67b5ddcd588ad11a4b3e7782f66d87"
32
+ "gitHead": "9eea2d0fd88769931296ebe578beb19f745fac88"
33
33
  }