@eggjs/tegg-standalone 4.0.0-beta.1 → 4.0.0-beta.10
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 +13 -1
- package/dist/{src/ConfigSourceLoadUnitHook.d.ts → ConfigSourceLoadUnitHook.d.ts} +2 -2
- package/dist/ConfigSourceLoadUnitHook.js +20 -0
- package/dist/{src/EggModuleLoader.d.ts → EggModuleLoader.d.ts} +3 -3
- package/dist/EggModuleLoader.js +59 -0
- package/dist/ModuleConfig.d.ts +1 -0
- package/dist/ModuleConfig.js +9 -0
- package/dist/{src/Runner.d.ts → Runner.d.ts} +5 -5
- package/dist/Runner.js +236 -0
- package/dist/{src/StandaloneContext.js → StandaloneContext.js} +1 -1
- package/dist/{src/StandaloneContextHandler.d.ts → StandaloneContextHandler.d.ts} +1 -1
- package/dist/StandaloneContextHandler.js +14 -0
- package/dist/StandaloneContextImpl.js +10 -0
- package/dist/{src/StandaloneInnerObject.d.ts → StandaloneInnerObject.d.ts} +4 -4
- package/dist/StandaloneInnerObject.js +31 -0
- package/dist/{src/StandaloneInnerObjectProto.d.ts → StandaloneInnerObjectProto.d.ts} +2 -2
- package/dist/StandaloneInnerObjectProto.js +51 -0
- package/dist/{src/StandaloneLoadUnit.d.ts → StandaloneLoadUnit.d.ts} +2 -2
- package/dist/StandaloneLoadUnit.js +62 -0
- package/dist/index.d.ts +6 -6
- package/dist/index.js +7 -7
- package/dist/{src/main.d.ts → main.d.ts} +1 -1
- package/dist/main.js +34 -0
- package/package.json +34 -36
- package/dist/src/ConfigSourceLoadUnitHook.js +0 -19
- package/dist/src/EggModuleLoader.js +0 -59
- package/dist/src/ModuleConfig.d.ts +0 -5
- package/dist/src/ModuleConfig.js +0 -3
- package/dist/src/Runner.js +0 -236
- package/dist/src/StandaloneContextHandler.js +0 -14
- package/dist/src/StandaloneContextImpl.js +0 -10
- package/dist/src/StandaloneInnerObject.js +0 -30
- package/dist/src/StandaloneInnerObjectProto.js +0 -50
- package/dist/src/StandaloneLoadUnit.js +0 -62
- package/dist/src/main.js +0 -34
- /package/dist/{src/StandaloneContext.d.ts → StandaloneContext.d.ts} +0 -0
- /package/dist/{src/StandaloneContextImpl.d.ts → StandaloneContextImpl.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# `@eggjs/tegg-standalone`
|
|
2
2
|
|
|
3
|
+
[![NPM version][npm-image]][npm-url]
|
|
4
|
+
[![Known Vulnerabilities][snyk-image]][snyk-url]
|
|
5
|
+
[![npm download][download-image]][download-url]
|
|
6
|
+
[](https://nodejs.org/en/download/)
|
|
7
|
+
|
|
8
|
+
[npm-image]: https://img.shields.io/npm/v/@eggjs/tegg-standalone.svg?style=flat-square
|
|
9
|
+
[npm-url]: https://npmjs.org/package/@eggjs/tegg-standalone
|
|
10
|
+
[snyk-image]: https://snyk.io/test/npm/@eggjs/tegg-standalone/badge.svg?style=flat-square
|
|
11
|
+
[snyk-url]: https://snyk.io/test/npm/@eggjs/tegg-standalone
|
|
12
|
+
[download-image]: https://img.shields.io/npm/dm/@eggjs/tegg-standalone.svg?style=flat-square
|
|
13
|
+
[download-url]: https://npmjs.org/package/@eggjs/tegg-standalone
|
|
14
|
+
|
|
3
15
|
通过 `@eggjs/tegg-standalone` 在一个独立环境去中运行 tegg 应用。
|
|
4
16
|
|
|
5
17
|
## install
|
|
@@ -12,7 +24,7 @@ npm i --save @eggjs/tegg-standalone
|
|
|
12
24
|
当一个类上有 Runner 注解时,会自动运行其 main 函数。注无需再使用 `ContextProto` 注解,因为独立运行跑完即销毁,不用再区分独立上下文。
|
|
13
25
|
|
|
14
26
|
```ts
|
|
15
|
-
import { Runner, MainRunner } from '@eggjs/tegg/standalone';
|
|
27
|
+
import { Runner, type MainRunner } from '@eggjs/tegg/standalone';
|
|
16
28
|
|
|
17
29
|
@Runner()
|
|
18
30
|
@SingletonProto()
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { LoadUnit, LoadUnitLifecycleContext } from '@eggjs/tegg-metadata';
|
|
2
|
-
import { LifecycleHook } from '@eggjs/tegg';
|
|
1
|
+
import { type LoadUnit, type LoadUnitLifecycleContext } from '@eggjs/tegg-metadata';
|
|
2
|
+
import { type LifecycleHook } from '@eggjs/tegg';
|
|
3
3
|
/**
|
|
4
4
|
* Hook for inject moduleConfig.
|
|
5
5
|
* Add default qualifier value is current module name.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {} from '@eggjs/tegg-metadata';
|
|
2
|
+
import { PrototypeUtil, QualifierUtil, ConfigSourceQualifier, ConfigSourceQualifierAttribute, } from '@eggjs/tegg';
|
|
3
|
+
/**
|
|
4
|
+
* Hook for inject moduleConfig.
|
|
5
|
+
* Add default qualifier value is current module name.
|
|
6
|
+
*/
|
|
7
|
+
export class ConfigSourceLoadUnitHook {
|
|
8
|
+
async preCreate(ctx, loadUnit) {
|
|
9
|
+
const classList = await ctx.loader.load();
|
|
10
|
+
for (const clazz of classList) {
|
|
11
|
+
const injectObjects = PrototypeUtil.getInjectObjects(clazz);
|
|
12
|
+
const moduleConfigObject = injectObjects.find(t => t.objName === 'moduleConfig');
|
|
13
|
+
const configSourceQualifier = QualifierUtil.getProperQualifier(clazz, 'moduleConfig', ConfigSourceQualifierAttribute);
|
|
14
|
+
if (moduleConfigObject && !configSourceQualifier) {
|
|
15
|
+
ConfigSourceQualifier(loadUnit.name)(clazz.prototype, moduleConfigObject.refName);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnU291cmNlTG9hZFVuaXRIb29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0NvbmZpZ1NvdXJjZUxvYWRVbml0SG9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdELE1BQU0sc0JBQXNCLENBQUM7QUFDcEYsT0FBTyxFQUVMLGFBQWEsRUFDYixhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLDhCQUE4QixHQUMvQixNQUFNLGFBQWEsQ0FBQztBQUVyQjs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBNkIsRUFBRSxRQUFrQjtRQUMvRCxNQUFNLFNBQVMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUMsS0FBSyxNQUFNLEtBQUssSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUM5QixNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUQsTUFBTSxrQkFBa0IsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxjQUFjLENBQUMsQ0FBQztZQUNqRixNQUFNLHFCQUFxQixHQUFHLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsY0FBYyxFQUFFLDhCQUE4QixDQUFDLENBQUM7WUFDdEgsSUFBSSxrQkFBa0IsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7Z0JBQ2pELHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BGLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { LoadUnit } from '@eggjs/tegg-metadata';
|
|
2
|
-
import { ModuleReference } from '@eggjs/tegg-common-util';
|
|
3
|
-
import { Logger } from '@eggjs/tegg';
|
|
1
|
+
import { type LoadUnit } from '@eggjs/tegg-metadata';
|
|
2
|
+
import type { ModuleReference } from '@eggjs/tegg-common-util';
|
|
3
|
+
import type { Logger } from '@eggjs/tegg';
|
|
4
4
|
export interface EggModuleLoaderOptions {
|
|
5
5
|
logger: Logger;
|
|
6
6
|
baseDir: string;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { EggLoadUnitType, GlobalGraph, LoadUnitFactory, ModuleDescriptorDumper, } from '@eggjs/tegg-metadata';
|
|
2
|
+
import { LoaderFactory } from '@eggjs/tegg-loader';
|
|
3
|
+
export class EggModuleLoader {
|
|
4
|
+
moduleReferences;
|
|
5
|
+
globalGraph;
|
|
6
|
+
options;
|
|
7
|
+
constructor(moduleReferences, options) {
|
|
8
|
+
this.moduleReferences = moduleReferences;
|
|
9
|
+
this.options = options;
|
|
10
|
+
}
|
|
11
|
+
async init() {
|
|
12
|
+
GlobalGraph.instance = this.globalGraph = await EggModuleLoader.generateAppGraph(this.moduleReferences, this.options);
|
|
13
|
+
}
|
|
14
|
+
static async generateAppGraph(moduleReferences, options) {
|
|
15
|
+
const moduleDescriptors = await LoaderFactory.loadApp(moduleReferences);
|
|
16
|
+
if (options.dump !== false) {
|
|
17
|
+
for (const moduleDescriptor of moduleDescriptors) {
|
|
18
|
+
ModuleDescriptorDumper.dump(moduleDescriptor, {
|
|
19
|
+
dumpDir: options.baseDir,
|
|
20
|
+
}).catch(e => {
|
|
21
|
+
e.message = 'dump module descriptor failed: ' + e.message;
|
|
22
|
+
options.logger.warn(e);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
const globalGraph = await GlobalGraph.create(moduleDescriptors);
|
|
27
|
+
return globalGraph;
|
|
28
|
+
}
|
|
29
|
+
async load() {
|
|
30
|
+
const loadUnits = [];
|
|
31
|
+
this.globalGraph.build();
|
|
32
|
+
this.globalGraph.sort();
|
|
33
|
+
const moduleConfigList = GlobalGraph.instance.moduleConfigList;
|
|
34
|
+
for (const moduleConfig of moduleConfigList) {
|
|
35
|
+
const modulePath = moduleConfig.path;
|
|
36
|
+
const loader = LoaderFactory.createLoader(modulePath, EggLoadUnitType.MODULE);
|
|
37
|
+
const loadUnit = await LoadUnitFactory.createLoadUnit(modulePath, EggLoadUnitType.MODULE, loader);
|
|
38
|
+
loadUnits.push(loadUnit);
|
|
39
|
+
}
|
|
40
|
+
return loadUnits;
|
|
41
|
+
}
|
|
42
|
+
static async preLoad(moduleReferences, options) {
|
|
43
|
+
const loadUnits = [];
|
|
44
|
+
const loaderCache = new Map();
|
|
45
|
+
const globalGraph = GlobalGraph.instance = await EggModuleLoader.generateAppGraph(moduleReferences, options);
|
|
46
|
+
globalGraph.sort();
|
|
47
|
+
const moduleConfigList = globalGraph.moduleConfigList;
|
|
48
|
+
for (const moduleConfig of moduleConfigList) {
|
|
49
|
+
const modulePath = moduleConfig.path;
|
|
50
|
+
const loader = loaderCache.get(modulePath);
|
|
51
|
+
const loadUnit = await LoadUnitFactory.createPreloadLoadUnit(modulePath, EggLoadUnitType.MODULE, loader);
|
|
52
|
+
loadUnits.push(loadUnit);
|
|
53
|
+
}
|
|
54
|
+
for (const load of loadUnits) {
|
|
55
|
+
await load.preLoad?.();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnTW9kdWxlTG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0VnZ01vZHVsZUxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZUFBZSxFQUNmLFdBQVcsRUFHWCxlQUFlLEVBQ2Ysc0JBQXNCLEdBQ3ZCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBVW5ELE1BQU0sT0FBTyxlQUFlO0lBQ2xCLGdCQUFnQixDQUE2QjtJQUM3QyxXQUFXLENBQWM7SUFDekIsT0FBTyxDQUF5QjtJQUV4QyxZQUFZLGdCQUE0QyxFQUFFLE9BQStCO1FBQ3ZGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUixXQUFXLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxlQUFlLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4SCxDQUFDO0lBRU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBNEMsRUFBRSxPQUErQjtRQUNqSCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sYUFBYSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3hFLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUMzQixLQUFLLE1BQU0sZ0JBQWdCLElBQUksaUJBQWlCLEVBQUUsQ0FBQztnQkFDakQsc0JBQXNCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO29CQUM1QyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87aUJBQ3pCLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ1gsQ0FBQyxDQUFDLE9BQU8sR0FBRyxpQ0FBaUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDO29CQUMxRCxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDekIsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUNELE1BQU0sV0FBVyxHQUFHLE1BQU0sV0FBVyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLE1BQU0sU0FBUyxHQUFlLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEIsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsUUFBUyxDQUFDLGdCQUFnQixDQUFDO1FBQ2hFLEtBQUssTUFBTSxZQUFZLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUM1QyxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQ3JDLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5RSxNQUFNLFFBQVEsR0FBRyxNQUFNLGVBQWUsQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbEcsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGdCQUE0QyxFQUFFLE9BQStCO1FBQ2hHLE1BQU0sU0FBUyxHQUFlLEVBQUUsQ0FBQztRQUNqQyxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztRQUM5QyxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsUUFBUSxHQUFHLE1BQU0sZUFBZSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzdHLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztRQUN0RCxLQUFLLE1BQU0sWUFBWSxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDNUMsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQztZQUNyQyxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBRSxDQUFDO1lBQzVDLE1BQU0sUUFBUSxHQUFHLE1BQU0sZUFBZSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3pHLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELEtBQUssTUFBTSxJQUFJLElBQUksU0FBUyxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// import 'egg';
|
|
2
|
+
export {};
|
|
3
|
+
// for declare merging
|
|
4
|
+
// declare module 'egg' {
|
|
5
|
+
// export interface ModuleConfig {
|
|
6
|
+
// // ...
|
|
7
|
+
// }
|
|
8
|
+
// }
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kdWxlQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL01vZHVsZUNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQkFBZ0I7O0FBRWhCLHNCQUFzQjtBQUN0Qix5QkFBeUI7QUFDekIsb0NBQW9DO0FBQ3BDLGFBQWE7QUFDYixNQUFNO0FBQ04sSUFBSSJ9
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ModuleReference, ReadModuleReferenceOptions } from '@eggjs/tegg-common-util';
|
|
2
|
-
import { LoadUnit } from '@eggjs/tegg-metadata';
|
|
3
|
-
import { EggContext, LoadUnitInstance } from '@eggjs/tegg-runtime';
|
|
4
|
-
import { ModuleConfigHolder } from '@eggjs/tegg';
|
|
5
|
-
import { InnerObject } from './StandaloneLoadUnit.
|
|
1
|
+
import { type ModuleReference, type ReadModuleReferenceOptions } from '@eggjs/tegg-common-util';
|
|
2
|
+
import { type LoadUnit } from '@eggjs/tegg-metadata';
|
|
3
|
+
import { type EggContext, type LoadUnitInstance } from '@eggjs/tegg-runtime';
|
|
4
|
+
import { type ModuleConfigHolder } from '@eggjs/tegg';
|
|
5
|
+
import { type InnerObject } from './StandaloneLoadUnit.ts';
|
|
6
6
|
export interface ModuleDependency extends ReadModuleReferenceOptions {
|
|
7
7
|
baseDir: string;
|
|
8
8
|
}
|
package/dist/Runner.js
ADDED
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { ModuleConfigUtil } from '@eggjs/tegg-common-util';
|
|
2
|
+
import { EggPrototypeLifecycleUtil, GlobalGraph, LoadUnitFactory, LoadUnitLifecycleUtil, LoadUnitMultiInstanceProtoHook, } from '@eggjs/tegg-metadata';
|
|
3
|
+
import { ContextHandler, EggContainerFactory, EggObjectLifecycleUtil, LoadUnitInstanceFactory, ModuleLoadUnitInstance, } from '@eggjs/tegg-runtime';
|
|
4
|
+
import { PrototypeUtil, ModuleConfigs, ConfigSourceQualifierAttribute, } from '@eggjs/tegg';
|
|
5
|
+
import { StandaloneUtil } from '@eggjs/tegg/standalone';
|
|
6
|
+
import { CrosscutAdviceFactory } from '@eggjs/tegg/aop';
|
|
7
|
+
import { crossCutGraphHook, EggObjectAopHook, EggPrototypeCrossCutHook, LoadUnitAopHook, pointCutGraphHook, } from '@eggjs/tegg-aop-runtime';
|
|
8
|
+
import { DalTableEggPrototypeHook, DalModuleLoadUnitHook, MysqlDataSourceManager, SqlMapManager, TableModelManager, TransactionPrototypeHook, } from '@eggjs/tegg-dal-plugin';
|
|
9
|
+
import { EggModuleLoader } from "./EggModuleLoader.js";
|
|
10
|
+
import { StandaloneLoadUnit, StandaloneLoadUnitType } from "./StandaloneLoadUnit.js";
|
|
11
|
+
import { StandaloneContext } from "./StandaloneContext.js";
|
|
12
|
+
import { StandaloneContextHandler } from "./StandaloneContextHandler.js";
|
|
13
|
+
import { ConfigSourceLoadUnitHook } from "./ConfigSourceLoadUnitHook.js";
|
|
14
|
+
export class Runner {
|
|
15
|
+
cwd;
|
|
16
|
+
moduleReferences;
|
|
17
|
+
moduleConfigs;
|
|
18
|
+
env;
|
|
19
|
+
name;
|
|
20
|
+
options;
|
|
21
|
+
loadUnitLoader;
|
|
22
|
+
runnerProto;
|
|
23
|
+
configSourceEggPrototypeHook;
|
|
24
|
+
loadUnitMultiInstanceProtoHook;
|
|
25
|
+
dalTableEggPrototypeHook;
|
|
26
|
+
dalModuleLoadUnitHook;
|
|
27
|
+
transactionPrototypeHook;
|
|
28
|
+
crosscutAdviceFactory;
|
|
29
|
+
loadUnitAopHook;
|
|
30
|
+
eggPrototypeCrossCutHook;
|
|
31
|
+
eggObjectAopHook;
|
|
32
|
+
loadUnits = [];
|
|
33
|
+
loadUnitInstances = [];
|
|
34
|
+
innerObjects;
|
|
35
|
+
constructor(cwd, options) {
|
|
36
|
+
this.cwd = cwd;
|
|
37
|
+
this.env = options?.env;
|
|
38
|
+
this.name = options?.name;
|
|
39
|
+
this.options = options;
|
|
40
|
+
this.moduleReferences = Runner.getModuleReferences(this.cwd, options?.dependencies);
|
|
41
|
+
this.moduleConfigs = {};
|
|
42
|
+
this.innerObjects = {
|
|
43
|
+
moduleConfigs: [{
|
|
44
|
+
obj: new ModuleConfigs(this.moduleConfigs),
|
|
45
|
+
}],
|
|
46
|
+
moduleConfig: [],
|
|
47
|
+
};
|
|
48
|
+
const runtimeConfig = {
|
|
49
|
+
baseDir: this.cwd,
|
|
50
|
+
name: this.name,
|
|
51
|
+
env: this.env,
|
|
52
|
+
};
|
|
53
|
+
// Inject runtimeConfig
|
|
54
|
+
this.innerObjects.runtimeConfig = [{
|
|
55
|
+
obj: runtimeConfig,
|
|
56
|
+
}];
|
|
57
|
+
// load module.yml and module.env.yml by default
|
|
58
|
+
if (!ModuleConfigUtil.configNames) {
|
|
59
|
+
ModuleConfigUtil.configNames = ['module.default', `module.${this.env}`];
|
|
60
|
+
}
|
|
61
|
+
for (const reference of this.moduleReferences) {
|
|
62
|
+
const absoluteRef = {
|
|
63
|
+
path: ModuleConfigUtil.resolveModuleDir(reference.path, this.cwd),
|
|
64
|
+
name: reference.name,
|
|
65
|
+
};
|
|
66
|
+
const moduleName = ModuleConfigUtil.readModuleNameSync(absoluteRef.path);
|
|
67
|
+
this.moduleConfigs[moduleName] = {
|
|
68
|
+
name: moduleName,
|
|
69
|
+
reference: absoluteRef,
|
|
70
|
+
config: ModuleConfigUtil.loadModuleConfigSync(absoluteRef.path),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
for (const moduleConfig of Object.values(this.moduleConfigs)) {
|
|
74
|
+
this.innerObjects.moduleConfig.push({
|
|
75
|
+
obj: moduleConfig.config,
|
|
76
|
+
qualifiers: [{
|
|
77
|
+
attribute: ConfigSourceQualifierAttribute,
|
|
78
|
+
value: moduleConfig.name,
|
|
79
|
+
}],
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
if (options?.innerObjects) {
|
|
83
|
+
for (const [name, obj] of Object.entries(options.innerObjects)) {
|
|
84
|
+
this.innerObjects[name] = [{
|
|
85
|
+
obj,
|
|
86
|
+
}];
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else if (options?.innerObjectHandlers) {
|
|
90
|
+
Object.assign(this.innerObjects, options.innerObjectHandlers);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
async load() {
|
|
94
|
+
StandaloneContextHandler.register();
|
|
95
|
+
LoadUnitFactory.registerLoadUnitCreator(StandaloneLoadUnitType, () => {
|
|
96
|
+
return new StandaloneLoadUnit(this.innerObjects);
|
|
97
|
+
});
|
|
98
|
+
LoadUnitInstanceFactory.registerLoadUnitInstanceClass(StandaloneLoadUnitType, ModuleLoadUnitInstance.createModuleLoadUnitInstance);
|
|
99
|
+
const standaloneLoadUnit = await LoadUnitFactory.createLoadUnit('MockStandaloneLoadUnitPath', StandaloneLoadUnitType, {
|
|
100
|
+
async load() {
|
|
101
|
+
return [];
|
|
102
|
+
},
|
|
103
|
+
});
|
|
104
|
+
const loadUnits = await this.loadUnitLoader.load();
|
|
105
|
+
return [standaloneLoadUnit, ...loadUnits];
|
|
106
|
+
}
|
|
107
|
+
static getModuleReferences(cwd, dependencies) {
|
|
108
|
+
const moduleDirs = (dependencies || []).concat(cwd);
|
|
109
|
+
return moduleDirs.reduce((list, baseDir) => {
|
|
110
|
+
const module = typeof baseDir === 'string' ? { baseDir } : baseDir;
|
|
111
|
+
return list.concat(...ModuleConfigUtil.readModuleReference(module.baseDir, module));
|
|
112
|
+
}, []);
|
|
113
|
+
}
|
|
114
|
+
static async preLoad(cwd, dependencies) {
|
|
115
|
+
const moduleReferences = Runner.getModuleReferences(cwd, dependencies);
|
|
116
|
+
await EggModuleLoader.preLoad(moduleReferences, {
|
|
117
|
+
baseDir: cwd,
|
|
118
|
+
logger: console,
|
|
119
|
+
dump: false,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
async initLoaderInstance() {
|
|
123
|
+
this.loadUnitLoader = new EggModuleLoader(this.moduleReferences, {
|
|
124
|
+
logger: (this.innerObjects.logger && this.innerObjects.logger[0])?.obj || console,
|
|
125
|
+
baseDir: this.cwd,
|
|
126
|
+
dump: this.options?.dump,
|
|
127
|
+
});
|
|
128
|
+
await this.loadUnitLoader.init();
|
|
129
|
+
GlobalGraph.instance.registerBuildHook(crossCutGraphHook);
|
|
130
|
+
GlobalGraph.instance.registerBuildHook(pointCutGraphHook);
|
|
131
|
+
const configSourceEggPrototypeHook = new ConfigSourceLoadUnitHook();
|
|
132
|
+
LoadUnitLifecycleUtil.registerLifecycle(configSourceEggPrototypeHook);
|
|
133
|
+
// TODO refactor with egg module
|
|
134
|
+
// aop runtime
|
|
135
|
+
this.crosscutAdviceFactory = new CrosscutAdviceFactory();
|
|
136
|
+
this.loadUnitAopHook = new LoadUnitAopHook(this.crosscutAdviceFactory);
|
|
137
|
+
this.eggPrototypeCrossCutHook = new EggPrototypeCrossCutHook(this.crosscutAdviceFactory);
|
|
138
|
+
this.eggObjectAopHook = new EggObjectAopHook();
|
|
139
|
+
EggPrototypeLifecycleUtil.registerLifecycle(this.eggPrototypeCrossCutHook);
|
|
140
|
+
LoadUnitLifecycleUtil.registerLifecycle(this.loadUnitAopHook);
|
|
141
|
+
EggObjectLifecycleUtil.registerLifecycle(this.eggObjectAopHook);
|
|
142
|
+
this.loadUnitMultiInstanceProtoHook = new LoadUnitMultiInstanceProtoHook();
|
|
143
|
+
LoadUnitLifecycleUtil.registerLifecycle(this.loadUnitMultiInstanceProtoHook);
|
|
144
|
+
const loggerInnerObject = this.innerObjects.logger && this.innerObjects.logger[0];
|
|
145
|
+
const logger = (loggerInnerObject?.obj || console);
|
|
146
|
+
this.dalModuleLoadUnitHook = new DalModuleLoadUnitHook(this.env ?? '', this.moduleConfigs, logger);
|
|
147
|
+
this.dalTableEggPrototypeHook = new DalTableEggPrototypeHook(logger);
|
|
148
|
+
this.transactionPrototypeHook = new TransactionPrototypeHook(this.moduleConfigs, logger);
|
|
149
|
+
EggPrototypeLifecycleUtil.registerLifecycle(this.dalTableEggPrototypeHook);
|
|
150
|
+
EggPrototypeLifecycleUtil.registerLifecycle(this.transactionPrototypeHook);
|
|
151
|
+
LoadUnitLifecycleUtil.registerLifecycle(this.dalModuleLoadUnitHook);
|
|
152
|
+
}
|
|
153
|
+
async init() {
|
|
154
|
+
await this.initLoaderInstance();
|
|
155
|
+
this.loadUnits = await this.load();
|
|
156
|
+
const instances = [];
|
|
157
|
+
for (const loadUnit of this.loadUnits) {
|
|
158
|
+
const instance = await LoadUnitInstanceFactory.createLoadUnitInstance(loadUnit);
|
|
159
|
+
instances.push(instance);
|
|
160
|
+
}
|
|
161
|
+
this.loadUnitInstances = instances;
|
|
162
|
+
const runnerClass = StandaloneUtil.getMainRunner();
|
|
163
|
+
if (!runnerClass) {
|
|
164
|
+
throw new Error('not found runner class. Do you add @Runner decorator?');
|
|
165
|
+
}
|
|
166
|
+
const proto = PrototypeUtil.getClazzProto(runnerClass);
|
|
167
|
+
if (!proto) {
|
|
168
|
+
throw new Error(`can not get proto for clazz ${runnerClass.name}`);
|
|
169
|
+
}
|
|
170
|
+
this.runnerProto = proto;
|
|
171
|
+
}
|
|
172
|
+
async run(aCtx) {
|
|
173
|
+
const lifecycle = {};
|
|
174
|
+
const ctx = aCtx || new StandaloneContext();
|
|
175
|
+
return await ContextHandler.run(ctx, async () => {
|
|
176
|
+
if (ctx.init) {
|
|
177
|
+
await ctx.init(lifecycle);
|
|
178
|
+
}
|
|
179
|
+
const eggObject = await EggContainerFactory.getOrCreateEggObject(this.runnerProto);
|
|
180
|
+
const runner = eggObject.obj;
|
|
181
|
+
try {
|
|
182
|
+
return await runner.main();
|
|
183
|
+
}
|
|
184
|
+
finally {
|
|
185
|
+
if (ctx.destroy) {
|
|
186
|
+
ctx.destroy(lifecycle).catch(e => {
|
|
187
|
+
e.message = `[tegg/standalone] destroy tegg context failed: ${e.message}`;
|
|
188
|
+
console.warn(e);
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
async destroy() {
|
|
195
|
+
if (this.loadUnitInstances) {
|
|
196
|
+
for (const instance of this.loadUnitInstances) {
|
|
197
|
+
await LoadUnitInstanceFactory.destroyLoadUnitInstance(instance);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
if (this.loadUnits) {
|
|
201
|
+
for (const loadUnit of this.loadUnits) {
|
|
202
|
+
await LoadUnitFactory.destroyLoadUnit(loadUnit);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
if (this.configSourceEggPrototypeHook) {
|
|
206
|
+
LoadUnitLifecycleUtil.deleteLifecycle(this.configSourceEggPrototypeHook);
|
|
207
|
+
}
|
|
208
|
+
if (this.eggPrototypeCrossCutHook) {
|
|
209
|
+
EggPrototypeLifecycleUtil.deleteLifecycle(this.eggPrototypeCrossCutHook);
|
|
210
|
+
}
|
|
211
|
+
if (this.loadUnitAopHook) {
|
|
212
|
+
LoadUnitLifecycleUtil.deleteLifecycle(this.loadUnitAopHook);
|
|
213
|
+
}
|
|
214
|
+
if (this.eggObjectAopHook) {
|
|
215
|
+
EggObjectLifecycleUtil.deleteLifecycle(this.eggObjectAopHook);
|
|
216
|
+
}
|
|
217
|
+
if (this.loadUnitMultiInstanceProtoHook) {
|
|
218
|
+
LoadUnitLifecycleUtil.deleteLifecycle(this.loadUnitMultiInstanceProtoHook);
|
|
219
|
+
}
|
|
220
|
+
if (this.dalTableEggPrototypeHook) {
|
|
221
|
+
EggPrototypeLifecycleUtil.deleteLifecycle(this.dalTableEggPrototypeHook);
|
|
222
|
+
}
|
|
223
|
+
if (this.dalModuleLoadUnitHook) {
|
|
224
|
+
LoadUnitLifecycleUtil.deleteLifecycle(this.dalModuleLoadUnitHook);
|
|
225
|
+
}
|
|
226
|
+
if (this.transactionPrototypeHook) {
|
|
227
|
+
EggPrototypeLifecycleUtil.deleteLifecycle(this.transactionPrototypeHook);
|
|
228
|
+
}
|
|
229
|
+
MysqlDataSourceManager.instance.clear();
|
|
230
|
+
SqlMapManager.instance.clear();
|
|
231
|
+
TableModelManager.instance.clear();
|
|
232
|
+
// clear configNames
|
|
233
|
+
ModuleConfigUtil.setConfigNames(undefined);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnVubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1J1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQTZFLE1BQU0seUJBQXlCLENBQUM7QUFDdEksT0FBTyxFQUVMLHlCQUF5QixFQUFFLFdBQVcsRUFFdEMsZUFBZSxFQUNmLHFCQUFxQixFQUNyQiw4QkFBOEIsR0FDL0IsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQ0wsY0FBYyxFQUNkLG1CQUFtQixFQUVuQixzQkFBc0IsRUFFdEIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixHQUN2QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFFTCxhQUFhLEVBRWIsYUFBYSxFQUNiLDhCQUE4QixHQUUvQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsY0FBYyxFQUFtQixNQUFNLHdCQUF3QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLHdCQUF3QixFQUN4QixlQUFlLEVBQUUsaUJBQWlCLEdBQ25DLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsd0JBQXdCLEdBQ3pCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBb0Isa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsd0JB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
|
|
@@ -7,4 +7,4 @@ export class StandaloneContext extends AbstractEggContext {
|
|
|
7
7
|
this.id = IdenticalUtil.createContextId();
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhbmRhbG9uZUNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvU3RhbmRhbG9uZUNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxrQkFBa0I7SUFDdkQsRUFBRSxDQUFTO0lBRVg7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxFQUFFLEdBQUcsYUFBYSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzVDLENBQUM7Q0FDRiJ9
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
-
import { EggContext } from '@eggjs/tegg-runtime';
|
|
2
|
+
import { type EggContext } from '@eggjs/tegg-runtime';
|
|
3
3
|
export declare class StandaloneContextHandler {
|
|
4
4
|
static storage: AsyncLocalStorage<EggContext>;
|
|
5
5
|
static register(): void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
+
import { ContextHandler } from '@eggjs/tegg-runtime';
|
|
3
|
+
export class StandaloneContextHandler {
|
|
4
|
+
static storage = new AsyncLocalStorage();
|
|
5
|
+
static register() {
|
|
6
|
+
ContextHandler.getContextCallback = () => {
|
|
7
|
+
return StandaloneContextHandler.storage.getStore();
|
|
8
|
+
};
|
|
9
|
+
ContextHandler.runInContextCallback = (context, fn) => {
|
|
10
|
+
return StandaloneContextHandler.storage.run(context, fn);
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhbmRhbG9uZUNvbnRleHRIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1N0YW5kYWxvbmVDb250ZXh0SGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsY0FBYyxFQUFtQixNQUFNLHFCQUFxQixDQUFDO0FBRXRFLE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLGlCQUFpQixFQUFjLENBQUM7SUFFckQsTUFBTSxDQUFDLFFBQVE7UUFDYixjQUFjLENBQUMsa0JBQWtCLEdBQUcsR0FBRyxFQUFFO1lBQ3ZDLE9BQU8sd0JBQXdCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3JELENBQUMsQ0FBQztRQUVGLGNBQWMsQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUNwRCxPQUFPLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQztJQUNKLENBQUMifQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AbstractEggContext } from '@eggjs/tegg-runtime';
|
|
2
|
+
import { IdenticalUtil } from '@eggjs/tegg';
|
|
3
|
+
export class StandaloneContextImpl extends AbstractEggContext {
|
|
4
|
+
id;
|
|
5
|
+
constructor() {
|
|
6
|
+
super();
|
|
7
|
+
this.id = IdenticalUtil.createContextId();
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhbmRhbG9uZUNvbnRleHRJbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1N0YW5kYWxvbmVDb250ZXh0SW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxrQkFBa0I7SUFDbEQsRUFBRSxDQUFTO0lBRXBCO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsRUFBRSxHQUFHLGFBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0NBQ0YifQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { EggObject } from '@eggjs/tegg-runtime';
|
|
2
|
-
import { EggObjectName } from '@eggjs/tegg';
|
|
3
|
-
import { EggPrototype } from '@eggjs/tegg-metadata';
|
|
4
|
-
import { StandaloneInnerObjectProto } from './StandaloneInnerObjectProto.
|
|
1
|
+
import { type EggObject } from '@eggjs/tegg-runtime';
|
|
2
|
+
import { type EggObjectName } from '@eggjs/tegg';
|
|
3
|
+
import { type EggPrototype } from '@eggjs/tegg-metadata';
|
|
4
|
+
import { StandaloneInnerObjectProto } from './StandaloneInnerObjectProto.ts';
|
|
5
5
|
declare const OBJ: unique symbol;
|
|
6
6
|
export declare class StandaloneInnerObject implements EggObject {
|
|
7
7
|
readonly isReady: boolean;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { EggObjectFactory } from '@eggjs/tegg-runtime';
|
|
2
|
+
import { IdenticalUtil } from '@eggjs/tegg';
|
|
3
|
+
import {} from '@eggjs/tegg-metadata';
|
|
4
|
+
import { StandaloneInnerObjectProto } from "./StandaloneInnerObjectProto.js";
|
|
5
|
+
const OBJ = Symbol('EggCompatibleObject#obj');
|
|
6
|
+
export class StandaloneInnerObject {
|
|
7
|
+
isReady = true;
|
|
8
|
+
[OBJ];
|
|
9
|
+
proto;
|
|
10
|
+
name;
|
|
11
|
+
id;
|
|
12
|
+
constructor(name, proto) {
|
|
13
|
+
this.proto = proto;
|
|
14
|
+
this.name = name;
|
|
15
|
+
this.id = IdenticalUtil.createObjectId(this.proto.id);
|
|
16
|
+
}
|
|
17
|
+
get obj() {
|
|
18
|
+
if (!this[OBJ]) {
|
|
19
|
+
this[OBJ] = this.proto.constructEggObject();
|
|
20
|
+
}
|
|
21
|
+
return this[OBJ];
|
|
22
|
+
}
|
|
23
|
+
injectProperty() {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
static async createObject(name, proto) {
|
|
27
|
+
return new StandaloneInnerObject(name, proto);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
EggObjectFactory.registerEggObjectCreateMethod(StandaloneInnerObjectProto, StandaloneInnerObject.createObject);
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhbmRhbG9uZUlubmVyT2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1N0YW5kYWxvbmVJbm5lck9iamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBc0IsTUFBTSxhQUFhLENBQUM7QUFDaEUsT0FBTyxFQUFxQixNQUFNLHNCQUFzQixDQUFDO0FBRXpELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTdFLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0FBRTlDLE1BQU0sT0FBTyxxQkFBcUI7SUFDdkIsT0FBTyxHQUFZLElBQUksQ0FBQztJQUN6QixDQUFDLEdBQUcsQ0FBQyxDQUFTO0lBQ2IsS0FBSyxDQUE2QjtJQUNsQyxJQUFJLENBQWdCO0lBQ3BCLEVBQUUsQ0FBUztJQUVwQixZQUFZLElBQW1CLEVBQUUsS0FBaUM7UUFDaEUsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLEVBQUUsR0FBRyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUksR0FBRztRQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDOUMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTztJQUNULENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFtQixFQUFFLEtBQW1CO1FBQ2hFLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsS0FBbUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7Q0FDRjtBQUVELGdCQUFnQixDQUFDLDZCQUE2QixDQUFDLDBCQUEwQixFQUFFLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxDQUFDIn0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AccessLevel, EggProtoImplClass, EggPrototypeName, MetaDataKey, ObjectInitTypeLike, QualifierInfo, Id, QualifierValue } from '@eggjs/tegg';
|
|
2
|
-
import { EggPrototype, InjectObjectProto, EggPrototypeLifecycleContext } from '@eggjs/tegg-metadata';
|
|
1
|
+
import { AccessLevel, type EggProtoImplClass, type EggPrototypeName, type MetaDataKey, type ObjectInitTypeLike, type QualifierInfo, type Id, type QualifierValue } from '@eggjs/tegg';
|
|
2
|
+
import { type EggPrototype, type InjectObjectProto, type EggPrototypeLifecycleContext } from '@eggjs/tegg-metadata';
|
|
3
3
|
export declare class StandaloneInnerObjectProto implements EggPrototype {
|
|
4
4
|
[key: symbol]: PropertyDescriptor;
|
|
5
5
|
private readonly clazz;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { AccessLevel, MetadataUtil, QualifierUtil, IdenticalUtil, } from '@eggjs/tegg';
|
|
2
|
+
import {} from '@eggjs/tegg-metadata';
|
|
3
|
+
export class StandaloneInnerObjectProto {
|
|
4
|
+
clazz;
|
|
5
|
+
qualifiers;
|
|
6
|
+
id;
|
|
7
|
+
name;
|
|
8
|
+
initType;
|
|
9
|
+
accessLevel;
|
|
10
|
+
injectObjects;
|
|
11
|
+
loadUnitId;
|
|
12
|
+
constructor(id, name, clazz, initType, loadUnitId, qualifiers) {
|
|
13
|
+
this.id = id;
|
|
14
|
+
this.clazz = clazz;
|
|
15
|
+
this.name = name;
|
|
16
|
+
this.initType = initType;
|
|
17
|
+
this.accessLevel = AccessLevel.PUBLIC;
|
|
18
|
+
this.injectObjects = [];
|
|
19
|
+
this.loadUnitId = loadUnitId;
|
|
20
|
+
this.qualifiers = qualifiers;
|
|
21
|
+
}
|
|
22
|
+
verifyQualifiers(qualifiers) {
|
|
23
|
+
for (const qualifier of qualifiers) {
|
|
24
|
+
if (!this.verifyQualifier(qualifier)) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
verifyQualifier(qualifier) {
|
|
31
|
+
const selfQualifiers = this.qualifiers.find(t => t.attribute === qualifier.attribute);
|
|
32
|
+
return selfQualifiers?.value === qualifier.value;
|
|
33
|
+
}
|
|
34
|
+
constructEggObject() {
|
|
35
|
+
return Reflect.apply(this.clazz, null, []);
|
|
36
|
+
}
|
|
37
|
+
getMetaData(metadataKey) {
|
|
38
|
+
return MetadataUtil.getMetaData(metadataKey, this.clazz);
|
|
39
|
+
}
|
|
40
|
+
getQualifier(attribute) {
|
|
41
|
+
return this.qualifiers.find(t => t.attribute === attribute)?.value;
|
|
42
|
+
}
|
|
43
|
+
static create(ctx) {
|
|
44
|
+
const { clazz, loadUnit } = ctx;
|
|
45
|
+
const name = ctx.prototypeInfo.name;
|
|
46
|
+
const id = IdenticalUtil.createProtoId(loadUnit.id, name);
|
|
47
|
+
const proto = new StandaloneInnerObjectProto(id, name, clazz, ctx.prototypeInfo.initType, loadUnit.id, QualifierUtil.getProtoQualifiers(clazz));
|
|
48
|
+
return proto;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhbmRhbG9uZUlubmVyT2JqZWN0UHJvdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvU3RhbmRhbG9uZUlubmVyT2JqZWN0UHJvdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFHWCxZQUFZLEVBR1osYUFBYSxFQUViLGFBQWEsR0FDZCxNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBSU4sTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixNQUFNLE9BQU8sMEJBQTBCO0lBRXBCLEtBQUssQ0FBb0I7SUFDekIsVUFBVSxDQUFrQjtJQUVwQyxFQUFFLENBQVM7SUFDWCxJQUFJLENBQW1CO0lBQ3ZCLFFBQVEsQ0FBcUI7SUFDN0IsV0FBVyxDQUFjO0lBQ3pCLGFBQWEsQ0FBc0I7SUFDbkMsVUFBVSxDQUFLO0lBRXhCLFlBQ0UsRUFBVSxFQUNWLElBQXNCLEVBQ3RCLEtBQXdCLEVBQ3hCLFFBQTRCLEVBQzVCLFVBQWMsRUFDZCxVQUEyQjtRQUUzQixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUN0QyxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBMkI7UUFDMUMsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsZUFBZSxDQUFDLFNBQXdCO1FBQ3RDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEYsT0FBTyxjQUFjLEVBQUUsS0FBSyxLQUFLLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDbkQsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFdBQVcsQ0FBSSxXQUF3QjtRQUNyQyxPQUFPLFlBQVksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQWlCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUNyRSxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFpQztRQUM3QyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQztRQUNoQyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztRQUNwQyxNQUFNLEVBQUUsR0FBRyxhQUFhLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUQsTUFBTSxLQUFLLEdBQUcsSUFBSSwwQkFBMEIsQ0FDMUMsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQ2xHLENBQUM7UUFDRixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRiJ9
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { EggPrototype, LoadUnit } from '@eggjs/tegg-metadata';
|
|
2
|
-
import { QualifierInfo } from '@eggjs/tegg';
|
|
1
|
+
import { type EggPrototype, type LoadUnit } from '@eggjs/tegg-metadata';
|
|
2
|
+
import { type QualifierInfo } from '@eggjs/tegg';
|
|
3
3
|
export declare const StandaloneLoadUnitType = "StandaloneLoadUnitType";
|
|
4
4
|
export interface InnerObject {
|
|
5
5
|
obj: object;
|