@eggjs/tegg-loader 4.0.0-beta.34 → 4.0.0-beta.36

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.
@@ -1,9 +1,13 @@
1
- import { type EggLoadUnitTypeLike, type Loader, type ModuleReference } from '@eggjs/tegg-types';
2
- import type { ModuleDescriptor } from '@eggjs/metadata';
3
- export type LoaderCreator = (unitPath: string) => Loader;
4
- export declare class LoaderFactory {
5
- private static loaderCreatorMap;
6
- static createLoader(unitPath: string, type: EggLoadUnitTypeLike): Loader;
7
- static registerLoader(type: EggLoadUnitTypeLike, creator: LoaderCreator): void;
8
- static loadApp(moduleReferences: readonly ModuleReference[]): Promise<ModuleDescriptor[]>;
1
+ import { EggLoadUnitTypeLike, Loader, ModuleReference } from "@eggjs/tegg-types";
2
+ import { ModuleDescriptor } from "@eggjs/metadata";
3
+
4
+ //#region src/LoaderFactory.d.ts
5
+ type LoaderCreator = (unitPath: string) => Loader;
6
+ declare class LoaderFactory {
7
+ private static loaderCreatorMap;
8
+ static createLoader(unitPath: string, type: EggLoadUnitTypeLike): Loader;
9
+ static registerLoader(type: EggLoadUnitTypeLike, creator: LoaderCreator): void;
10
+ static loadApp(moduleReferences: readonly ModuleReference[]): Promise<ModuleDescriptor[]>;
9
11
  }
12
+ //#endregion
13
+ export { LoaderCreator, LoaderFactory };
@@ -1,42 +1,38 @@
1
- import { EggLoadUnitType, } from '@eggjs/tegg-types';
2
- import { PrototypeUtil } from '@eggjs/core-decorator';
3
- export class LoaderFactory {
4
- static loaderCreatorMap = new Map();
5
- static createLoader(unitPath, type) {
6
- const creator = this.loaderCreatorMap.get(type);
7
- if (!creator) {
8
- throw new Error(`not find creator for loader type ${type}`);
9
- }
10
- return creator(unitPath);
11
- }
12
- static registerLoader(type, creator) {
13
- this.loaderCreatorMap.set(type, creator);
14
- }
15
- static async loadApp(moduleReferences) {
16
- const result = [];
17
- const multiInstanceClazzList = [];
18
- for (const moduleReference of moduleReferences) {
19
- const loader = LoaderFactory.createLoader(moduleReference.path, moduleReference.loaderType || EggLoadUnitType.MODULE);
20
- const res = {
21
- name: moduleReference.name,
22
- unitPath: moduleReference.path,
23
- clazzList: [],
24
- protos: [],
25
- multiInstanceClazzList,
26
- optional: moduleReference.optional,
27
- };
28
- result.push(res);
29
- const clazzList = await loader.load();
30
- for (const clazz of clazzList) {
31
- if (PrototypeUtil.isEggPrototype(clazz)) {
32
- res.clazzList.push(clazz);
33
- }
34
- else if (PrototypeUtil.isEggMultiInstancePrototype(clazz)) {
35
- res.multiInstanceClazzList.push(clazz);
36
- }
37
- }
38
- }
39
- return result;
40
- }
41
- }
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9hZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Mb2FkZXJGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEdBS2hCLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSXRELE1BQU0sT0FBTyxhQUFhO0lBQ2hCLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBNEMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUVyRixNQUFNLENBQUMsWUFBWSxDQUFDLFFBQWdCLEVBQUUsSUFBeUI7UUFDN0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUF5QixFQUFFLE9BQXNCO1FBQ3JFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQkFBNEM7UUFDL0QsTUFBTSxNQUFNLEdBQXVCLEVBQUUsQ0FBQztRQUN0QyxNQUFNLHNCQUFzQixHQUF3QixFQUFFLENBQUM7UUFDdkQsS0FBSyxNQUFNLGVBQWUsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQy9DLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQ3ZDLGVBQWUsQ0FBQyxJQUFJLEVBQ3BCLGVBQWUsQ0FBQyxVQUFVLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FDckQsQ0FBQztZQUNGLE1BQU0sR0FBRyxHQUFxQjtnQkFDNUIsSUFBSSxFQUFFLGVBQWUsQ0FBQyxJQUFJO2dCQUMxQixRQUFRLEVBQUUsZUFBZSxDQUFDLElBQUk7Z0JBQzlCLFNBQVMsRUFBRSxFQUFFO2dCQUNiLE1BQU0sRUFBRSxFQUFFO2dCQUNWLHNCQUFzQjtnQkFDdEIsUUFBUSxFQUFFLGVBQWUsQ0FBQyxRQUFRO2FBQ25DLENBQUM7WUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sU0FBUyxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3RDLEtBQUssTUFBTSxLQUFLLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQzlCLElBQUksYUFBYSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUN4QyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDNUIsQ0FBQztxQkFBTSxJQUFJLGFBQWEsQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUM1RCxHQUFHLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6QyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDIn0=
1
+ import { PrototypeUtil } from "@eggjs/core-decorator";
2
+ import { EggLoadUnitType } from "@eggjs/tegg-types";
3
+
4
+ //#region src/LoaderFactory.ts
5
+ var LoaderFactory = class LoaderFactory {
6
+ static loaderCreatorMap = /* @__PURE__ */ new Map();
7
+ static createLoader(unitPath, type) {
8
+ const creator = this.loaderCreatorMap.get(type);
9
+ if (!creator) throw new Error(`not find creator for loader type ${type}`);
10
+ return creator(unitPath);
11
+ }
12
+ static registerLoader(type, creator) {
13
+ this.loaderCreatorMap.set(type, creator);
14
+ }
15
+ static async loadApp(moduleReferences) {
16
+ const result = [];
17
+ const multiInstanceClazzList = [];
18
+ for (const moduleReference of moduleReferences) {
19
+ const loader = LoaderFactory.createLoader(moduleReference.path, moduleReference.loaderType || EggLoadUnitType.MODULE);
20
+ const res = {
21
+ name: moduleReference.name,
22
+ unitPath: moduleReference.path,
23
+ clazzList: [],
24
+ protos: [],
25
+ multiInstanceClazzList,
26
+ optional: moduleReference.optional
27
+ };
28
+ result.push(res);
29
+ const clazzList = await loader.load();
30
+ for (const clazz of clazzList) if (PrototypeUtil.isEggPrototype(clazz)) res.clazzList.push(clazz);
31
+ else if (PrototypeUtil.isEggMultiInstancePrototype(clazz)) res.multiInstanceClazzList.push(clazz);
32
+ }
33
+ return result;
34
+ }
35
+ };
36
+
37
+ //#endregion
38
+ export { LoaderFactory };
@@ -1,13 +1,16 @@
1
- import type { EggProtoImplClass } from '@eggjs/tegg-types';
1
+ import { EggProtoImplClass } from "@eggjs/tegg-types";
2
+
3
+ //#region src/LoaderUtil.d.ts
2
4
  interface LoaderUtilConfig {
3
- extraFilePattern?: string[];
5
+ extraFilePattern?: string[];
4
6
  }
5
- export declare class LoaderUtil {
6
- static config: LoaderUtilConfig;
7
- static setConfig(config: LoaderUtilConfig): void;
8
- static supportExtensions(): string[];
9
- static get extension(): string;
10
- static filePattern(): string[];
11
- static loadFile(filePath: string): Promise<EggProtoImplClass[]>;
7
+ declare class LoaderUtil {
8
+ static config: LoaderUtilConfig;
9
+ static setConfig(config: LoaderUtilConfig): void;
10
+ static supportExtensions(): string[];
11
+ static get extension(): string;
12
+ static filePattern(): string[];
13
+ static loadFile(filePath: string): Promise<EggProtoImplClass[]>;
12
14
  }
13
- export {};
15
+ //#endregion
16
+ export { LoaderUtil };
@@ -1,84 +1,54 @@
1
- var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
- if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
- return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
- return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
- });
6
- }
7
- return path;
8
- };
9
- import BuiltinModule from 'node:module';
10
- import { pathToFileURL } from 'node:url';
11
- import { PrototypeUtil } from '@eggjs/core-decorator';
12
- import { isClass } from 'is-type-of';
13
- // Guard against poorly mocked module constructors.
1
+ import BuiltinModule from "node:module";
2
+ import { PrototypeUtil } from "@eggjs/core-decorator";
3
+ import { pathToFileURL } from "node:url";
4
+ import { isClass } from "is-type-of";
5
+
6
+ //#region src/LoaderUtil.ts
14
7
  const Module = globalThis.module?.constructor?.length > 1 ? globalThis.module.constructor : BuiltinModule;
15
- export class LoaderUtil {
16
- static config = {};
17
- static setConfig(config) {
18
- this.config = config;
19
- }
20
- static supportExtensions() {
21
- const extensions = Object.keys(Module._extensions);
22
- if (process.env.VITEST === 'true' && !extensions.includes('.ts')) {
23
- extensions.push('.ts');
24
- }
25
- return extensions;
26
- }
27
- static get extension() {
28
- return LoaderUtil.supportExtensions().includes('.ts') ? '.ts' : '.js';
29
- }
30
- static filePattern() {
31
- const extensions = LoaderUtil.supportExtensions();
32
- const extensionPattern = extensions
33
- .map((t) => t.substring(1))
34
- // JSON file will not export class
35
- .filter((t) => t !== 'json')
36
- .join('|');
37
- const filePattern = [
38
- // load file end with node module allow extensions
39
- `**/*.(${extensionPattern})`,
40
- // not load files in .xxx/
41
- '!**/+(.*)/**',
42
- // not load node module
43
- '!**/node_modules',
44
- // node load type definitions
45
- '!**/*.d.ts',
46
- // not load test/coverage files
47
- '!**/test',
48
- '!**/coverage',
49
- // extra file pattern
50
- ...(this.config.extraFilePattern || []),
51
- ];
52
- return filePattern;
53
- }
54
- static async loadFile(filePath) {
55
- if (process.platform === 'win32') {
56
- // convert to file:// url
57
- // avoid windows path issue: Only URLs with a scheme in: file, data, and node are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'd:'
58
- filePath = pathToFileURL(filePath).toString();
59
- }
60
- let exports;
61
- try {
62
- exports = await import(__rewriteRelativeImportExtension(filePath));
63
- }
64
- catch (e) {
65
- console.trace('[tegg/loader] loadFile %s error:', filePath);
66
- console.error(e);
67
- throw new Error(`[tegg/loader] load ${filePath} failed: ${e.message}`, {
68
- cause: e,
69
- });
70
- }
71
- const clazzList = [];
72
- const exportNames = Object.keys(exports);
73
- for (const exportName of exportNames) {
74
- const clazz = exports[exportName];
75
- const isEggProto = isClass(clazz) && (PrototypeUtil.isEggPrototype(clazz) || PrototypeUtil.isEggMultiInstancePrototype(clazz));
76
- if (!isEggProto) {
77
- continue;
78
- }
79
- clazzList.push(clazz);
80
- }
81
- return clazzList;
82
- }
83
- }
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9hZGVyVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Mb2FkZXJVdGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsT0FBTyxhQUFhLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFckMsbURBQW1EO0FBQ25ELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7QUFNMUcsTUFBTSxPQUFPLFVBQVU7SUFDckIsTUFBTSxDQUFDLE1BQU0sR0FBcUIsRUFBRSxDQUFDO0lBQ3JDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBd0I7UUFDdkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUI7UUFDdEIsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBRSxNQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUQsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDakUsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELE1BQU0sS0FBSyxTQUFTO1FBQ2xCLE9BQU8sVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN4RSxDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVc7UUFDaEIsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDbEQsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVO2FBQ2hDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixrQ0FBa0M7YUFDakMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDO2FBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUViLE1BQU0sV0FBVyxHQUFHO1lBQ2xCLGtEQUFrRDtZQUNsRCxTQUFTLGdCQUFnQixHQUFHO1lBQzVCLDBCQUEwQjtZQUMxQixjQUFjO1lBQ2QsdUJBQXVCO1lBQ3ZCLGtCQUFrQjtZQUNsQiw2QkFBNkI7WUFDN0IsWUFBWTtZQUNaLCtCQUErQjtZQUMvQixVQUFVO1lBQ1YsY0FBYztZQUNkLHFCQUFxQjtZQUNyQixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7U0FDeEMsQ0FBQztRQUVGLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFnQjtRQUNwQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDakMseUJBQXlCO1lBQ3pCLG9NQUFvTTtZQUNwTSxRQUFRLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hELENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQztRQUNaLElBQUksQ0FBQztZQUNILE9BQU8sR0FBRyxNQUFNLE1BQU0sa0NBQUMsUUFBUSxFQUFDLENBQUM7UUFDbkMsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUM1RCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLFFBQVEsWUFBWSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3JFLEtBQUssRUFBRSxDQUFDO2FBQ1QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE1BQU0sU0FBUyxHQUF3QixFQUFFLENBQUM7UUFDMUMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNsQyxNQUFNLFVBQVUsR0FDZCxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLGFBQWEsQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzlHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDaEIsU0FBUztZQUNYLENBQUM7WUFDRCxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDIn0=
8
+ var LoaderUtil = class LoaderUtil {
9
+ static config = {};
10
+ static setConfig(config) {
11
+ this.config = config;
12
+ }
13
+ static supportExtensions() {
14
+ const extensions = Object.keys(Module._extensions);
15
+ if (process.env.VITEST === "true" && !extensions.includes(".ts")) extensions.push(".ts");
16
+ return extensions;
17
+ }
18
+ static get extension() {
19
+ return LoaderUtil.supportExtensions().includes(".ts") ? ".ts" : ".js";
20
+ }
21
+ static filePattern() {
22
+ return [
23
+ `**/*.(${LoaderUtil.supportExtensions().map((t) => t.substring(1)).filter((t) => t !== "json").join("|")})`,
24
+ "!**/+(.*)/**",
25
+ "!**/node_modules",
26
+ "!**/*.d.ts",
27
+ "!**/test",
28
+ "!**/coverage",
29
+ ...this.config.extraFilePattern || []
30
+ ];
31
+ }
32
+ static async loadFile(filePath) {
33
+ if (process.platform === "win32") filePath = pathToFileURL(filePath).toString();
34
+ let exports;
35
+ try {
36
+ exports = await import(filePath);
37
+ } catch (e) {
38
+ console.trace("[tegg/loader] loadFile %s error:", filePath);
39
+ console.error(e);
40
+ throw new Error(`[tegg/loader] load ${filePath} failed: ${e.message}`, { cause: e });
41
+ }
42
+ const clazzList = [];
43
+ const exportNames = Object.keys(exports);
44
+ for (const exportName of exportNames) {
45
+ const clazz = exports[exportName];
46
+ if (!(isClass(clazz) && (PrototypeUtil.isEggPrototype(clazz) || PrototypeUtil.isEggMultiInstancePrototype(clazz)))) continue;
47
+ clazzList.push(clazz);
48
+ }
49
+ return clazzList;
50
+ }
51
+ };
52
+
53
+ //#endregion
54
+ export { LoaderUtil };
@@ -1,8 +1,12 @@
1
- import type { EggProtoImplClass, Loader } from '@eggjs/tegg-types';
2
- export declare class ModuleLoader implements Loader {
3
- private readonly moduleDir;
4
- private protoClazzList;
5
- constructor(moduleDir: string);
6
- load(): Promise<EggProtoImplClass[]>;
7
- static createModuleLoader(path: string): ModuleLoader;
1
+ import { EggProtoImplClass, Loader } from "@eggjs/tegg-types";
2
+
3
+ //#region src/impl/ModuleLoader.d.ts
4
+ declare class ModuleLoader implements Loader {
5
+ private readonly moduleDir;
6
+ private protoClazzList;
7
+ constructor(moduleDir: string);
8
+ load(): Promise<EggProtoImplClass[]>;
9
+ static createModuleLoader(path: string): ModuleLoader;
8
10
  }
11
+ //#endregion
12
+ export { ModuleLoader };
@@ -1,37 +1,36 @@
1
- import path from 'node:path';
2
- import { debuglog } from 'node:util';
3
- import globby from 'globby';
4
- import { LoaderUtil } from "../LoaderUtil.js";
5
1
  import { LoaderFactory } from "../LoaderFactory.js";
6
- const debug = debuglog('egg/tegg/loader/impl/ModuleLoader');
7
- export class ModuleLoader {
8
- moduleDir;
9
- protoClazzList;
10
- constructor(moduleDir) {
11
- this.moduleDir = moduleDir;
12
- }
13
- async load() {
14
- // optimize for EggModuleLoader
15
- if (this.protoClazzList) {
16
- return this.protoClazzList;
17
- }
18
- const protoClassList = [];
19
- const filePattern = LoaderUtil.filePattern();
20
- const files = await globby(filePattern, { cwd: this.moduleDir });
21
- debug('load files: %o, filePattern: %o, moduleDir: %o', files, filePattern, this.moduleDir);
22
- for (const file of files) {
23
- const realPath = path.join(this.moduleDir, file);
24
- const fileClazzList = await LoaderUtil.loadFile(realPath);
25
- for (const clazz of fileClazzList) {
26
- protoClassList.push(clazz);
27
- }
28
- }
29
- this.protoClazzList = Array.from(new Set(protoClassList));
30
- return this.protoClazzList;
31
- }
32
- static createModuleLoader(path) {
33
- return new ModuleLoader(path);
34
- }
35
- }
36
- LoaderFactory.registerLoader('MODULE', ModuleLoader.createModuleLoader);
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kdWxlTG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltcGwvTW9kdWxlTG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUM3QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXJDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUc1QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0FBRTVELE1BQU0sT0FBTyxZQUFZO0lBQ04sU0FBUyxDQUFTO0lBQzNCLGNBQWMsQ0FBc0I7SUFFNUMsWUFBWSxTQUFpQjtRQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUiwrQkFBK0I7UUFDL0IsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzdCLENBQUM7UUFDRCxNQUFNLGNBQWMsR0FBd0IsRUFBRSxDQUFDO1FBQy9DLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUU3QyxNQUFNLEtBQUssR0FBRyxNQUFNLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDakUsS0FBSyxDQUFDLGdEQUFnRCxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVGLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2pELE1BQU0sYUFBYSxHQUFHLE1BQU0sVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxRCxLQUFLLE1BQU0sS0FBSyxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNsQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDMUQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBWTtRQUNwQyxPQUFPLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7Q0FDRjtBQUVELGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDIn0=
2
+ import { LoaderUtil } from "../LoaderUtil.js";
3
+ import path from "node:path";
4
+ import { debuglog } from "node:util";
5
+ import globby from "globby";
6
+
7
+ //#region src/impl/ModuleLoader.ts
8
+ const debug = debuglog("egg/tegg/loader/impl/ModuleLoader");
9
+ var ModuleLoader = class ModuleLoader {
10
+ moduleDir;
11
+ protoClazzList;
12
+ constructor(moduleDir) {
13
+ this.moduleDir = moduleDir;
14
+ }
15
+ async load() {
16
+ if (this.protoClazzList) return this.protoClazzList;
17
+ const protoClassList = [];
18
+ const filePattern = LoaderUtil.filePattern();
19
+ const files = await globby(filePattern, { cwd: this.moduleDir });
20
+ debug("load files: %o, filePattern: %o, moduleDir: %o", files, filePattern, this.moduleDir);
21
+ for (const file of files) {
22
+ const realPath = path.join(this.moduleDir, file);
23
+ const fileClazzList = await LoaderUtil.loadFile(realPath);
24
+ for (const clazz of fileClazzList) protoClassList.push(clazz);
25
+ }
26
+ this.protoClazzList = Array.from(new Set(protoClassList));
27
+ return this.protoClazzList;
28
+ }
29
+ static createModuleLoader(path$1) {
30
+ return new ModuleLoader(path$1);
31
+ }
32
+ };
33
+ LoaderFactory.registerLoader("MODULE", ModuleLoader.createModuleLoader);
34
+
35
+ //#endregion
36
+ export { ModuleLoader };
@@ -1 +1 @@
1
- export * from './ModuleLoader.ts';
1
+ import { ModuleLoader } from "./ModuleLoader.js";
@@ -1,2 +1,3 @@
1
- export * from "./ModuleLoader.js";
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDIn0=
1
+ import { ModuleLoader } from "./ModuleLoader.js";
2
+
3
+ export { };
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
- export * from './LoaderFactory.ts';
2
- export * from './LoaderUtil.ts';
3
- export * from './impl/index.ts';
1
+ import { LoaderCreator, LoaderFactory } from "./LoaderFactory.js";
2
+ import { LoaderUtil } from "./LoaderUtil.js";
3
+ import { ModuleLoader } from "./impl/ModuleLoader.js";
4
+ import "./impl/index.js";
5
+ export { LoaderCreator, LoaderFactory, LoaderUtil, ModuleLoader };
package/dist/index.js CHANGED
@@ -1,4 +1,6 @@
1
- export * from "./LoaderFactory.js";
2
- export * from "./LoaderUtil.js";
3
- export * from "./impl/index.js";
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsaUJBQWlCLENBQUMifQ==
1
+ import { LoaderFactory } from "./LoaderFactory.js";
2
+ import { LoaderUtil } from "./LoaderUtil.js";
3
+ import { ModuleLoader } from "./impl/ModuleLoader.js";
4
+ import "./impl/index.js";
5
+
6
+ export { LoaderFactory, LoaderUtil, ModuleLoader };
package/package.json CHANGED
@@ -1,57 +1,53 @@
1
1
  {
2
2
  "name": "@eggjs/tegg-loader",
3
- "version": "4.0.0-beta.34",
3
+ "version": "4.0.0-beta.36",
4
4
  "description": "tegg default loader implement",
5
5
  "keywords": [
6
6
  "egg",
7
- "typescript",
8
7
  "loader",
9
- "tegg"
8
+ "tegg",
9
+ "typescript"
10
10
  ],
11
- "type": "module",
12
- "exports": {
13
- ".": "./dist/index.js",
14
- "./package.json": "./package.json"
15
- },
16
- "files": [
17
- "dist"
18
- ],
19
- "author": "killagu <killa123@126.com>",
20
- "license": "MIT",
21
11
  "homepage": "https://github.com/eggjs/egg/tree/next/tegg/core/loader",
22
12
  "bugs": {
23
13
  "url": "https://github.com/eggjs/egg/issues"
24
14
  },
15
+ "license": "MIT",
16
+ "author": "killagu <killa123@126.com>",
25
17
  "repository": {
26
18
  "type": "git",
27
- "url": "git@github.com:eggjs/egg.git",
19
+ "url": "git+https://github.com/eggjs/egg.git",
28
20
  "directory": "tegg/core/loader"
29
21
  },
30
- "engines": {
31
- "node": ">=22.18.0"
22
+ "files": [
23
+ "dist"
24
+ ],
25
+ "type": "module",
26
+ "main": "./dist/index.js",
27
+ "module": "./dist/index.js",
28
+ "types": "./dist/index.d.ts",
29
+ "exports": {
30
+ ".": "./dist/index.js",
31
+ "./package.json": "./package.json"
32
+ },
33
+ "publishConfig": {
34
+ "access": "public"
32
35
  },
33
36
  "dependencies": {
34
37
  "globby": "^11.0.2",
35
38
  "is-type-of": "^2.2.0",
36
- "@eggjs/tegg-types": "4.0.0-beta.34",
37
- "@eggjs/metadata": "4.0.0-beta.34",
38
- "@eggjs/core-decorator": "4.0.0-beta.34"
39
- },
40
- "publishConfig": {
41
- "access": "public"
39
+ "@eggjs/metadata": "4.0.0-beta.36",
40
+ "@eggjs/tegg-types": "4.0.0-beta.36",
41
+ "@eggjs/core-decorator": "4.0.0-beta.36"
42
42
  },
43
43
  "devDependencies": {
44
- "@types/node": "^24.9.1",
45
- "typescript": "^5.9.3",
46
- "tsdown": "0.15.11",
47
- "unplugin-unused": "^0.5.4"
44
+ "@types/node": "^24.10.2",
45
+ "typescript": "^5.9.3"
46
+ },
47
+ "engines": {
48
+ "node": ">=22.18.0"
48
49
  },
49
- "main": "./dist/index.js",
50
- "module": "./dist/index.js",
51
- "types": "./dist/index.d.ts",
52
50
  "scripts": {
53
- "clean": "rimraf dist *.tsbuildinfo",
54
- "build": "tsdown && npm run clean && tsc -p tsconfig.build.json",
55
- "typecheck": "tsc --noEmit"
51
+ "typecheck": "tsgo --noEmit"
56
52
  }
57
53
  }