@eggjs/tegg-standalone 4.0.0-beta.7 → 4.0.0-beta.9
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/dist/ConfigSourceLoadUnitHook.d.ts +9 -0
- package/dist/ConfigSourceLoadUnitHook.js +19 -20
- package/dist/EggModuleLoader.d.ts +16 -20
- package/dist/EggModuleLoader.js +59 -54
- package/dist/ModuleConfig.d.ts +1 -0
- package/dist/ModuleConfig.js +9 -0
- package/dist/Runner.d.ts +47 -51
- package/dist/Runner.js +231 -176
- package/dist/StandaloneContext.d.ts +4 -8
- package/dist/StandaloneContext.js +10 -14
- package/dist/StandaloneContextHandler.d.ts +6 -0
- package/dist/StandaloneContextHandler.js +14 -18
- package/dist/StandaloneContextImpl.d.ts +5 -0
- package/dist/StandaloneContextImpl.js +10 -0
- package/dist/StandaloneInnerObject.d.ts +15 -18
- package/dist/StandaloneInnerObject.js +29 -29
- package/dist/StandaloneInnerObjectProto.d.ts +19 -23
- package/dist/StandaloneInnerObjectProto.js +51 -49
- package/dist/StandaloneLoadUnit.d.ts +22 -9
- package/dist/StandaloneLoadUnit.js +61 -53
- package/dist/index.d.ts +6 -7
- package/dist/index.js +7 -8
- package/dist/main.d.ts +3 -7
- package/dist/main.js +31 -28
- package/package.json +13 -13
package/dist/Runner.js
CHANGED
|
@@ -1,181 +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';
|
|
1
9
|
import { EggModuleLoader } from "./EggModuleLoader.js";
|
|
2
10
|
import { StandaloneLoadUnit, StandaloneLoadUnitType } from "./StandaloneLoadUnit.js";
|
|
3
11
|
import { StandaloneContext } from "./StandaloneContext.js";
|
|
4
12
|
import { StandaloneContextHandler } from "./StandaloneContextHandler.js";
|
|
5
13
|
import { ConfigSourceLoadUnitHook } from "./ConfigSourceLoadUnitHook.js";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
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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
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import { AbstractEggContext } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
id: string;
|
|
6
|
-
constructor();
|
|
1
|
+
import { AbstractEggContext } from '@eggjs/tegg-runtime';
|
|
2
|
+
export declare class StandaloneContext extends AbstractEggContext {
|
|
3
|
+
id: string;
|
|
4
|
+
constructor();
|
|
7
5
|
}
|
|
8
|
-
//#endregion
|
|
9
|
-
export { StandaloneContext };
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
import { AbstractEggContext } from
|
|
2
|
-
import { IdenticalUtil } from
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
//#endregion
|
|
14
|
-
export { StandaloneContext };
|
|
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,18 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
//#endregion
|
|
18
|
-
export { StandaloneContextHandler };
|
|
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,20 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
//#region src/StandaloneInnerObject.d.ts
|
|
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';
|
|
7
5
|
declare const OBJ: unique symbol;
|
|
8
|
-
declare class StandaloneInnerObject implements EggObject {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
6
|
+
export declare class StandaloneInnerObject implements EggObject {
|
|
7
|
+
readonly isReady: boolean;
|
|
8
|
+
private [OBJ];
|
|
9
|
+
readonly proto: StandaloneInnerObjectProto;
|
|
10
|
+
readonly name: EggObjectName;
|
|
11
|
+
readonly id: string;
|
|
12
|
+
constructor(name: EggObjectName, proto: StandaloneInnerObjectProto);
|
|
13
|
+
get obj(): object;
|
|
14
|
+
injectProperty(): void;
|
|
15
|
+
static createObject(name: EggObjectName, proto: EggPrototype): Promise<StandaloneInnerObject>;
|
|
18
16
|
}
|
|
19
|
-
|
|
20
|
-
export { StandaloneInnerObject };
|
|
17
|
+
export {};
|