@eggjs/tegg-standalone 3.62.0 → 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} +5 -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} +11 -9
- package/dist/Runner.js +236 -0
- package/dist/StandaloneContext.js +10 -0
- package/dist/{src/StandaloneContextHandler.d.ts → StandaloneContextHandler.d.ts} +2 -2
- 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} +3 -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 -23
- package/dist/{src/main.d.ts → main.d.ts} +1 -1
- package/dist/main.js +34 -0
- package/package.json +38 -34
- package/dist/src/ConfigSourceLoadUnitHook.js +0 -23
- package/dist/src/EggModuleLoader.js +0 -58
- package/dist/src/ModuleConfig.d.ts +0 -5
- package/dist/src/ModuleConfig.js +0 -4
- package/dist/src/Runner.js +0 -228
- package/dist/src/StandaloneContext.js +0 -13
- package/dist/src/StandaloneContextHandler.js +0 -18
- package/dist/src/StandaloneContextImpl.js +0 -13
- package/dist/src/StandaloneInnerObject.js +0 -30
- package/dist/src/StandaloneInnerObjectProto.js +0 -47
- package/dist/src/StandaloneLoadUnit.js +0 -66
- 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;
|
|
@@ -9,7 +9,9 @@ export interface EggModuleLoaderOptions {
|
|
|
9
9
|
export declare class EggModuleLoader {
|
|
10
10
|
private moduleReferences;
|
|
11
11
|
private globalGraph;
|
|
12
|
+
private options;
|
|
12
13
|
constructor(moduleReferences: readonly ModuleReference[], options: EggModuleLoaderOptions);
|
|
14
|
+
init(): Promise<void>;
|
|
13
15
|
private static generateAppGraph;
|
|
14
16
|
load(): Promise<LoadUnit[]>;
|
|
15
17
|
static preLoad(moduleReferences: readonly ModuleReference[], options: EggModuleLoaderOptions): Promise<void>;
|
|
@@ -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
|
}
|
|
@@ -24,6 +24,7 @@ export declare class Runner {
|
|
|
24
24
|
readonly moduleConfigs: Record<string, ModuleConfigHolder>;
|
|
25
25
|
readonly env?: string;
|
|
26
26
|
readonly name?: string;
|
|
27
|
+
readonly options?: RunnerOptions;
|
|
27
28
|
private loadUnitLoader;
|
|
28
29
|
private runnerProto;
|
|
29
30
|
private configSourceEggPrototypeHook;
|
|
@@ -31,10 +32,10 @@ export declare class Runner {
|
|
|
31
32
|
private dalTableEggPrototypeHook;
|
|
32
33
|
private dalModuleLoadUnitHook;
|
|
33
34
|
private transactionPrototypeHook;
|
|
34
|
-
private
|
|
35
|
-
private
|
|
36
|
-
private
|
|
37
|
-
private
|
|
35
|
+
private crosscutAdviceFactory;
|
|
36
|
+
private loadUnitAopHook;
|
|
37
|
+
private eggPrototypeCrossCutHook;
|
|
38
|
+
private eggObjectAopHook;
|
|
38
39
|
loadUnits: LoadUnit[];
|
|
39
40
|
loadUnitInstances: LoadUnitInstance[];
|
|
40
41
|
innerObjects: Record<string, InnerObject[]>;
|
|
@@ -42,6 +43,7 @@ export declare class Runner {
|
|
|
42
43
|
load(): Promise<LoadUnit[]>;
|
|
43
44
|
static getModuleReferences(cwd: string, dependencies?: RunnerOptions['dependencies']): readonly ModuleReference[];
|
|
44
45
|
static preLoad(cwd: string, dependencies?: RunnerOptions['dependencies']): Promise<void>;
|
|
46
|
+
private initLoaderInstance;
|
|
45
47
|
init(): Promise<void>;
|
|
46
48
|
run<T>(aCtx?: EggContext): Promise<T>;
|
|
47
49
|
destroy(): Promise<void>;
|
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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
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AbstractEggContext } from '@eggjs/tegg-runtime';
|
|
2
|
+
import { IdenticalUtil } from '@eggjs/tegg-lifecycle';
|
|
3
|
+
export class StandaloneContext extends AbstractEggContext {
|
|
4
|
+
id;
|
|
5
|
+
constructor() {
|
|
6
|
+
super();
|
|
7
|
+
this.id = IdenticalUtil.createContextId();
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhbmRhbG9uZUNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvU3RhbmRhbG9uZUNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxrQkFBa0I7SUFDdkQsRUFBRSxDQUFTO0lBRVg7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxFQUFFLEdBQUcsYUFBYSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzVDLENBQUM7Q0FDRiJ9
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AsyncLocalStorage } from 'async_hooks';
|
|
2
|
-
import { EggContext } from '@eggjs/tegg-runtime';
|
|
1
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
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 {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
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,6 +1,7 @@
|
|
|
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
|
+
[key: symbol]: PropertyDescriptor;
|
|
4
5
|
private readonly clazz;
|
|
5
6
|
private readonly qualifiers;
|
|
6
7
|
readonly id: string;
|
|
@@ -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;
|