@eggjs/tegg-config 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 CHANGED
@@ -1,5 +1,17 @@
1
1
  # `@eggjs/tegg-config`
2
2
 
3
+ [![NPM version][npm-image]][npm-url]
4
+ [![Known Vulnerabilities][snyk-image]][snyk-url]
5
+ [![npm download][download-image]][download-url]
6
+ [![Node.js Version](https://img.shields.io/node/v/@eggjs/tegg-config.svg?style=flat)](https://nodejs.org/en/download/)
7
+
8
+ [npm-image]: https://img.shields.io/npm/v/@eggjs/tegg-config.svg?style=flat-square
9
+ [npm-url]: https://npmjs.org/package/@eggjs/tegg-config
10
+ [snyk-image]: https://snyk.io/test/npm/@eggjs/tegg-config/badge.svg?style=flat-square
11
+ [snyk-url]: https://snyk.io/test/npm/@eggjs/tegg-config
12
+ [download-image]: https://img.shields.io/npm/dm/@eggjs/tegg-config.svg?style=flat-square
13
+ [download-url]: https://npmjs.org/package/@eggjs/tegg-config
14
+
3
15
  Egg plugin to load module config(module.yml/module.json)
4
16
 
5
17
  # Usage
@@ -0,0 +1,2 @@
1
+ import TeggConfigAppHook from './app.ts';
2
+ export default TeggConfigAppHook;
package/dist/agent.js ADDED
@@ -0,0 +1,3 @@
1
+ import TeggConfigAppHook from "./app.js";
2
+ export default TeggConfigAppHook;
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxpQkFBaUIsTUFBTSxVQUFVLENBQUM7QUFFekMsZUFBZSxpQkFBaUIsQ0FBQyJ9
package/dist/app.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ import type { Application, ILifecycleBoot } from 'egg';
2
+ import type { ModuleReference, ModuleConfigHolder } from '@eggjs/tegg-common-util';
3
+ export default class App implements ILifecycleBoot {
4
+ private readonly app;
5
+ constructor(app: Application);
6
+ configWillLoad(): void;
7
+ beforeClose(): Promise<void>;
8
+ }
9
+ declare module 'egg' {
10
+ interface ModuleConfig {
11
+ }
12
+ interface EggApplicationCore {
13
+ moduleReferences: readonly ModuleReference[];
14
+ moduleConfigs: Record<string, ModuleConfigHolder>;
15
+ }
16
+ }
package/dist/app.js ADDED
@@ -0,0 +1,37 @@
1
+ import { debuglog } from 'node:util';
2
+ import { ModuleConfigUtil } from '@eggjs/tegg-common-util';
3
+ import { ModuleScanner } from "./lib/ModuleScanner.js";
4
+ const debug = debuglog('tegg/plugin/config/app');
5
+ export default class App {
6
+ app;
7
+ constructor(app) {
8
+ this.app = app;
9
+ const configNames = this.app.loader.getTypeFiles('module');
10
+ ModuleConfigUtil.setConfigNames(configNames);
11
+ }
12
+ configWillLoad() {
13
+ const { readModuleOptions } = this.app.config.tegg;
14
+ const moduleScanner = new ModuleScanner(this.app.baseDir, readModuleOptions);
15
+ this.app.moduleReferences = moduleScanner.loadModuleReferences();
16
+ debug('load moduleReferences: %o', this.app.moduleReferences);
17
+ this.app.moduleConfigs = {};
18
+ for (const reference of this.app.moduleReferences) {
19
+ const absoluteRef = {
20
+ path: ModuleConfigUtil.resolveModuleDir(reference.path, this.app.baseDir),
21
+ name: reference.name,
22
+ optional: reference.optional,
23
+ };
24
+ const moduleName = ModuleConfigUtil.readModuleNameSync(absoluteRef.path);
25
+ this.app.moduleConfigs[moduleName] = {
26
+ name: moduleName,
27
+ reference: absoluteRef,
28
+ config: ModuleConfigUtil.loadModuleConfigSync(absoluteRef.path),
29
+ };
30
+ }
31
+ debug('load moduleConfigs: %o', this.app.moduleConfigs);
32
+ }
33
+ async beforeClose() {
34
+ ModuleConfigUtil.setConfigNames(undefined);
35
+ }
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3JDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUVqRCxNQUFNLENBQUMsT0FBTyxPQUFPLEdBQUc7SUFDTCxHQUFHLENBQWM7SUFFbEMsWUFBWSxHQUFnQjtRQUMxQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzRCxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELGNBQWM7UUFDWixNQUFNLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDbkQsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQ2pFLEtBQUssQ0FBQywyQkFBMkIsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFOUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQzVCLEtBQUssTUFBTSxTQUFTLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2xELE1BQU0sV0FBVyxHQUFvQjtnQkFDbkMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7Z0JBQ3pFLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtnQkFDcEIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRO2FBQzdCLENBQUM7WUFFRixNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUc7Z0JBQ25DLElBQUksRUFBRSxVQUFVO2dCQUNoQixTQUFTLEVBQUUsV0FBVztnQkFDdEIsTUFBTSxFQUFFLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7YUFDaEUsQ0FBQztRQUNKLENBQUM7UUFFRCxLQUFLLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVc7UUFDZixnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0MsQ0FBQztDQUNGIn0=
@@ -0,0 +1,13 @@
1
+ import { type ReadModuleReferenceOptions } from '@eggjs/tegg-common-util';
2
+ declare const _default: import("egg").EggConfigFactory;
3
+ export default _default;
4
+ declare module 'egg' {
5
+ interface EggAppConfig {
6
+ /**
7
+ * tegg config
8
+ */
9
+ tegg: {
10
+ readModuleOptions: ReadModuleReferenceOptions;
11
+ };
12
+ }
13
+ }
@@ -0,0 +1,14 @@
1
+ import { defineConfigFactory } from 'egg';
2
+ import {} from '@eggjs/tegg-common-util';
3
+ export default defineConfigFactory(appInfo => {
4
+ return {
5
+ tegg: {
6
+ readModuleOptions: {
7
+ // https://github.com/eggjs/tegg/blob/33e749cc82a74411684db360b30f24ed0083dd95/core/common-util/src/ModuleConfig.ts#L29
8
+ deep: 10,
9
+ cwd: appInfo.baseDir,
10
+ },
11
+ },
12
+ };
13
+ });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUMxQyxPQUFPLEVBQW1DLE1BQU0seUJBQXlCLENBQUM7QUFFMUUsZUFBZSxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsRUFBRTtJQUMzQyxPQUFPO1FBQ0wsSUFBSSxFQUFFO1lBQ0osaUJBQWlCLEVBQUU7Z0JBQ2pCLHVIQUF1SDtnQkFDdkgsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsR0FBRyxFQUFFLE9BQU8sQ0FBQyxPQUFPO2FBQ3JCO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUMifQ==
@@ -0,0 +1 @@
1
+ import './types.ts';
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ import "./types.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxZQUFZLENBQUMifQ==
@@ -1,4 +1,4 @@
1
- import { ModuleReference, ReadModuleReferenceOptions } from '@eggjs/tegg-common-util';
1
+ import { type ModuleReference, type ReadModuleReferenceOptions } from '@eggjs/tegg-common-util';
2
2
  export declare class ModuleScanner {
3
3
  private readonly baseDir;
4
4
  private readonly readModuleOptions;
@@ -0,0 +1,45 @@
1
+ import path from 'node:path';
2
+ import { readFileSync } from 'node:fs';
3
+ import { debuglog } from 'node:util';
4
+ import { ModuleConfigUtil } from '@eggjs/tegg-common-util';
5
+ import { importResolve } from '@eggjs/utils';
6
+ const debug = debuglog('tegg/plugin/config/ModuleScanner');
7
+ export class ModuleScanner {
8
+ baseDir;
9
+ readModuleOptions;
10
+ constructor(baseDir, readModuleOptions) {
11
+ this.baseDir = baseDir;
12
+ this.readModuleOptions = readModuleOptions;
13
+ }
14
+ /**
15
+ * - load module references from config or scan from baseDir
16
+ * - load framework module as optional module reference
17
+ */
18
+ loadModuleReferences() {
19
+ const moduleReferences = ModuleConfigUtil.readModuleReference(this.baseDir, this.readModuleOptions || {});
20
+ const appPkg = JSON.parse(readFileSync(path.join(this.baseDir, 'package.json'), 'utf-8'));
21
+ const framework = appPkg.egg?.framework;
22
+ if (!framework) {
23
+ return moduleReferences;
24
+ }
25
+ const frameworkPkg = importResolve(`${framework}/package.json`, {
26
+ paths: [this.baseDir],
27
+ });
28
+ const frameworkDir = path.dirname(frameworkPkg);
29
+ debug('loadModuleReferences from framework:%o, frameworkDir:%o', framework, frameworkDir);
30
+ const optionalModuleReferences = ModuleConfigUtil.readModuleReference(frameworkDir, this.readModuleOptions || {});
31
+ const result = [
32
+ ...moduleReferences,
33
+ ];
34
+ for (const optionalModuleReference of optionalModuleReferences) {
35
+ if (!result.some(t => t.path === optionalModuleReference.path)) {
36
+ result.push({
37
+ ...optionalModuleReference,
38
+ optional: true,
39
+ });
40
+ }
41
+ }
42
+ return result;
43
+ }
44
+ }
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kdWxlU2Nhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvTW9kdWxlU2Nhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXJDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBeUQsTUFBTSx5QkFBeUIsQ0FBQztBQUNsSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0FBRTNELE1BQU0sT0FBTyxhQUFhO0lBQ1AsT0FBTyxDQUFTO0lBQ2hCLGlCQUFpQixDQUE2QjtJQUUvRCxZQUFZLE9BQWUsRUFBRSxpQkFBNkM7UUFDeEUsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO0lBQzdDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxvQkFBb0I7UUFDbEIsTUFBTSxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMxRyxNQUFNLE1BQU0sR0FBcUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDNUgsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUM7UUFDeEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsT0FBTyxnQkFBZ0IsQ0FBQztRQUMxQixDQUFDO1FBQ0QsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLEdBQUcsU0FBUyxlQUFlLEVBQUU7WUFDOUQsS0FBSyxFQUFFLENBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBRTtTQUN4QixDQUFDLENBQUM7UUFDSCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hELEtBQUssQ0FBQyx5REFBeUQsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDMUYsTUFBTSx3QkFBd0IsR0FBRyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2xILE1BQU0sTUFBTSxHQUFHO1lBQ2IsR0FBRyxnQkFBZ0I7U0FDcEIsQ0FBQztRQUNGLEtBQUssTUFBTSx1QkFBdUIsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1lBQy9ELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUMvRCxNQUFNLENBQUMsSUFBSSxDQUFDO29CQUNWLEdBQUcsdUJBQXVCO29CQUMxQixRQUFRLEVBQUUsSUFBSTtpQkFDZixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiJ9
@@ -0,0 +1,2 @@
1
+ import './config/config.default.ts';
2
+ import './app.ts';
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ import "./config/config.default.js";
2
+ import "./app.js";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLFVBQVUsQ0FBQyJ9
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "eggPlugin": {
4
4
  "name": "teggConfig"
5
5
  },
6
- "version": "3.62.0",
6
+ "version": "4.0.0-beta.10",
7
7
  "description": "module config plugin for egg",
8
8
  "keywords": [
9
9
  "egg",
@@ -14,21 +14,17 @@
14
14
  "tegg"
15
15
  ],
16
16
  "files": [
17
- "app.js",
18
- "app.d.ts",
19
- "typings/index.d.ts",
20
- "lib/**/*.js",
21
- "lib/**/*.d.ts",
22
- "agent.js",
23
- "agent.d.ts"
17
+ "dist"
24
18
  ],
25
- "types": "typings/index.d.ts",
26
- "scripts": {
27
- "test": "cross-env NODE_ENV=test NODE_OPTIONS='--no-deprecation' mocha",
28
- "clean": "tsc -b --clean",
29
- "tsc": "npm run clean && tsc -p ./tsconfig.json",
30
- "tsc:pub": "npm run clean && tsc -p ./tsconfig.pub.json",
31
- "prepublishOnly": "npm run tsc:pub"
19
+ "type": "module",
20
+ "exports": {
21
+ ".": "./dist/index.js",
22
+ "./agent": "./dist/agent.js",
23
+ "./app": "./dist/app.js",
24
+ "./config/config.default": "./dist/config/config.default.js",
25
+ "./lib/ModuleScanner": "./dist/lib/ModuleScanner.js",
26
+ "./types": "./dist/types.js",
27
+ "./package.json": "./package.json"
32
28
  },
33
29
  "homepage": "https://github.com/eggjs/tegg",
34
30
  "bugs": {
@@ -40,22 +36,32 @@
40
36
  "directory": "plugin/config"
41
37
  },
42
38
  "engines": {
43
- "node": ">=14.0.0"
39
+ "node": ">=22.18.0"
44
40
  },
45
41
  "dependencies": {
46
- "@eggjs/tegg-common-util": "^3.62.0"
42
+ "@eggjs/utils": "beta",
43
+ "@eggjs/tegg-common-util": "4.0.0-beta.10"
44
+ },
45
+ "peerDependencies": {
46
+ "egg": "beta"
47
47
  },
48
48
  "devDependencies": {
49
- "@types/mocha": "^10.0.1",
50
- "@types/node": "^20.2.4",
51
- "cross-env": "^7.0.3",
52
- "egg": "^3.9.1",
53
- "mocha": "^10.2.0",
54
- "ts-node": "^10.9.1",
55
- "typescript": "^5.0.4"
49
+ "@eggjs/mock": "beta",
50
+ "@types/node": "^22.10.5",
51
+ "egg": "beta",
52
+ "typescript": "^5.9.3",
53
+ "tsdown": "^0.15.6",
54
+ "unplugin-unused": "^0.5.3"
56
55
  },
57
56
  "publishConfig": {
58
57
  "access": "public"
59
58
  },
60
- "gitHead": "b0c5d2dbae617d227909f338013b1e6310054270"
61
- }
59
+ "main": "./dist/index.js",
60
+ "module": "./dist/index.js",
61
+ "types": "./dist/index.d.ts",
62
+ "scripts": {
63
+ "clean": "rimraf dist",
64
+ "build": "tsdown && rimraf dist && tsc -b --clean && tsc",
65
+ "typecheck": "tsc --noEmit"
66
+ }
67
+ }
package/agent.d.ts DELETED
@@ -1,2 +0,0 @@
1
- import TeggConfigAppHook from './app';
2
- export default TeggConfigAppHook;
package/agent.js DELETED
@@ -1,8 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const app_1 = __importDefault(require("./app"));
7
- exports.default = app_1.default;
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdEQUFzQztBQUV0QyxrQkFBZSxhQUFpQixDQUFDIn0=
package/app.d.ts DELETED
@@ -1,7 +0,0 @@
1
- import type { Application, IBoot } from 'egg';
2
- export default class App implements IBoot {
3
- private readonly app;
4
- constructor(app: Application);
5
- configWillLoad(): void;
6
- beforeClose(): Promise<void>;
7
- }
package/app.js DELETED
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tegg_common_util_1 = require("@eggjs/tegg-common-util");
4
- const ModuleScanner_1 = require("./lib/ModuleScanner");
5
- class App {
6
- constructor(app) {
7
- this.app = app;
8
- const configNames = this.app.loader.getTypeFiles('module');
9
- tegg_common_util_1.ModuleConfigUtil.setConfigNames(configNames);
10
- }
11
- configWillLoad() {
12
- const { readModuleOptions } = this.app.config.tegg || {};
13
- const moduleScanner = new ModuleScanner_1.ModuleScanner(this.app.baseDir, readModuleOptions);
14
- this.app.moduleReferences = moduleScanner.loadModuleReferences();
15
- this.app.moduleConfigs = {};
16
- for (const reference of this.app.moduleReferences) {
17
- const absoluteRef = {
18
- path: tegg_common_util_1.ModuleConfigUtil.resolveModuleDir(reference.path, this.app.baseDir),
19
- name: reference.name,
20
- optional: reference.optional,
21
- };
22
- const moduleName = tegg_common_util_1.ModuleConfigUtil.readModuleNameSync(absoluteRef.path);
23
- this.app.moduleConfigs[moduleName] = {
24
- name: moduleName,
25
- reference: absoluteRef,
26
- config: tegg_common_util_1.ModuleConfigUtil.loadModuleConfigSync(absoluteRef.path),
27
- };
28
- }
29
- }
30
- async beforeClose() {
31
- tegg_common_util_1.ModuleConfigUtil.setConfigNames(undefined);
32
- }
33
- }
34
- exports.default = App;
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsOERBQTJEO0FBRTNELHVEQUFvRDtBQUVwRCxNQUFxQixHQUFHO0lBR3RCLFlBQVksR0FBZ0I7UUFDMUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0QsbUNBQWdCLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxFQUFFLGlCQUFpQixFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN6RCxNQUFNLGFBQWEsR0FBRyxJQUFJLDZCQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBRWpFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUU1QixLQUFLLE1BQU0sU0FBUyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNsRCxNQUFNLFdBQVcsR0FBb0I7Z0JBQ25DLElBQUksRUFBRSxtQ0FBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO2dCQUN6RSxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7Z0JBQ3BCLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUTthQUM3QixDQUFDO1lBRUYsTUFBTSxVQUFVLEdBQUcsbUNBQWdCLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxHQUFHO2dCQUNuQyxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsU0FBUyxFQUFFLFdBQVc7Z0JBQ3RCLE1BQU0sRUFBRSxtQ0FBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2FBQ2hFLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2YsbUNBQWdCLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FDRjtBQW5DRCxzQkFtQ0MifQ==
@@ -1,42 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ModuleScanner = void 0;
7
- const tegg_common_util_1 = require("@eggjs/tegg-common-util");
8
- const path_1 = __importDefault(require("path"));
9
- class ModuleScanner {
10
- constructor(baseDir, readModuleOptions) {
11
- this.baseDir = baseDir;
12
- this.readModuleOptions = readModuleOptions;
13
- }
14
- /**
15
- * - load module references from config or scan from baseDir
16
- * - load framework module as optional module reference
17
- */
18
- loadModuleReferences() {
19
- var _a;
20
- const moduleReferences = tegg_common_util_1.ModuleConfigUtil.readModuleReference(this.baseDir, this.readModuleOptions || {});
21
- // eslint-disable-next-line @typescript-eslint/no-var-requires
22
- const appPkg = require(path_1.default.join(this.baseDir, 'package.json'));
23
- const framework = (_a = appPkg.egg) === null || _a === void 0 ? void 0 : _a.framework;
24
- if (!framework) {
25
- return tegg_common_util_1.ModuleConfigUtil.deduplicateModules(moduleReferences);
26
- }
27
- // eslint-disable-next-line @typescript-eslint/no-var-requires
28
- const frameworkPkg = require.resolve(`${framework}/package.json`, {
29
- paths: [this.baseDir],
30
- });
31
- const frameworkDir = path_1.default.dirname(frameworkPkg);
32
- const optionalModuleReferences = tegg_common_util_1.ModuleConfigUtil.readModuleReference(frameworkDir, this.readModuleOptions || {});
33
- // 合并所有模块引用并去重
34
- const allModuleReferences = [
35
- ...moduleReferences,
36
- ...optionalModuleReferences.map(ref => ({ ...ref, optional: true })),
37
- ];
38
- return tegg_common_util_1.ModuleConfigUtil.deduplicateModules(allModuleReferences);
39
- }
40
- }
41
- exports.ModuleScanner = ModuleScanner;
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kdWxlU2Nhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIk1vZHVsZVNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOERBQXdHO0FBQ3hHLGdEQUF3QjtBQUV4QixNQUFhLGFBQWE7SUFJeEIsWUFBWSxPQUFlLEVBQUUsaUJBQTZDO1FBQ3hFLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsb0JBQW9COztRQUNsQixNQUFNLGdCQUFnQixHQUFHLG1DQUFnQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFHLDhEQUE4RDtRQUM5RCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsY0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsTUFBTSxTQUFTLEdBQUcsTUFBQSxNQUFNLENBQUMsR0FBRywwQ0FBRSxTQUFTLENBQUM7UUFDeEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsT0FBTyxtQ0FBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFDRCw4REFBOEQ7UUFDOUQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLFNBQVMsZUFBZSxFQUFFO1lBQ2hFLEtBQUssRUFBRSxDQUFFLElBQUksQ0FBQyxPQUFPLENBQUU7U0FDeEIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxZQUFZLEdBQUcsY0FBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoRCxNQUFNLHdCQUF3QixHQUFHLG1DQUFnQixDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDLENBQUM7UUFFbEgsY0FBYztRQUNkLE1BQU0sbUJBQW1CLEdBQUc7WUFDMUIsR0FBRyxnQkFBZ0I7WUFDbkIsR0FBRyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDckUsQ0FBQztRQUVGLE9BQU8sbUNBQWdCLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNsRSxDQUFDO0NBQ0Y7QUFwQ0Qsc0NBb0NDIn0=
@@ -1,24 +0,0 @@
1
- import 'egg';
2
- import { ModuleReference as ModuleReferenceAlias } from '@eggjs/tegg-common-util';
3
-
4
- declare module 'egg' {
5
- export type ModuleReference = ModuleReferenceAlias;
6
-
7
- export interface ModuleConfig {
8
- }
9
-
10
- export interface ModuleConfigHolder {
11
- name: string;
12
- config: ModuleConfig;
13
- reference: ModuleReference;
14
- }
15
-
16
- export interface ModuleConfigApplication {
17
- moduleReferences: readonly ModuleReference[];
18
- moduleConfigs: Record<string, ModuleConfigHolder>;
19
- }
20
-
21
- export interface Application extends ModuleConfigApplication {
22
-
23
- }
24
- }