@venizia/ignis-boot 0.0.1-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.
- package/LICENSE.md +75 -0
- package/dist/cjs/base/base-artifact-booter.d.ts +18 -0
- package/dist/cjs/base/base-artifact-booter.d.ts.map +1 -0
- package/dist/cjs/base/base-artifact-booter.js +89 -0
- package/dist/cjs/base/base-artifact-booter.js.map +1 -0
- package/dist/cjs/base/index.d.ts +2 -0
- package/dist/cjs/base/index.d.ts.map +1 -0
- package/dist/cjs/base/index.js +18 -0
- package/dist/cjs/base/index.js.map +1 -0
- package/dist/cjs/boot.mixin.d.ts +54 -0
- package/dist/cjs/boot.mixin.d.ts.map +1 -0
- package/dist/cjs/boot.mixin.js +25 -0
- package/dist/cjs/boot.mixin.js.map +1 -0
- package/dist/cjs/booters/controller.booter.d.ts +10 -0
- package/dist/cjs/booters/controller.booter.d.ts.map +1 -0
- package/dist/cjs/booters/controller.booter.js +48 -0
- package/dist/cjs/booters/controller.booter.js.map +1 -0
- package/dist/cjs/booters/datasource.booter.d.ts +10 -0
- package/dist/cjs/booters/datasource.booter.d.ts.map +1 -0
- package/dist/cjs/booters/datasource.booter.js +48 -0
- package/dist/cjs/booters/datasource.booter.js.map +1 -0
- package/dist/cjs/booters/index.d.ts +5 -0
- package/dist/cjs/booters/index.d.ts.map +1 -0
- package/dist/cjs/booters/index.js +21 -0
- package/dist/cjs/booters/index.js.map +1 -0
- package/dist/cjs/booters/repository.booter.d.ts +10 -0
- package/dist/cjs/booters/repository.booter.d.ts.map +1 -0
- package/dist/cjs/booters/repository.booter.js +48 -0
- package/dist/cjs/booters/repository.booter.js.map +1 -0
- package/dist/cjs/booters/service.booter.d.ts +10 -0
- package/dist/cjs/booters/service.booter.d.ts.map +1 -0
- package/dist/cjs/booters/service.booter.js +48 -0
- package/dist/cjs/booters/service.booter.js.map +1 -0
- package/dist/cjs/bootstrapper.d.ts +22 -0
- package/dist/cjs/bootstrapper.d.ts.map +1 -0
- package/dist/cjs/bootstrapper.js +98 -0
- package/dist/cjs/bootstrapper.js.map +1 -0
- package/dist/cjs/common/constants.d.ts +6 -0
- package/dist/cjs/common/constants.d.ts.map +1 -0
- package/dist/cjs/common/constants.js +10 -0
- package/dist/cjs/common/constants.js.map +1 -0
- package/dist/cjs/common/index.d.ts +3 -0
- package/dist/cjs/common/index.d.ts.map +1 -0
- package/dist/cjs/common/index.js +19 -0
- package/dist/cjs/common/index.js.map +1 -0
- package/dist/cjs/common/types.d.ts +52 -0
- package/dist/cjs/common/types.d.ts.map +1 -0
- package/dist/cjs/common/types.js +5 -0
- package/dist/cjs/common/types.js.map +1 -0
- package/dist/cjs/index.d.ts +7 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +23 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/utilities/boot.utility.d.ts +31 -0
- package/dist/cjs/utilities/boot.utility.d.ts.map +1 -0
- package/dist/cjs/utilities/boot.utility.js +67 -0
- package/dist/cjs/utilities/boot.utility.js.map +1 -0
- package/dist/cjs/utilities/index.d.ts +2 -0
- package/dist/cjs/utilities/index.d.ts.map +1 -0
- package/dist/cjs/utilities/index.js +18 -0
- package/dist/cjs/utilities/index.js.map +1 -0
- package/dist/esm/base/base-artifact-booter.d.ts +18 -0
- package/dist/esm/base/base-artifact-booter.d.ts.map +1 -0
- package/dist/esm/base/base-artifact-booter.js +85 -0
- package/dist/esm/base/base-artifact-booter.js.map +1 -0
- package/dist/esm/base/index.d.ts +2 -0
- package/dist/esm/base/index.d.ts.map +1 -0
- package/dist/esm/base/index.js +2 -0
- package/dist/esm/base/index.js.map +1 -0
- package/dist/esm/boot.mixin.d.ts +54 -0
- package/dist/esm/boot.mixin.d.ts.map +1 -0
- package/dist/esm/boot.mixin.js +21 -0
- package/dist/esm/boot.mixin.js.map +1 -0
- package/dist/esm/booters/controller.booter.d.ts +10 -0
- package/dist/esm/booters/controller.booter.d.ts.map +1 -0
- package/dist/esm/booters/controller.booter.js +45 -0
- package/dist/esm/booters/controller.booter.js.map +1 -0
- package/dist/esm/booters/datasource.booter.d.ts +10 -0
- package/dist/esm/booters/datasource.booter.d.ts.map +1 -0
- package/dist/esm/booters/datasource.booter.js +45 -0
- package/dist/esm/booters/datasource.booter.js.map +1 -0
- package/dist/esm/booters/index.d.ts +5 -0
- package/dist/esm/booters/index.d.ts.map +1 -0
- package/dist/esm/booters/index.js +5 -0
- package/dist/esm/booters/index.js.map +1 -0
- package/dist/esm/booters/repository.booter.d.ts +10 -0
- package/dist/esm/booters/repository.booter.d.ts.map +1 -0
- package/dist/esm/booters/repository.booter.js +45 -0
- package/dist/esm/booters/repository.booter.js.map +1 -0
- package/dist/esm/booters/service.booter.d.ts +10 -0
- package/dist/esm/booters/service.booter.d.ts.map +1 -0
- package/dist/esm/booters/service.booter.js +45 -0
- package/dist/esm/booters/service.booter.js.map +1 -0
- package/dist/esm/bootstrapper.d.ts +22 -0
- package/dist/esm/bootstrapper.d.ts.map +1 -0
- package/dist/esm/bootstrapper.js +95 -0
- package/dist/esm/bootstrapper.js.map +1 -0
- package/dist/esm/common/constants.d.ts +6 -0
- package/dist/esm/common/constants.d.ts.map +1 -0
- package/dist/esm/common/constants.js +6 -0
- package/dist/esm/common/constants.js.map +1 -0
- package/dist/esm/common/index.d.ts +3 -0
- package/dist/esm/common/index.d.ts.map +1 -0
- package/dist/esm/common/index.js +3 -0
- package/dist/esm/common/index.js.map +1 -0
- package/dist/esm/common/types.d.ts +52 -0
- package/dist/esm/common/types.d.ts.map +1 -0
- package/dist/esm/common/types.js +2 -0
- package/dist/esm/common/types.js.map +1 -0
- package/dist/esm/index.d.ts +7 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +7 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/utilities/boot.utility.d.ts +31 -0
- package/dist/esm/utilities/boot.utility.d.ts.map +1 -0
- package/dist/esm/utilities/boot.utility.js +61 -0
- package/dist/esm/utilities/boot.utility.js.map +1 -0
- package/dist/esm/utilities/index.d.ts +2 -0
- package/dist/esm/utilities/index.d.ts.map +1 -0
- package/dist/esm/utilities/index.js +2 -0
- package/dist/esm/utilities/index.js.map +1 -0
- package/package.json +82 -0
package/LICENSE.md
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Ignis Boot License
|
|
2
|
+
|
|
3
|
+
Part of the Ignis Framework - a TypeScript Server Infrastructure built on [Hono](https://hono.dev/).
|
|
4
|
+
|
|
5
|
+
## MIT License
|
|
6
|
+
|
|
7
|
+
Copyright (c) 2025 VENIZIA Ltd. Co.
|
|
8
|
+
|
|
9
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
10
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
11
|
+
in the Software without restriction, including without limitation the rights
|
|
12
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
13
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
14
|
+
furnished to do so, subject to the following conditions:
|
|
15
|
+
|
|
16
|
+
The above copyright notice and this permission notice shall be included in all
|
|
17
|
+
copies or substantial portions of the Software.
|
|
18
|
+
|
|
19
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
20
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
21
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
22
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
23
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
24
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
25
|
+
SOFTWARE.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## About @venizia/ignis-boot
|
|
30
|
+
|
|
31
|
+
This package provides application bootstrapping and artifact auto-discovery for Ignis applications.
|
|
32
|
+
|
|
33
|
+
**Key Features:**
|
|
34
|
+
- Automatic discovery and loading of controllers, services, repositories, and datasources
|
|
35
|
+
- Convention-based configuration
|
|
36
|
+
- Extensible booter system
|
|
37
|
+
- Minimal overhead with performance tracking
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Dependencies
|
|
42
|
+
|
|
43
|
+
This package uses the following open-source libraries:
|
|
44
|
+
|
|
45
|
+
| Library | License | Description |
|
|
46
|
+
|---------|---------|-------------|
|
|
47
|
+
| [@venizia/ignis-helpers](https://github.com/VENIZIA-AI/ignis) | MIT | Ignis utility helpers |
|
|
48
|
+
| [@venizia/ignis-inversion](https://github.com/VENIZIA-AI/ignis) | MIT | Ignis DI/IoC container |
|
|
49
|
+
| [glob](https://github.com/isaacs/node-glob) | ISC | File pattern matching |
|
|
50
|
+
| [lodash](https://github.com/lodash/lodash) | MIT | Utility library |
|
|
51
|
+
| [reflect-metadata](https://github.com/rbuckton/reflect-metadata) | Apache-2.0 | Metadata reflection API |
|
|
52
|
+
| [zod](https://github.com/colinhacks/zod) | MIT | TypeScript-first schema validation |
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Related Packages
|
|
57
|
+
|
|
58
|
+
Part of the Ignis monorepo:
|
|
59
|
+
|
|
60
|
+
| Package | Description |
|
|
61
|
+
|---------|-------------|
|
|
62
|
+
| `@venizia/ignis` | Core framework - controllers, services, decorators |
|
|
63
|
+
| `@venizia/ignis-boot` | **This package** - Application bootstrapping |
|
|
64
|
+
| `@venizia/ignis-helpers` | Utility helpers - logging, cron, Redis, queues, storage |
|
|
65
|
+
| `@venizia/ignis-inversion` | Dependency Injection & IoC container |
|
|
66
|
+
| `@venizia/dev-configs` | Shared ESLint, Prettier, TypeScript configurations |
|
|
67
|
+
| `@venizia/ignis-docs` | Documentation and MCP Server |
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Contributing
|
|
72
|
+
|
|
73
|
+
By contributing to Ignis, you agree that your contributions will be licensed under the MIT License.
|
|
74
|
+
|
|
75
|
+
For more information, visit: https://venizia-ai.github.io/ignis
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IArtifactOptions, IBooter, IBooterOptions } from '../common/types';
|
|
2
|
+
import { BaseHelper } from '@venizia/ignis-helpers';
|
|
3
|
+
import { TClass } from '@venizia/ignis-inversion';
|
|
4
|
+
export declare abstract class BaseArtifactBooter extends BaseHelper implements IBooter {
|
|
5
|
+
protected root: string;
|
|
6
|
+
protected artifactOptions: IArtifactOptions;
|
|
7
|
+
protected discoveredFiles: string[];
|
|
8
|
+
protected loadedClasses: TClass<any>[];
|
|
9
|
+
protected abstract getDefaultDirs(): string[];
|
|
10
|
+
protected abstract getDefaultExtensions(): string[];
|
|
11
|
+
protected abstract bind(): Promise<void>;
|
|
12
|
+
constructor(opts: IBooterOptions);
|
|
13
|
+
protected getPattern(): string;
|
|
14
|
+
configure(): Promise<void>;
|
|
15
|
+
discover(): Promise<void>;
|
|
16
|
+
load(): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=base-artifact-booter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-artifact-booter.d.ts","sourceRoot":"","sources":["../../../src/base/base-artifact-booter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAY,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,8BAAsB,kBAAmB,SAAQ,UAAW,YAAW,OAAO;IAC5E,SAAS,CAAC,IAAI,EAAE,MAAM,CAAM;IAC5B,SAAS,CAAC,eAAe,EAAE,gBAAgB,CAAM;IACjD,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE,CAAM;IACzC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAM;IAE5C,SAAS,CAAC,QAAQ,CAAC,cAAc,IAAI,MAAM,EAAE;IAC7C,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,MAAM,EAAE;IACnD,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;gBAE5B,IAAI,EAAE,cAAc;IAOhC,SAAS,CAAC,UAAU,IAAI,MAAM;IAmCxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAa1B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBzB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAgB5B"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseArtifactBooter = void 0;
|
|
4
|
+
const utilities_1 = require("../utilities");
|
|
5
|
+
const ignis_helpers_1 = require("@venizia/ignis-helpers");
|
|
6
|
+
class BaseArtifactBooter extends ignis_helpers_1.BaseHelper {
|
|
7
|
+
constructor(opts) {
|
|
8
|
+
super({ scope: opts.scope });
|
|
9
|
+
this.root = '';
|
|
10
|
+
this.artifactOptions = {};
|
|
11
|
+
this.discoveredFiles = [];
|
|
12
|
+
this.loadedClasses = [];
|
|
13
|
+
this.artifactOptions = opts.artifactOptions;
|
|
14
|
+
this.root = opts.root;
|
|
15
|
+
}
|
|
16
|
+
getPattern() {
|
|
17
|
+
// Use custom glob if provided
|
|
18
|
+
if (this.artifactOptions.glob) {
|
|
19
|
+
return this.artifactOptions.glob;
|
|
20
|
+
}
|
|
21
|
+
if (!this.artifactOptions.dirs?.length) {
|
|
22
|
+
throw (0, ignis_helpers_1.getError)({
|
|
23
|
+
message: `[getPattern] No directories specified for artifact discovery`,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
if (!this.artifactOptions.extensions?.length) {
|
|
27
|
+
throw (0, ignis_helpers_1.getError)({
|
|
28
|
+
message: `[${this.scope}][getPattern] No file extensions specified for artifact discovery`,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
const dirs = this.artifactOptions.dirs.join(',');
|
|
32
|
+
const exts = this.artifactOptions.extensions
|
|
33
|
+
.map(e => (e.startsWith('.') ? e.slice(1) : e))
|
|
34
|
+
.join(',');
|
|
35
|
+
const nested = this.artifactOptions.isNested ? '{**/*,*}' : '*'; // NOTE: only suports one level of nesting now
|
|
36
|
+
// Pattern: {dir1,dir2}/**/*.{artifact}.{ext1,ext2}
|
|
37
|
+
// Example: {private-controllers,public-controllers}/**/*.controller.{js,ts}
|
|
38
|
+
if (this.artifactOptions.dirs.length > 1 || this.artifactOptions.extensions.length > 1) {
|
|
39
|
+
return `{${dirs}}/${nested}.{${exts}}`;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
return `${dirs}/${nested}.${exts}`;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// --------------------------------------------------------------------------------
|
|
46
|
+
async configure() {
|
|
47
|
+
this.artifactOptions = {
|
|
48
|
+
dirs: this.artifactOptions?.dirs ?? this.getDefaultDirs(),
|
|
49
|
+
extensions: this.artifactOptions?.extensions ?? this.getDefaultExtensions(),
|
|
50
|
+
isNested: this.artifactOptions?.isNested ?? true,
|
|
51
|
+
glob: this.artifactOptions?.glob,
|
|
52
|
+
...this.artifactOptions,
|
|
53
|
+
};
|
|
54
|
+
this.logger.debug(`[configure] Configured: %j`, this.artifactOptions);
|
|
55
|
+
}
|
|
56
|
+
// --------------------------------------------------------------------------------
|
|
57
|
+
async discover() {
|
|
58
|
+
const pattern = this.getPattern();
|
|
59
|
+
try {
|
|
60
|
+
this.discoveredFiles = []; // Reset discovered files
|
|
61
|
+
this.discoveredFiles = await (0, utilities_1.discoverFiles)({ root: this.root, pattern });
|
|
62
|
+
this.logger.debug(`[discover] Root: %s | Using pattern: %s | Discovered file: %j`, this.root, pattern, this.discoveredFiles);
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
throw (0, ignis_helpers_1.getError)({
|
|
66
|
+
message: `[discover] Failed to discover files using pattern: ${pattern} | Error: ${error?.message}`,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// --------------------------------------------------------------------------------
|
|
71
|
+
async load() {
|
|
72
|
+
if (!this.discoveredFiles.length) {
|
|
73
|
+
this.logger.debug(`[load] No files discovered to load.`);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
this.loadedClasses = []; // Reset loaded classes
|
|
78
|
+
this.loadedClasses = await (0, utilities_1.loadClasses)({ files: this.discoveredFiles, root: this.root });
|
|
79
|
+
await this.bind();
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
throw (0, ignis_helpers_1.getError)({
|
|
83
|
+
message: `[load] Failed to load classes from discovered files | Error: ${error?.message}`,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.BaseArtifactBooter = BaseArtifactBooter;
|
|
89
|
+
//# sourceMappingURL=base-artifact-booter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-artifact-booter.js","sourceRoot":"","sources":["../../../src/base/base-artifact-booter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/base/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./base-artifact-booter"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/base/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { IBootOptions, IBootReport } from '@venizia/ignis-boot';
|
|
2
|
+
import { TMixinTarget } from '@venizia/ignis-helpers';
|
|
3
|
+
import { Container } from '@venizia/ignis-inversion';
|
|
4
|
+
export declare const BootMixin: <T extends TMixinTarget<Container>>(baseClass: T) => {
|
|
5
|
+
new (...args: any[]): {
|
|
6
|
+
bootOptions?: IBootOptions | undefined;
|
|
7
|
+
boot(): Promise<IBootReport>;
|
|
8
|
+
getMetadataRegistry: () => import("@venizia/ignis-inversion").MetadataRegistry;
|
|
9
|
+
bind: <T_1>(opts: {
|
|
10
|
+
key: string | symbol;
|
|
11
|
+
}) => import("@venizia/ignis-inversion").Binding<T_1>;
|
|
12
|
+
isBound: (opts: {
|
|
13
|
+
key: string | symbol;
|
|
14
|
+
}) => boolean;
|
|
15
|
+
getBinding: <T_1>(opts: {
|
|
16
|
+
key: string | symbol | {
|
|
17
|
+
namespace: string;
|
|
18
|
+
key: string;
|
|
19
|
+
};
|
|
20
|
+
}) => import("@venizia/ignis-inversion").TNullable<import("@venizia/ignis-inversion").Binding<T_1>>;
|
|
21
|
+
unbind: (opts: {
|
|
22
|
+
key: string | symbol;
|
|
23
|
+
}) => boolean;
|
|
24
|
+
set: <T_1>(opts: {
|
|
25
|
+
binding: import("@venizia/ignis-inversion").Binding<T_1>;
|
|
26
|
+
}) => void;
|
|
27
|
+
get: {
|
|
28
|
+
<T_1>(opts: {
|
|
29
|
+
key: string | symbol | {
|
|
30
|
+
namespace: string;
|
|
31
|
+
key: string;
|
|
32
|
+
};
|
|
33
|
+
isOptional?: false;
|
|
34
|
+
}): T_1;
|
|
35
|
+
<T_1>(opts: {
|
|
36
|
+
key: string | symbol | {
|
|
37
|
+
namespace: string;
|
|
38
|
+
key: string;
|
|
39
|
+
};
|
|
40
|
+
isOptional?: boolean;
|
|
41
|
+
}): T_1 | undefined;
|
|
42
|
+
};
|
|
43
|
+
resolve: <T_1>(cls: import("@venizia/ignis-inversion").TClass<T_1>) => T_1;
|
|
44
|
+
instantiate: <T_1>(cls: import("@venizia/ignis-inversion").TClass<T_1>) => T_1;
|
|
45
|
+
findByTag: <T_1 = any>(opts: {
|
|
46
|
+
tag: string;
|
|
47
|
+
}) => import("@venizia/ignis-inversion").Binding<T_1>[];
|
|
48
|
+
clear: () => void;
|
|
49
|
+
reset: () => void;
|
|
50
|
+
scope: string;
|
|
51
|
+
identifier: string;
|
|
52
|
+
};
|
|
53
|
+
} & T;
|
|
54
|
+
//# sourceMappingURL=boot.mixin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boot.mixin.d.ts","sourceRoot":"","sources":["../../src/boot.mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,YAAY,EACZ,WAAW,EAGZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAiB,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAEpE,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,YAAY,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC;kBAEhD,GAAG,EAAE;sBAaZ,YAAY,GAAG,SAAS;gBAE9B,OAAO,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;0BAQyd,CAAC;;;;;;;0BAA6J,CAAC;;;;;;;;;;;;;KADvpB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BootMixin = void 0;
|
|
4
|
+
const ignis_boot_1 = require("@venizia/ignis-boot");
|
|
5
|
+
const ignis_inversion_1 = require("@venizia/ignis-inversion");
|
|
6
|
+
const BootMixin = (baseClass) => {
|
|
7
|
+
class Mixed extends baseClass {
|
|
8
|
+
constructor(...args) {
|
|
9
|
+
super(...args);
|
|
10
|
+
this.bind({ key: `@app/boot-options` }).toValue(this.bootOptions ?? {});
|
|
11
|
+
this.bind({ key: 'booter.DatasourceBooter' }).toClass(ignis_boot_1.DatasourceBooter).setTags('booter');
|
|
12
|
+
this.bind({ key: 'booter.RepositoryBooter' }).toClass(ignis_boot_1.RepositoryBooter).setTags('booter');
|
|
13
|
+
this.bind({ key: 'booter.ServiceBooter' }).toClass(ignis_boot_1.ServiceBooter).setTags('booter');
|
|
14
|
+
this.bind({ key: 'booter.ControllerBooter' }).toClass(ignis_boot_1.ControllerBooter).setTags('booter');
|
|
15
|
+
this.bind({ key: 'bootstrapper' }).toClass(ignis_boot_1.Bootstrapper).setScope(ignis_inversion_1.BindingScopes.SINGLETON);
|
|
16
|
+
}
|
|
17
|
+
boot() {
|
|
18
|
+
const bootstrapper = this.get({ key: 'bootstrapper' });
|
|
19
|
+
return bootstrapper.boot({});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return Mixed;
|
|
23
|
+
};
|
|
24
|
+
exports.BootMixin = BootMixin;
|
|
25
|
+
//# sourceMappingURL=boot.mixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boot.mixin.js","sourceRoot":"","sources":["../../src/boot.mixin.ts"],"names":[],"mappings":";;;AAAA,oDAS6B;AAE7B,8DAAoE;AAE7D,MAAM,SAAS,GAAG,CAAoC,SAAY,EAAE,EAAE;IAC3E,MAAM,KAAM,SAAQ,SAAS;QAC3B,YAAY,GAAG,IAAW;YACxB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YAEf,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;YAExE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,yBAAyB,EAAE,CAAC,CAAC,OAAO,CAAC,6BAAgB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC1F,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,yBAAyB,EAAE,CAAC,CAAC,OAAO,CAAC,6BAAgB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC1F,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,sBAAsB,EAAE,CAAC,CAAC,OAAO,CAAC,0BAAa,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpF,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,yBAAyB,EAAE,CAAC,CAAC,OAAO,CAAC,6BAAgB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAE1F,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,yBAAY,CAAC,CAAC,QAAQ,CAAC,+BAAa,CAAC,SAAS,CAAC,CAAC;QAC7F,CAAC;QAID,IAAI;YACF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAe,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC;YACrE,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAxBW,QAAA,SAAS,aAwBpB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseArtifactBooter } from '../base';
|
|
2
|
+
import { IApplication, IBootOptions } from '../common';
|
|
3
|
+
export declare class ControllerBooter extends BaseArtifactBooter {
|
|
4
|
+
private readonly application;
|
|
5
|
+
constructor(root: string, application: IApplication, bootOptions: IBootOptions);
|
|
6
|
+
protected getDefaultDirs(): string[];
|
|
7
|
+
protected getDefaultExtensions(): string[];
|
|
8
|
+
protected bind(): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=controller.booter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.booter.d.ts","sourceRoot":"","sources":["../../../src/booters/controller.booter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGtD,qBAAa,gBAAiB,SAAQ,kBAAkB;IAGlB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADxB,IAAI,EAAE,MAAM,EACC,WAAW,EAAE,YAAY,EACtC,WAAW,EAAE,YAAY;cAM9C,cAAc,IAAI,MAAM,EAAE;cAK1B,oBAAoB,IAAI,MAAM,EAAE;cAK1B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAO/C"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var ControllerBooter_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.ControllerBooter = void 0;
|
|
17
|
+
const base_1 = require("../base");
|
|
18
|
+
const ignis_inversion_1 = require("@venizia/ignis-inversion");
|
|
19
|
+
let ControllerBooter = ControllerBooter_1 = class ControllerBooter extends base_1.BaseArtifactBooter {
|
|
20
|
+
constructor(root, application, bootOptions) {
|
|
21
|
+
super({ scope: ControllerBooter_1.name, root, artifactOptions: bootOptions.controllers ?? {} });
|
|
22
|
+
this.application = application;
|
|
23
|
+
}
|
|
24
|
+
// --------------------------------------------------------------------------------
|
|
25
|
+
getDefaultDirs() {
|
|
26
|
+
return ['controllers'];
|
|
27
|
+
}
|
|
28
|
+
// --------------------------------------------------------------------------------
|
|
29
|
+
getDefaultExtensions() {
|
|
30
|
+
return ['.controller.js'];
|
|
31
|
+
}
|
|
32
|
+
// --------------------------------------------------------------------------------
|
|
33
|
+
async bind() {
|
|
34
|
+
for (const cls of this.loadedClasses) {
|
|
35
|
+
const key = ignis_inversion_1.BindingKeys.build({ namespace: 'controllers', key: cls.name });
|
|
36
|
+
this.application.bind({ key }).toClass(cls).setTags('controllers');
|
|
37
|
+
this.logger.debug('[bind] Bound key: %s', key);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
exports.ControllerBooter = ControllerBooter;
|
|
42
|
+
exports.ControllerBooter = ControllerBooter = ControllerBooter_1 = __decorate([
|
|
43
|
+
__param(0, (0, ignis_inversion_1.inject)({ key: '@app/project_root' })),
|
|
44
|
+
__param(1, (0, ignis_inversion_1.inject)({ key: '@app/instance' })),
|
|
45
|
+
__param(2, (0, ignis_inversion_1.inject)({ key: '@app/boot-options' })),
|
|
46
|
+
__metadata("design:paramtypes", [String, Object, Object])
|
|
47
|
+
], ControllerBooter);
|
|
48
|
+
//# sourceMappingURL=controller.booter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.booter.js","sourceRoot":"","sources":["../../../src/booters/controller.booter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iCAA4C;AAE5C,8DAA+D;AAE/D,IAAa,gBAAgB,wBAA7B,MAAa,gBAAiB,SAAQ,yBAAkB;IACtD,YACwC,IAAY,EACC,WAAyB,EACtC,WAAyB;QAE/D,KAAK,CAAC,EAAE,KAAK,EAAE,kBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC;QAH3C,gBAAW,GAAX,WAAW,CAAc;IAI9E,CAAC;IAED,mFAAmF;IAChE,cAAc;QAC/B,OAAO,CAAC,aAAa,CAAC,CAAC;IACzB,CAAC;IAED,mFAAmF;IAChE,oBAAoB;QACrC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5B,CAAC;IAED,mFAAmF;IAChE,KAAK,CAAC,IAAI;QAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,6BAAW,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3E,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACnE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;CACF,CAAA;AA3BY,4CAAgB;2BAAhB,gBAAgB;IAExB,WAAA,IAAA,wBAAM,EAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,CAAC,CAAA;IACpC,WAAA,IAAA,wBAAM,EAAC,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC,CAAA;IAChC,WAAA,IAAA,wBAAM,EAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,CAAC,CAAA;;GAJ5B,gBAAgB,CA2B5B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseArtifactBooter } from '../base';
|
|
2
|
+
import { IApplication, IBootOptions } from '../common';
|
|
3
|
+
export declare class DatasourceBooter extends BaseArtifactBooter {
|
|
4
|
+
private readonly application;
|
|
5
|
+
constructor(root: string, application: IApplication, bootOptions: IBootOptions);
|
|
6
|
+
protected getDefaultDirs(): string[];
|
|
7
|
+
protected getDefaultExtensions(): string[];
|
|
8
|
+
protected bind(): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=datasource.booter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datasource.booter.d.ts","sourceRoot":"","sources":["../../../src/booters/datasource.booter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGtD,qBAAa,gBAAiB,SAAQ,kBAAkB;IAGlB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADxB,IAAI,EAAE,MAAM,EACC,WAAW,EAAE,YAAY,EACtC,WAAW,EAAE,YAAY;cAM9C,cAAc,IAAI,MAAM,EAAE;cAK1B,oBAAoB,IAAI,MAAM,EAAE;cAK1B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAO/C"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var DatasourceBooter_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.DatasourceBooter = void 0;
|
|
17
|
+
const base_1 = require("../base");
|
|
18
|
+
const ignis_inversion_1 = require("@venizia/ignis-inversion");
|
|
19
|
+
let DatasourceBooter = DatasourceBooter_1 = class DatasourceBooter extends base_1.BaseArtifactBooter {
|
|
20
|
+
constructor(root, application, bootOptions) {
|
|
21
|
+
super({ scope: DatasourceBooter_1.name, root, artifactOptions: bootOptions.datasources ?? {} });
|
|
22
|
+
this.application = application;
|
|
23
|
+
}
|
|
24
|
+
// --------------------------------------------------------------------------------
|
|
25
|
+
getDefaultDirs() {
|
|
26
|
+
return ['datasources'];
|
|
27
|
+
}
|
|
28
|
+
// --------------------------------------------------------------------------------
|
|
29
|
+
getDefaultExtensions() {
|
|
30
|
+
return ['.datasource.js'];
|
|
31
|
+
}
|
|
32
|
+
// --------------------------------------------------------------------------------
|
|
33
|
+
async bind() {
|
|
34
|
+
for (const cls of this.loadedClasses) {
|
|
35
|
+
const key = ignis_inversion_1.BindingKeys.build({ namespace: 'datasources', key: cls.name });
|
|
36
|
+
this.application.bind({ key }).toClass(cls).setTags('datasources').setScope('singleton');
|
|
37
|
+
this.logger.debug('[bind] Bound key: %s', key);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
exports.DatasourceBooter = DatasourceBooter;
|
|
42
|
+
exports.DatasourceBooter = DatasourceBooter = DatasourceBooter_1 = __decorate([
|
|
43
|
+
__param(0, (0, ignis_inversion_1.inject)({ key: '@app/project_root' })),
|
|
44
|
+
__param(1, (0, ignis_inversion_1.inject)({ key: '@app/instance' })),
|
|
45
|
+
__param(2, (0, ignis_inversion_1.inject)({ key: '@app/boot-options' })),
|
|
46
|
+
__metadata("design:paramtypes", [String, Object, Object])
|
|
47
|
+
], DatasourceBooter);
|
|
48
|
+
//# sourceMappingURL=datasource.booter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datasource.booter.js","sourceRoot":"","sources":["../../../src/booters/datasource.booter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iCAA4C;AAE5C,8DAA+D;AAE/D,IAAa,gBAAgB,wBAA7B,MAAa,gBAAiB,SAAQ,yBAAkB;IACtD,YACwC,IAAY,EACC,WAAyB,EACtC,WAAyB;QAE/D,KAAK,CAAC,EAAE,KAAK,EAAE,kBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC;QAH3C,gBAAW,GAAX,WAAW,CAAc;IAI9E,CAAC;IAED,mFAAmF;IAChE,cAAc;QAC/B,OAAO,CAAC,aAAa,CAAC,CAAC;IACzB,CAAC;IAED,mFAAmF;IAChE,oBAAoB;QACrC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5B,CAAC;IAED,mFAAmF;IAChE,KAAK,CAAC,IAAI;QAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,6BAAW,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3E,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACzF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;CACF,CAAA;AA3BY,4CAAgB;2BAAhB,gBAAgB;IAExB,WAAA,IAAA,wBAAM,EAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,CAAC,CAAA;IACpC,WAAA,IAAA,wBAAM,EAAC,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC,CAAA;IAChC,WAAA,IAAA,wBAAM,EAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,CAAC,CAAA;;GAJ5B,gBAAgB,CA2B5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/booters/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./controller.booter"), exports);
|
|
18
|
+
__exportStar(require("./datasource.booter"), exports);
|
|
19
|
+
__exportStar(require("./repository.booter"), exports);
|
|
20
|
+
__exportStar(require("./service.booter"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/booters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,sDAAoC;AACpC,sDAAoC;AACpC,mDAAiC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseArtifactBooter } from '../base';
|
|
2
|
+
import { IApplication, IBootOptions } from '../common';
|
|
3
|
+
export declare class RepositoryBooter extends BaseArtifactBooter {
|
|
4
|
+
protected application: IApplication;
|
|
5
|
+
constructor(root: string, application: IApplication, bootOptions: IBootOptions);
|
|
6
|
+
protected getDefaultDirs(): string[];
|
|
7
|
+
protected getDefaultExtensions(): string[];
|
|
8
|
+
protected bind(): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=repository.booter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.booter.d.ts","sourceRoot":"","sources":["../../../src/booters/repository.booter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGtD,qBAAa,gBAAiB,SAAQ,kBAAkB;IAGlB,SAAS,CAAC,WAAW,EAAE,YAAY;gBAD/B,IAAI,EAAE,MAAM,EACN,WAAW,EAAE,YAAY,EAC/B,WAAW,EAAE,YAAY;cAK9C,cAAc,IAAI,MAAM,EAAE;cAK1B,oBAAoB,IAAI,MAAM,EAAE;cAK1B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAO/C"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var RepositoryBooter_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.RepositoryBooter = void 0;
|
|
17
|
+
const base_1 = require("../base");
|
|
18
|
+
const ignis_inversion_1 = require("@venizia/ignis-inversion");
|
|
19
|
+
let RepositoryBooter = RepositoryBooter_1 = class RepositoryBooter extends base_1.BaseArtifactBooter {
|
|
20
|
+
constructor(root, application, bootOptions) {
|
|
21
|
+
super({ scope: RepositoryBooter_1.name, root, artifactOptions: bootOptions.repositories ?? {} });
|
|
22
|
+
this.application = application;
|
|
23
|
+
}
|
|
24
|
+
// --------------------------------------------------------------------------------
|
|
25
|
+
getDefaultDirs() {
|
|
26
|
+
return ['repositories'];
|
|
27
|
+
}
|
|
28
|
+
// --------------------------------------------------------------------------------
|
|
29
|
+
getDefaultExtensions() {
|
|
30
|
+
return ['.repository.js'];
|
|
31
|
+
}
|
|
32
|
+
// --------------------------------------------------------------------------------
|
|
33
|
+
async bind() {
|
|
34
|
+
for (const cls of this.loadedClasses) {
|
|
35
|
+
const key = ignis_inversion_1.BindingKeys.build({ namespace: 'repositories', key: cls.name });
|
|
36
|
+
this.application.bind({ key }).toClass(cls).setTags('repositories');
|
|
37
|
+
this.logger.debug('[bind] Bound key: %s', key);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
exports.RepositoryBooter = RepositoryBooter;
|
|
42
|
+
exports.RepositoryBooter = RepositoryBooter = RepositoryBooter_1 = __decorate([
|
|
43
|
+
__param(0, (0, ignis_inversion_1.inject)({ key: '@app/project_root' })),
|
|
44
|
+
__param(1, (0, ignis_inversion_1.inject)({ key: '@app/instance' })),
|
|
45
|
+
__param(2, (0, ignis_inversion_1.inject)({ key: '@app/boot-options' })),
|
|
46
|
+
__metadata("design:paramtypes", [String, Object, Object])
|
|
47
|
+
], RepositoryBooter);
|
|
48
|
+
//# sourceMappingURL=repository.booter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.booter.js","sourceRoot":"","sources":["../../../src/booters/repository.booter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iCAA4C;AAE5C,8DAA+D;AAE/D,IAAa,gBAAgB,wBAA7B,MAAa,gBAAiB,SAAQ,yBAAkB;IACtD,YACwC,IAAY,EACN,WAAyB,EAC/B,WAAyB;QAE/D,KAAK,CAAC,EAAE,KAAK,EAAE,kBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC,CAAC;QAHnD,gBAAW,GAAX,WAAW,CAAc;IAIvE,CAAC;IACD,mFAAmF;IAChE,cAAc;QAC/B,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1B,CAAC;IAED,mFAAmF;IAChE,oBAAoB;QACrC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5B,CAAC;IAED,mFAAmF;IAChE,KAAK,CAAC,IAAI;QAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,6BAAW,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5E,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACpE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;CACF,CAAA;AA1BY,4CAAgB;2BAAhB,gBAAgB;IAExB,WAAA,IAAA,wBAAM,EAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,CAAC,CAAA;IACpC,WAAA,IAAA,wBAAM,EAAC,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC,CAAA;IAChC,WAAA,IAAA,wBAAM,EAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,CAAC,CAAA;;GAJ5B,gBAAgB,CA0B5B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseArtifactBooter } from '../base';
|
|
2
|
+
import { IApplication, IBootOptions } from '../common';
|
|
3
|
+
export declare class ServiceBooter extends BaseArtifactBooter {
|
|
4
|
+
protected application: IApplication;
|
|
5
|
+
constructor(root: string, application: IApplication, bootOptions: IBootOptions);
|
|
6
|
+
protected getDefaultDirs(): string[];
|
|
7
|
+
protected getDefaultExtensions(): string[];
|
|
8
|
+
protected bind(): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=service.booter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.booter.d.ts","sourceRoot":"","sources":["../../../src/booters/service.booter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGtD,qBAAa,aAAc,SAAQ,kBAAkB;IAGf,SAAS,CAAC,WAAW,EAAE,YAAY;gBAD/B,IAAI,EAAE,MAAM,EACN,WAAW,EAAE,YAAY,EAC/B,WAAW,EAAE,YAAY;cAM9C,cAAc,IAAI,MAAM,EAAE;cAK1B,oBAAoB,IAAI,MAAM,EAAE;cAK1B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAO/C"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var ServiceBooter_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.ServiceBooter = void 0;
|
|
17
|
+
const base_1 = require("../base");
|
|
18
|
+
const ignis_inversion_1 = require("@venizia/ignis-inversion");
|
|
19
|
+
let ServiceBooter = ServiceBooter_1 = class ServiceBooter extends base_1.BaseArtifactBooter {
|
|
20
|
+
constructor(root, application, bootOptions) {
|
|
21
|
+
super({ scope: ServiceBooter_1.name, root, artifactOptions: bootOptions.services ?? {} });
|
|
22
|
+
this.application = application;
|
|
23
|
+
}
|
|
24
|
+
// --------------------------------------------------------------------------------
|
|
25
|
+
getDefaultDirs() {
|
|
26
|
+
return ['services'];
|
|
27
|
+
}
|
|
28
|
+
// --------------------------------------------------------------------------------
|
|
29
|
+
getDefaultExtensions() {
|
|
30
|
+
return ['.service.js'];
|
|
31
|
+
}
|
|
32
|
+
// --------------------------------------------------------------------------------
|
|
33
|
+
async bind() {
|
|
34
|
+
for (const cls of this.loadedClasses) {
|
|
35
|
+
const key = ignis_inversion_1.BindingKeys.build({ namespace: 'services', key: cls.name });
|
|
36
|
+
this.application.bind({ key }).toClass(cls).setTags('services');
|
|
37
|
+
this.logger.debug('[bind] Bound key: %s', key);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
exports.ServiceBooter = ServiceBooter;
|
|
42
|
+
exports.ServiceBooter = ServiceBooter = ServiceBooter_1 = __decorate([
|
|
43
|
+
__param(0, (0, ignis_inversion_1.inject)({ key: '@app/project_root' })),
|
|
44
|
+
__param(1, (0, ignis_inversion_1.inject)({ key: '@app/instance' })),
|
|
45
|
+
__param(2, (0, ignis_inversion_1.inject)({ key: '@app/boot-options' })),
|
|
46
|
+
__metadata("design:paramtypes", [String, Object, Object])
|
|
47
|
+
], ServiceBooter);
|
|
48
|
+
//# sourceMappingURL=service.booter.js.map
|