@venizia/ignis-boot 0.0.4-0 → 0.0.4
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 +184 -117
- package/dist/cjs/base/base-artifact-booter.d.ts.map +1 -1
- package/dist/cjs/base/base-artifact-booter.js +2 -8
- package/dist/cjs/base/base-artifact-booter.js.map +1 -1
- package/dist/cjs/booters/controller.booter.d.ts.map +1 -1
- package/dist/cjs/booters/controller.booter.js +0 -3
- package/dist/cjs/booters/controller.booter.js.map +1 -1
- package/dist/cjs/booters/datasource.booter.d.ts.map +1 -1
- package/dist/cjs/booters/datasource.booter.js +0 -3
- package/dist/cjs/booters/datasource.booter.js.map +1 -1
- package/dist/cjs/booters/repository.booter.d.ts.map +1 -1
- package/dist/cjs/booters/repository.booter.js +0 -3
- package/dist/cjs/booters/repository.booter.js.map +1 -1
- package/dist/cjs/booters/service.booter.d.ts.map +1 -1
- package/dist/cjs/booters/service.booter.js +0 -3
- package/dist/cjs/booters/service.booter.js.map +1 -1
- package/dist/cjs/bootstrapper.d.ts +0 -8
- package/dist/cjs/bootstrapper.d.ts.map +1 -1
- package/dist/cjs/bootstrapper.js +0 -12
- package/dist/cjs/bootstrapper.js.map +1 -1
- package/dist/cjs/common/types.d.ts +0 -8
- package/dist/cjs/common/types.d.ts.map +1 -1
- package/dist/cjs/common/types.js.map +1 -1
- package/dist/cjs/utilities/boot.utility.d.ts +3 -20
- package/dist/cjs/utilities/boot.utility.d.ts.map +1 -1
- package/dist/cjs/utilities/boot.utility.js +3 -20
- package/dist/cjs/utilities/boot.utility.js.map +1 -1
- package/dist/esm/base/base-artifact-booter.d.ts.map +1 -1
- package/dist/esm/base/base-artifact-booter.js +2 -8
- package/dist/esm/base/base-artifact-booter.js.map +1 -1
- package/dist/esm/booters/controller.booter.d.ts.map +1 -1
- package/dist/esm/booters/controller.booter.js +0 -3
- package/dist/esm/booters/controller.booter.js.map +1 -1
- package/dist/esm/booters/datasource.booter.d.ts.map +1 -1
- package/dist/esm/booters/datasource.booter.js +0 -3
- package/dist/esm/booters/datasource.booter.js.map +1 -1
- package/dist/esm/booters/repository.booter.d.ts.map +1 -1
- package/dist/esm/booters/repository.booter.js +0 -3
- package/dist/esm/booters/repository.booter.js.map +1 -1
- package/dist/esm/booters/service.booter.d.ts.map +1 -1
- package/dist/esm/booters/service.booter.js +0 -3
- package/dist/esm/booters/service.booter.js.map +1 -1
- package/dist/esm/bootstrapper.d.ts +0 -8
- package/dist/esm/bootstrapper.d.ts.map +1 -1
- package/dist/esm/bootstrapper.js +0 -12
- package/dist/esm/bootstrapper.js.map +1 -1
- package/dist/esm/common/types.d.ts +0 -8
- package/dist/esm/common/types.d.ts.map +1 -1
- package/dist/esm/common/types.js.map +1 -1
- package/dist/esm/utilities/boot.utility.d.ts +3 -20
- package/dist/esm/utilities/boot.utility.d.ts.map +1 -1
- package/dist/esm/utilities/boot.utility.js +3 -20
- package/dist/esm/utilities/boot.utility.js.map +1 -1
- package/package.json +2 -2
|
@@ -18,15 +18,12 @@ let ServiceBooter = ServiceBooter_1 = class ServiceBooter extends BaseArtifactBo
|
|
|
18
18
|
super({ scope: ServiceBooter_1.name, root, artifactOptions: bootOptions.services ?? {} });
|
|
19
19
|
this.application = application;
|
|
20
20
|
}
|
|
21
|
-
// --------------------------------------------------------------------------------
|
|
22
21
|
getDefaultDirs() {
|
|
23
22
|
return ['services'];
|
|
24
23
|
}
|
|
25
|
-
// --------------------------------------------------------------------------------
|
|
26
24
|
getDefaultExtensions() {
|
|
27
25
|
return ['.service.js'];
|
|
28
26
|
}
|
|
29
|
-
// --------------------------------------------------------------------------------
|
|
30
27
|
async bind() {
|
|
31
28
|
for (const cls of this.loadedClasses) {
|
|
32
29
|
const key = BindingKeys.build({ namespace: 'services', key: cls.name });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.booter.js","sourceRoot":"","sources":["../../../src/booters/service.booter.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAE/D,IAAa,aAAa,qBAA1B,MAAa,aAAc,SAAQ,kBAAkB;IACnD,YACwC,IAAY,EACN,WAAyB,EAC/B,WAAyB;QAE/D,KAAK,CAAC,EAAE,KAAK,EAAE,eAAa,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC;QAH5C,gBAAW,GAAX,WAAW,CAAc;IAIvE,CAAC;
|
|
1
|
+
{"version":3,"file":"service.booter.js","sourceRoot":"","sources":["../../../src/booters/service.booter.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAE/D,IAAa,aAAa,qBAA1B,MAAa,aAAc,SAAQ,kBAAkB;IACnD,YACwC,IAAY,EACN,WAAyB,EAC/B,WAAyB;QAE/D,KAAK,CAAC,EAAE,KAAK,EAAE,eAAa,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC;QAH5C,gBAAW,GAAX,WAAW,CAAc;IAIvE,CAAC;IAEkB,cAAc;QAC/B,OAAO,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;IAEkB,oBAAoB;QACrC,OAAO,CAAC,aAAa,CAAC,CAAC;IACzB,CAAC;IAEkB,KAAK,CAAC,IAAI;QAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACxE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAChE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF,CAAA;AAxBY,aAAa;IAErB,WAAA,MAAM,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,CAAC,CAAA;IACpC,WAAA,MAAM,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC,CAAA;IAChC,WAAA,MAAM,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,CAAC,CAAA;;GAJ5B,aAAa,CAwBzB"}
|
|
@@ -1,13 +1,5 @@
|
|
|
1
1
|
import { IApplication, IBootExecutionOptions, IBootReport, IBootstrapper } from './common/types';
|
|
2
2
|
import { BaseHelper } from '@venizia/ignis-helpers';
|
|
3
|
-
/**
|
|
4
|
-
* BaseBootstrapper orchestrates the boot process
|
|
5
|
-
*
|
|
6
|
-
* Responsibilities:
|
|
7
|
-
* 1. Discover all booters
|
|
8
|
-
* 2. Run boot phases (configure, discover, load)
|
|
9
|
-
* 3. Generate boot report
|
|
10
|
-
*/
|
|
11
3
|
export declare class Bootstrapper extends BaseHelper implements IBootstrapper {
|
|
12
4
|
private readonly application;
|
|
13
5
|
private booters;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrapper.d.ts","sourceRoot":"","sources":["../../src/bootstrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EAEZ,qBAAqB,EACrB,WAAW,EACX,aAAa,EAEd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAY,MAAM,wBAAwB,CAAC;AAG9D
|
|
1
|
+
{"version":3,"file":"bootstrapper.d.ts","sourceRoot":"","sources":["../../src/bootstrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EAEZ,qBAAqB,EACrB,WAAW,EACX,aAAa,EAEd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAY,MAAM,wBAAwB,CAAC;AAG9D,qBAAa,YAAa,SAAQ,UAAW,YAAW,aAAa;IAKrB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAJ1E,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,eAAe,CAAkC;gBAEM,WAAW,EAAE,YAAY;IAIlF,IAAI,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC;YAa/C,eAAe;YASf,QAAQ;IAoDtB,OAAO,CAAC,cAAc;CAMvB"}
|
package/dist/esm/bootstrapper.js
CHANGED
|
@@ -14,14 +14,6 @@ var Bootstrapper_1;
|
|
|
14
14
|
import { BOOT_PHASES, } from './common/types';
|
|
15
15
|
import { BaseHelper, getError } from '@venizia/ignis-helpers';
|
|
16
16
|
import { inject } from '@venizia/ignis-inversion';
|
|
17
|
-
/**
|
|
18
|
-
* BaseBootstrapper orchestrates the boot process
|
|
19
|
-
*
|
|
20
|
-
* Responsibilities:
|
|
21
|
-
* 1. Discover all booters
|
|
22
|
-
* 2. Run boot phases (configure, discover, load)
|
|
23
|
-
* 3. Generate boot report
|
|
24
|
-
*/
|
|
25
17
|
let Bootstrapper = Bootstrapper_1 = class Bootstrapper extends BaseHelper {
|
|
26
18
|
constructor(application) {
|
|
27
19
|
super({ scope: Bootstrapper_1.name });
|
|
@@ -30,7 +22,6 @@ let Bootstrapper = Bootstrapper_1 = class Bootstrapper extends BaseHelper {
|
|
|
30
22
|
this.phaseStartTimings = new Map();
|
|
31
23
|
this.phaseEndTimings = new Map();
|
|
32
24
|
}
|
|
33
|
-
// --------------------------------------------------------------------------------
|
|
34
25
|
async boot(opts) {
|
|
35
26
|
const { phases = BOOT_PHASES, booters } = opts;
|
|
36
27
|
await this.discoverBooters();
|
|
@@ -42,7 +33,6 @@ let Bootstrapper = Bootstrapper_1 = class Bootstrapper extends BaseHelper {
|
|
|
42
33
|
}
|
|
43
34
|
return this.generateReport();
|
|
44
35
|
}
|
|
45
|
-
// --------------------------------------------------------------------------------
|
|
46
36
|
async discoverBooters() {
|
|
47
37
|
const booterBindings = this.application.findByTag({ tag: 'booter' });
|
|
48
38
|
for (const binding of booterBindings) {
|
|
@@ -50,7 +40,6 @@ let Bootstrapper = Bootstrapper_1 = class Bootstrapper extends BaseHelper {
|
|
|
50
40
|
this.logger.for(this.discoverBooters.name).debug(`Discovered booter: %s`, binding.key);
|
|
51
41
|
}
|
|
52
42
|
}
|
|
53
|
-
// --------------------------------------------------------------------------------
|
|
54
43
|
async runPhase(opts) {
|
|
55
44
|
const { phase } = opts; // TODO: booterNames filtering can be implemented later
|
|
56
45
|
this.phaseStartTimings.set(phase, performance.now());
|
|
@@ -90,7 +79,6 @@ let Bootstrapper = Bootstrapper_1 = class Bootstrapper extends BaseHelper {
|
|
|
90
79
|
.for(this.runPhase.name)
|
|
91
80
|
.debug(`Completed phase: %s | Took: %d ms`, phase.toUpperCase(), duration);
|
|
92
81
|
}
|
|
93
|
-
// --------------------------------------------------------------------------------
|
|
94
82
|
generateReport() {
|
|
95
83
|
const report = {};
|
|
96
84
|
this.logger.for(this.generateReport.name).debug(`Boot report: %j`, report);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrapper.js","sourceRoot":"","sources":["../../src/bootstrapper.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,OAAO,EACL,WAAW,GAOZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD
|
|
1
|
+
{"version":3,"file":"bootstrapper.js","sourceRoot":"","sources":["../../src/bootstrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,15 +33,7 @@ export interface IBooter {
|
|
|
33
33
|
load(): ValueOrPromise<void>;
|
|
34
34
|
}
|
|
35
35
|
export interface IBootExecutionOptions {
|
|
36
|
-
/**
|
|
37
|
-
* Phases to execute
|
|
38
|
-
* @default ['configure', 'discover', 'load']
|
|
39
|
-
*/
|
|
40
36
|
phases?: TBootPhase[];
|
|
41
|
-
/**
|
|
42
|
-
* Specific booters to run (by name)
|
|
43
|
-
* If not specified, all booters are run
|
|
44
|
-
*/
|
|
45
37
|
booters?: string[];
|
|
46
38
|
}
|
|
47
39
|
export interface IBootstrapper {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,CAAC,YAAY,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,UAAU,CAAC,CAAC;AAExD,eAAO,MAAM,WAAW,EAAE,UAAU,EAAsC,CAAC;AAE3E,MAAM,WAAW,YAAa,SAAQ,SAAS;IAC7C,cAAc,IAAI,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,gBAAgB,CAAC;CACnC;AAED,MAAM,WAAW,OAAO;IACtB,SAAS,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;IAClC,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,WAAW;CAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAqBA,MAAM,CAAC,MAAM,WAAW,GAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC"}
|
|
@@ -1,29 +1,12 @@
|
|
|
1
1
|
import { AnyType, TClass } from '@venizia/ignis-helpers';
|
|
2
|
-
/**
|
|
3
|
-
* Check if a value is a class constructor
|
|
4
|
-
*
|
|
5
|
-
* @param target - Target to check
|
|
6
|
-
* @returns True if target is a class
|
|
7
|
-
*/
|
|
2
|
+
/** Check if a value is a class constructor. */
|
|
8
3
|
export declare const isClass: <T>(target: AnyType) => target is TClass<T>;
|
|
9
|
-
/**
|
|
10
|
-
* Discover files matching a glob pattern
|
|
11
|
-
*
|
|
12
|
-
* @param pattern - Glob pattern
|
|
13
|
-
* @param root - Root directory
|
|
14
|
-
* @returns Array of absolute file paths
|
|
15
|
-
*/
|
|
4
|
+
/** Discover files matching a glob pattern. */
|
|
16
5
|
export declare const discoverFiles: (opts: {
|
|
17
6
|
pattern: string;
|
|
18
7
|
root: string;
|
|
19
8
|
}) => Promise<string[]>;
|
|
20
|
-
/**
|
|
21
|
-
* Load classes from files
|
|
22
|
-
*
|
|
23
|
-
* @param files - Array of file paths
|
|
24
|
-
* @param root - Root directory (for relative paths in errors)
|
|
25
|
-
* @returns Array of class constructors
|
|
26
|
-
*/
|
|
9
|
+
/** Load classes from discovered files via dynamic import. */
|
|
27
10
|
export declare const loadClasses: (opts: {
|
|
28
11
|
files: string[];
|
|
29
12
|
root: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boot.utility.d.ts","sourceRoot":"","sources":["../../../src/utilities/boot.utility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGnE
|
|
1
|
+
{"version":3,"file":"boot.utility.d.ts","sourceRoot":"","sources":["../../../src/utilities/boot.utility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGnE,+CAA+C;AAC/C,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,QAAQ,OAAO,KAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAE9D,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,aAAa,EAAE,CAAC,IAAI,EAAE;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,KAAK,OAAO,CAAC,MAAM,EAAE,CAYrB,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,WAAW,EAAE,CAAC,IAAI,EAAE;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,KAAK,OAAO,CAAC,OAAO,EAAE,CAuBtB,CAAC"}
|
|
@@ -1,21 +1,10 @@
|
|
|
1
1
|
import { getError } from '@venizia/ignis-helpers';
|
|
2
2
|
import { glob } from 'glob';
|
|
3
|
-
/**
|
|
4
|
-
* Check if a value is a class constructor
|
|
5
|
-
*
|
|
6
|
-
* @param target - Target to check
|
|
7
|
-
* @returns True if target is a class
|
|
8
|
-
*/
|
|
3
|
+
/** Check if a value is a class constructor. */
|
|
9
4
|
export const isClass = (target) => {
|
|
10
5
|
return typeof target === 'function' && target.prototype !== undefined;
|
|
11
6
|
};
|
|
12
|
-
/**
|
|
13
|
-
* Discover files matching a glob pattern
|
|
14
|
-
*
|
|
15
|
-
* @param pattern - Glob pattern
|
|
16
|
-
* @param root - Root directory
|
|
17
|
-
* @returns Array of absolute file paths
|
|
18
|
-
*/
|
|
7
|
+
/** Discover files matching a glob pattern. */
|
|
19
8
|
export const discoverFiles = async (opts) => {
|
|
20
9
|
const { pattern, root } = opts;
|
|
21
10
|
try {
|
|
@@ -29,13 +18,7 @@ export const discoverFiles = async (opts) => {
|
|
|
29
18
|
});
|
|
30
19
|
}
|
|
31
20
|
};
|
|
32
|
-
/**
|
|
33
|
-
* Load classes from files
|
|
34
|
-
*
|
|
35
|
-
* @param files - Array of file paths
|
|
36
|
-
* @param root - Root directory (for relative paths in errors)
|
|
37
|
-
* @returns Array of class constructors
|
|
38
|
-
*/
|
|
21
|
+
/** Load classes from discovered files via dynamic import. */
|
|
39
22
|
export const loadClasses = async (opts) => {
|
|
40
23
|
const { files } = opts;
|
|
41
24
|
const classes = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boot.utility.js","sourceRoot":"","sources":["../../../src/utilities/boot.utility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,QAAQ,EAAU,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B
|
|
1
|
+
{"version":3,"file":"boot.utility.js","sourceRoot":"","sources":["../../../src/utilities/boot.utility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,QAAQ,EAAU,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,+CAA+C;AAC/C,MAAM,CAAC,MAAM,OAAO,GAAG,CAAI,MAAe,EAAuB,EAAE;IACjE,OAAO,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC;AACxE,CAAC,CAAC;AAEF,8CAA8C;AAC9C,MAAM,CAAC,MAAM,aAAa,GAGA,KAAK,EAAC,IAAI,EAAC,EAAE;IACrC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAE/B,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,OAAO,UAAU,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAI,KAAe,CAAC,OAAO,IAAI,eAAe,CAAC;QACjE,MAAM,QAAQ,CAAC;YACb,OAAO,EAAE,0CAA0C,OAAO,aAAa,YAAY,EAAE;SACtF,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC;AAEF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,WAAW,GAGG,KAAK,EAAC,IAAI,EAAC,EAAE;IACtC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACvB,MAAM,OAAO,GAAsB,EAAE,CAAC;IAEtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAClC,KAAK,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACvB,SAAS;gBACX,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAI,KAAe,CAAC,OAAO,IAAI,eAAe,CAAC;YACjE,MAAM,QAAQ,CAAC;gBACb,OAAO,EAAE,wBAAwB,IAAI,aAAa,YAAY,EAAE;aACjE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@venizia/ignis-boot",
|
|
3
|
-
"version": "0.0.4
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "Convention-based auto-discovery and bootstrapping system for TypeScript applications. Three-phase lifecycle (configure, discover, load) using glob-based file matching and Template Method pattern. Auto-registers controllers, services, repositories, and datasources into the IoC container by file naming conventions. Inspired by LoopBack 4 boot system. Extensible via custom booters for any artifact type.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"artifact-discovery",
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
"test:watch": "NODE_ENV=test bun test --watch --env-file=.env.test dist/cjs/__tests__/{**/**,**}/*.test.js"
|
|
99
99
|
},
|
|
100
100
|
"dependencies": {
|
|
101
|
-
"@venizia/ignis-helpers": "^0.0.
|
|
101
|
+
"@venizia/ignis-helpers": "^0.0.7",
|
|
102
102
|
"@venizia/ignis-inversion": "^0.0.5",
|
|
103
103
|
"glob": "^13.0.6",
|
|
104
104
|
"lodash": "^4.17.23",
|