@eggjs/tegg-common-util 4.0.0-beta.9 → 4.0.2-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/FSUtil.d.ts +5 -2
- package/dist/FSUtil.js +16 -13
- package/dist/Graph.d.ts +42 -62
- package/dist/Graph.js +121 -159
- package/dist/MapUtil.d.ts +5 -2
- package/dist/MapUtil.js +10 -9
- package/dist/ModuleConfig.d.ts +28 -18
- package/dist/ModuleConfig.js +257 -280
- package/dist/ModuleConfigs.d.ts +9 -6
- package/dist/ModuleConfigs.js +13 -10
- package/dist/NameUtil.d.ts +5 -2
- package/dist/NameUtil.js +9 -6
- package/dist/ObjectUtils.d.ts +9 -5
- package/dist/ObjectUtils.js +29 -51
- package/dist/ProxyUtil.d.ts +5 -2
- package/dist/ProxyUtil.js +12 -14
- package/dist/StackUtil.d.ts +11 -2
- package/dist/StackUtil.js +65 -46
- package/dist/StreamUtil.d.ts +6 -0
- package/dist/StreamUtil.js +11 -0
- package/dist/TimerUtil.d.ts +10 -2
- package/dist/TimerUtil.js +26 -6
- package/dist/index.d.ts +14 -12
- package/dist/index.js +16 -13
- package/package.json +34 -38
package/dist/ModuleConfig.js
CHANGED
|
@@ -1,282 +1,259 @@
|
|
|
1
|
-
import assert from 'node:assert';
|
|
2
|
-
import fs, { promises as fsPromise } from 'node:fs';
|
|
3
|
-
import path from 'node:path';
|
|
4
|
-
import { extend } from 'extend2';
|
|
5
|
-
import { globbySync } from 'globby';
|
|
6
|
-
import { load as yamlLoad } from 'js-yaml';
|
|
7
|
-
import { importResolve } from '@eggjs/utils';
|
|
8
1
|
import { FSUtil } from "./FSUtil.js";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
2
|
+
import assert from "node:assert";
|
|
3
|
+
import fs, { promises } from "node:fs";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import { importResolve } from "@eggjs/utils";
|
|
6
|
+
import { extend } from "extend2";
|
|
7
|
+
import globby from "globby";
|
|
8
|
+
import { load } from "js-yaml";
|
|
9
|
+
|
|
10
|
+
//#region src/ModuleConfig.ts
|
|
11
|
+
var ModuleReferenceConfigHelp = class {
|
|
12
|
+
static isInlineModuleReference(moduleReference) {
|
|
13
|
+
return !!moduleReference.path;
|
|
14
|
+
}
|
|
15
|
+
static isNpmModuleReference(moduleReference) {
|
|
16
|
+
return !!moduleReference.package;
|
|
17
|
+
}
|
|
19
18
|
};
|
|
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
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
}
|
|
262
|
-
return config;
|
|
263
|
-
}
|
|
264
|
-
static #loadJsonSync(moduleJsonPath) {
|
|
265
|
-
const moduleJsonPathExists = fs.existsSync(moduleJsonPath);
|
|
266
|
-
if (!moduleJsonPathExists) {
|
|
267
|
-
return;
|
|
268
|
-
}
|
|
269
|
-
const moduleJsonContent = fs.readFileSync(moduleJsonPath, 'utf8');
|
|
270
|
-
const moduleJson = JSON.parse(moduleJsonContent);
|
|
271
|
-
return moduleJson.config;
|
|
272
|
-
}
|
|
273
|
-
static #loadYamlSync(moduleYamlPath) {
|
|
274
|
-
const moduleYamlPathExists = fs.existsSync(moduleYamlPath);
|
|
275
|
-
if (!moduleYamlPathExists) {
|
|
276
|
-
return;
|
|
277
|
-
}
|
|
278
|
-
const moduleYamlContent = fs.readFileSync(moduleYamlPath, 'utf8');
|
|
279
|
-
return yamlLoad(moduleYamlContent);
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kdWxlQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL01vZHVsZUNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxFQUFFLEVBQUUsRUFBRSxRQUFRLElBQUksU0FBUyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3BELE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUU3QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDcEMsT0FBTyxFQUFFLElBQUksSUFBSSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFTM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJDLE1BQU0sT0FBTyx5QkFBeUI7SUFDcEMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLGVBQXNDO1FBQ25FLE9BQU8sQ0FBQyxDQUFFLGVBQStDLENBQUMsSUFBSSxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNLENBQUMsb0JBQW9CLENBQUMsZUFBc0M7UUFDaEUsT0FBTyxDQUFDLENBQUUsZUFBNEMsQ0FBQyxPQUFPLENBQUM7SUFDakUsQ0FBQztDQUNGO0FBRUQsTUFBTSw0QkFBNEIsR0FBRztJQUNuQyxJQUFJLEVBQUUsRUFBRTtDQUNULENBQUM7QUFFRixNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLE1BQU0sQ0FBQyxXQUFXLENBQXVCO0lBRWxDLE1BQU0sQ0FBQyxjQUFjLENBQUMsV0FBaUM7UUFDNUQsZ0JBQWdCLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUM3QyxDQUFDO0lBRU0sTUFBTSxDQUFDLG1CQUFtQixDQUFDLE9BQWUsRUFBRSxPQUFvQztRQUNyRiwyREFBMkQ7UUFDM0QseUVB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
|
|
19
|
+
const DEFAULT_READ_MODULE_REF_OPTS = { deep: 10 };
|
|
20
|
+
var ModuleConfigUtil = class ModuleConfigUtil {
|
|
21
|
+
static configNames;
|
|
22
|
+
static setConfigNames(configNames) {
|
|
23
|
+
ModuleConfigUtil.configNames = configNames;
|
|
24
|
+
}
|
|
25
|
+
static readModuleReference(baseDir, options) {
|
|
26
|
+
const configDir = path.join(baseDir, "config");
|
|
27
|
+
const moduleJsonPath = path.join(configDir, "module.json");
|
|
28
|
+
if (fs.existsSync(moduleJsonPath)) return this.readModuleReferenceFromModuleJson(configDir, moduleJsonPath, options?.cwd || baseDir);
|
|
29
|
+
return this.readModuleReferenceFromScan(baseDir, options);
|
|
30
|
+
}
|
|
31
|
+
static readModuleReferenceFromModuleJson(configDir, moduleJsonPath, cwd) {
|
|
32
|
+
const moduleJsonContent = fs.readFileSync(moduleJsonPath, "utf8");
|
|
33
|
+
const moduleJson = JSON.parse(moduleJsonContent);
|
|
34
|
+
const moduleReferenceList = [];
|
|
35
|
+
for (const moduleReferenceConfig of moduleJson) {
|
|
36
|
+
let moduleReference;
|
|
37
|
+
if (ModuleReferenceConfigHelp.isNpmModuleReference(moduleReferenceConfig)) {
|
|
38
|
+
const options = cwd ? { paths: [cwd] } : {};
|
|
39
|
+
const file = importResolve(path.posix.join(moduleReferenceConfig.package, "package.json"), options);
|
|
40
|
+
const modulePath = path.dirname(file);
|
|
41
|
+
moduleReference = {
|
|
42
|
+
path: modulePath,
|
|
43
|
+
name: ModuleConfigUtil.readModuleNameSync(modulePath)
|
|
44
|
+
};
|
|
45
|
+
} else if (ModuleReferenceConfigHelp.isInlineModuleReference(moduleReferenceConfig)) {
|
|
46
|
+
const modulePath = path.join(configDir, moduleReferenceConfig.path);
|
|
47
|
+
moduleReference = {
|
|
48
|
+
path: modulePath,
|
|
49
|
+
name: ModuleConfigUtil.readModuleNameSync(modulePath)
|
|
50
|
+
};
|
|
51
|
+
} else throw new Error("unknown type of module reference config: " + JSON.stringify(moduleReferenceConfig));
|
|
52
|
+
moduleReferenceList.push(moduleReference);
|
|
53
|
+
}
|
|
54
|
+
return moduleReferenceList;
|
|
55
|
+
}
|
|
56
|
+
static readModuleReferenceFromScan(baseDir, options) {
|
|
57
|
+
const ref = [];
|
|
58
|
+
const realOptions = Object.assign({}, DEFAULT_READ_MODULE_REF_OPTS, options);
|
|
59
|
+
const packagePaths = globby.sync([
|
|
60
|
+
"**/package.json",
|
|
61
|
+
"!**/node_modules",
|
|
62
|
+
"!**/+(.*)/**",
|
|
63
|
+
"!**/coverage",
|
|
64
|
+
...realOptions.extraFilePattern || []
|
|
65
|
+
], {
|
|
66
|
+
cwd: baseDir,
|
|
67
|
+
deep: realOptions.deep
|
|
68
|
+
});
|
|
69
|
+
const moduleDirSet = /* @__PURE__ */ new Set();
|
|
70
|
+
for (const packagePath of packagePaths) {
|
|
71
|
+
const absolutePkgPath = path.join(baseDir, packagePath);
|
|
72
|
+
let realPkgPath;
|
|
73
|
+
try {
|
|
74
|
+
realPkgPath = fs.realpathSync(absolutePkgPath);
|
|
75
|
+
} catch {
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
const moduleDir = path.dirname(realPkgPath);
|
|
79
|
+
if (moduleDirSet.has(moduleDir)) continue;
|
|
80
|
+
moduleDirSet.add(moduleDir);
|
|
81
|
+
let name;
|
|
82
|
+
try {
|
|
83
|
+
name = this.readModuleNameSync(moduleDir);
|
|
84
|
+
} catch {
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
ref.push({
|
|
88
|
+
path: moduleDir,
|
|
89
|
+
name
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
const moduleReferences = this.readModuleFromNodeModules(baseDir);
|
|
93
|
+
for (const moduleReference of moduleReferences) {
|
|
94
|
+
const moduleBasePath = path.basename(moduleReference.path);
|
|
95
|
+
moduleDirSet.forEach((modulePath) => {
|
|
96
|
+
if (path.basename(modulePath) === moduleBasePath) throw new Error("duplicate import of module reference: " + moduleBasePath);
|
|
97
|
+
});
|
|
98
|
+
ref.push({
|
|
99
|
+
path: moduleReference.path,
|
|
100
|
+
name: moduleReference.name
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
return ref;
|
|
104
|
+
}
|
|
105
|
+
static readModuleFromNodeModules(baseDir) {
|
|
106
|
+
const ref = [];
|
|
107
|
+
let pkgContent;
|
|
108
|
+
try {
|
|
109
|
+
pkgContent = fs.readFileSync(path.join(baseDir, "package.json"), "utf8");
|
|
110
|
+
} catch {
|
|
111
|
+
return [];
|
|
112
|
+
}
|
|
113
|
+
const pkg = JSON.parse(pkgContent);
|
|
114
|
+
for (const dependencyKey of Object.keys(pkg.dependencies || {})) {
|
|
115
|
+
let packageJsonPath;
|
|
116
|
+
try {
|
|
117
|
+
packageJsonPath = importResolve(`${dependencyKey}/package.json`, { paths: [baseDir] });
|
|
118
|
+
} catch {
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
const absolutePkgPath = path.dirname(packageJsonPath);
|
|
122
|
+
const realPkgPath = fs.realpathSync(absolutePkgPath);
|
|
123
|
+
try {
|
|
124
|
+
const name = this.readModuleNameSync(realPkgPath);
|
|
125
|
+
ref.push({
|
|
126
|
+
path: realPkgPath,
|
|
127
|
+
name
|
|
128
|
+
});
|
|
129
|
+
} catch {
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return ref;
|
|
134
|
+
}
|
|
135
|
+
static resolveModuleDir(moduleDir, baseDir) {
|
|
136
|
+
if (path.isAbsolute(moduleDir)) return moduleDir;
|
|
137
|
+
assert(baseDir, "baseDir is required");
|
|
138
|
+
return path.join(baseDir, "config", moduleDir);
|
|
139
|
+
}
|
|
140
|
+
static getModuleName(pkg) {
|
|
141
|
+
assert(pkg.eggModule && pkg.eggModule.name, "eggModule.name not found in package.json");
|
|
142
|
+
return pkg.eggModule.name;
|
|
143
|
+
}
|
|
144
|
+
static async readModuleName(baseDir, moduleDir) {
|
|
145
|
+
moduleDir = ModuleConfigUtil.resolveModuleDir(moduleDir, baseDir);
|
|
146
|
+
const pkgContent = await promises.readFile(path.join(moduleDir, "package.json"), "utf8");
|
|
147
|
+
const pkg = JSON.parse(pkgContent);
|
|
148
|
+
return ModuleConfigUtil.getModuleName(pkg);
|
|
149
|
+
}
|
|
150
|
+
static readModuleNameSync(moduleDir, baseDir) {
|
|
151
|
+
moduleDir = ModuleConfigUtil.resolveModuleDir(moduleDir, baseDir);
|
|
152
|
+
const pkgContent = fs.readFileSync(path.join(moduleDir, "package.json"), "utf8");
|
|
153
|
+
const pkg = JSON.parse(pkgContent);
|
|
154
|
+
return ModuleConfigUtil.getModuleName(pkg);
|
|
155
|
+
}
|
|
156
|
+
static async loadModuleConfig(moduleDir, baseDir, env) {
|
|
157
|
+
const modulePath = ModuleConfigUtil.resolveModuleDir(moduleDir, baseDir);
|
|
158
|
+
let configNames;
|
|
159
|
+
if (env) configNames = ["module", `module.${env}`];
|
|
160
|
+
else configNames = ModuleConfigUtil.configNames || ["module"];
|
|
161
|
+
const target = {};
|
|
162
|
+
for (const configName of configNames) {
|
|
163
|
+
let config = await ModuleConfigUtil.#loadOne(modulePath, configName);
|
|
164
|
+
if (configName === "module.default" && !config) config = await ModuleConfigUtil.#loadOne(modulePath, "module");
|
|
165
|
+
if (config) extend(true, target, config);
|
|
166
|
+
}
|
|
167
|
+
return target;
|
|
168
|
+
}
|
|
169
|
+
static async #loadOne(moduleDir, configName) {
|
|
170
|
+
const yamlConfigPath = path.join(moduleDir, `${configName}.yml`);
|
|
171
|
+
let config = await ModuleConfigUtil.#loadYaml(yamlConfigPath);
|
|
172
|
+
if (!config) {
|
|
173
|
+
const jsonConfigPath = path.join(moduleDir, `${configName}.json`);
|
|
174
|
+
config = await ModuleConfigUtil.#loadJson(jsonConfigPath);
|
|
175
|
+
}
|
|
176
|
+
return config;
|
|
177
|
+
}
|
|
178
|
+
static async #loadJson(moduleJsonPath) {
|
|
179
|
+
if (!await FSUtil.fileExists(moduleJsonPath)) return;
|
|
180
|
+
const moduleJsonContent = await promises.readFile(moduleJsonPath, "utf8");
|
|
181
|
+
return JSON.parse(moduleJsonContent).config;
|
|
182
|
+
}
|
|
183
|
+
static async #loadYaml(moduleYamlPath) {
|
|
184
|
+
if (!await FSUtil.fileExists(moduleYamlPath)) return;
|
|
185
|
+
return load(await promises.readFile(moduleYamlPath, "utf8"));
|
|
186
|
+
}
|
|
187
|
+
static loadModuleConfigSync(moduleDir, baseDir, env) {
|
|
188
|
+
const modulePath = ModuleConfigUtil.resolveModuleDir(moduleDir, baseDir);
|
|
189
|
+
let configNames;
|
|
190
|
+
if (env) configNames = ["module", `module.${env}`];
|
|
191
|
+
else configNames = ModuleConfigUtil.configNames || ["module"];
|
|
192
|
+
const target = {};
|
|
193
|
+
for (const configName of configNames) {
|
|
194
|
+
let config = ModuleConfigUtil.#loadOneSync(modulePath, configName);
|
|
195
|
+
if (configName === "module.default" && !config) config = ModuleConfigUtil.#loadOneSync(modulePath, "module");
|
|
196
|
+
if (config) extend(true, target, config);
|
|
197
|
+
}
|
|
198
|
+
return target;
|
|
199
|
+
}
|
|
200
|
+
static #loadOneSync(moduleDir, configName) {
|
|
201
|
+
const yamlConfigPath = path.join(moduleDir, `${configName}.yml`);
|
|
202
|
+
let config = ModuleConfigUtil.#loadYamlSync(yamlConfigPath);
|
|
203
|
+
if (!config) {
|
|
204
|
+
const jsonConfigPath = path.join(moduleDir, `${configName}.json`);
|
|
205
|
+
config = ModuleConfigUtil.#loadJsonSync(jsonConfigPath);
|
|
206
|
+
}
|
|
207
|
+
return config;
|
|
208
|
+
}
|
|
209
|
+
static #loadJsonSync(moduleJsonPath) {
|
|
210
|
+
if (!fs.existsSync(moduleJsonPath)) return;
|
|
211
|
+
const moduleJsonContent = fs.readFileSync(moduleJsonPath, "utf8");
|
|
212
|
+
return JSON.parse(moduleJsonContent).config;
|
|
213
|
+
}
|
|
214
|
+
static #loadYamlSync(moduleYamlPath) {
|
|
215
|
+
if (!fs.existsSync(moduleYamlPath)) return;
|
|
216
|
+
return load(fs.readFileSync(moduleYamlPath, "utf8"));
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Deduplicate module references to avoid adding the same module multiple times.
|
|
220
|
+
* @param moduleReferences array of module references
|
|
221
|
+
* @return deduplicated module references
|
|
222
|
+
*/
|
|
223
|
+
static deduplicateModules(moduleReferences) {
|
|
224
|
+
const moduleMap = /* @__PURE__ */ new Map();
|
|
225
|
+
const nameMap = /* @__PURE__ */ new Map();
|
|
226
|
+
for (const moduleRef of moduleReferences) {
|
|
227
|
+
const key = moduleRef.path;
|
|
228
|
+
const existingRef = moduleMap.get(key);
|
|
229
|
+
if (existingRef) {
|
|
230
|
+
const existingOptional = existingRef.optional ?? false;
|
|
231
|
+
const currentOptional = moduleRef.optional ?? false;
|
|
232
|
+
if (!existingOptional && currentOptional) continue;
|
|
233
|
+
else if (existingOptional && !currentOptional) {
|
|
234
|
+
if (existingRef.name !== moduleRef.name) {
|
|
235
|
+
const existingByName$1 = nameMap.get(moduleRef.name);
|
|
236
|
+
if (existingByName$1) throw new Error(`Duplicate module name "${moduleRef.name}" found: existing at ${existingByName$1.path}, duplicate at ${moduleRef.path}`);
|
|
237
|
+
}
|
|
238
|
+
const newModuleRef = {
|
|
239
|
+
...moduleRef,
|
|
240
|
+
optional: false
|
|
241
|
+
};
|
|
242
|
+
moduleMap.set(key, newModuleRef);
|
|
243
|
+
if (nameMap.get(existingRef.name) === existingRef) nameMap.delete(existingRef.name);
|
|
244
|
+
nameMap.set(newModuleRef.name, newModuleRef);
|
|
245
|
+
continue;
|
|
246
|
+
}
|
|
247
|
+
continue;
|
|
248
|
+
}
|
|
249
|
+
const existingByName = nameMap.get(moduleRef.name);
|
|
250
|
+
if (existingByName) throw new Error(`Duplicate module name "${moduleRef.name}" found: existing at ${existingByName.path}, duplicate at ${moduleRef.path}`);
|
|
251
|
+
moduleMap.set(key, moduleRef);
|
|
252
|
+
nameMap.set(moduleRef.name, moduleRef);
|
|
253
|
+
}
|
|
254
|
+
return Array.from(moduleMap.values());
|
|
255
|
+
}
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
//#endregion
|
|
259
|
+
export { ModuleConfigUtil, ModuleReferenceConfigHelp };
|
package/dist/ModuleConfigs.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { ModuleConfig as ModuleConfig$1, ModuleConfigHolder } from "@eggjs/tegg-types";
|
|
2
|
+
|
|
3
|
+
//#region src/ModuleConfigs.d.ts
|
|
4
|
+
declare class ModuleConfigs {
|
|
5
|
+
readonly inner: Record<string, ModuleConfigHolder>;
|
|
6
|
+
constructor(inner: Record<string, ModuleConfigHolder>);
|
|
7
|
+
get(moduleName: string): ModuleConfig$1 | undefined;
|
|
6
8
|
}
|
|
7
|
-
|
|
9
|
+
//#endregion
|
|
10
|
+
export { type ModuleConfig$1 as ModuleConfig, ModuleConfigs };
|
package/dist/ModuleConfigs.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
1
|
+
//#region src/ModuleConfigs.ts
|
|
2
|
+
var ModuleConfigs = class {
|
|
3
|
+
inner;
|
|
4
|
+
constructor(inner) {
|
|
5
|
+
this.inner = inner;
|
|
6
|
+
}
|
|
7
|
+
get(moduleName) {
|
|
8
|
+
return this.inner[moduleName]?.config;
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
//#endregion
|
|
13
|
+
export { ModuleConfigs };
|
package/dist/NameUtil.d.ts
CHANGED