dinegg 3.0.0 → 3.0.3
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/app/extend/context.d.ts +1 -1
- package/app/extend/context.js +5 -4
- package/config/config.default.js +5 -1
- package/index.d.ts +1 -1
- package/package.json +2 -1
- package/tshelper.js +143 -0
package/app/extend/context.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
declare const _default: {
|
|
2
2
|
throw(msg: string, ...args: any[]): never;
|
|
3
3
|
success(data: any, code?: number, msg?: string): never;
|
|
4
|
-
error(
|
|
4
|
+
error(msg: string, code?: number, msgDetails?: string[]): never;
|
|
5
5
|
};
|
|
6
6
|
export default _default;
|
package/app/extend/context.js
CHANGED
|
@@ -17,13 +17,14 @@ exports.default = {
|
|
|
17
17
|
};
|
|
18
18
|
throw { sendData, isDineggBizSuccess: true };
|
|
19
19
|
},
|
|
20
|
-
error(
|
|
20
|
+
error(msg, code, msgDetails) {
|
|
21
21
|
const sendData = {
|
|
22
|
-
data,
|
|
22
|
+
data: null,
|
|
23
23
|
code: code || 50000,
|
|
24
|
-
msg: msg
|
|
24
|
+
msg: msg,
|
|
25
|
+
details: msgDetails || []
|
|
25
26
|
};
|
|
26
27
|
throw { sendData, isDineggBizSuccess: true };
|
|
27
28
|
},
|
|
28
29
|
};
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGlDQUFpQzs7QUFZakMsNkJBQTZCO0FBRTdCLGtCQUFlO0lBQ2QsS0FBSyxDQUFDLEdBQVcsRUFBRSxHQUFHLElBQVc7UUFDaEMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDaEMsTUFBTSxDQUFDLEdBQVEsSUFBSSxLQUFLLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDMUIsTUFBTSxDQUFDLENBQUM7SUFDVCxDQUFDO0lBQ0QsT0FBTyxDQUFDLElBQVMsRUFBRSxJQUFhLEVBQUUsR0FBWTtRQUM3QyxNQUFNLFFBQVEsR0FBc0I7WUFDbkMsSUFBSTtZQUNKLElBQUksRUFBRSxJQUFJLElBQUksS0FBSztZQUNuQixHQUFHLEVBQUUsR0FBRyxJQUFJLFNBQVM7U0FDckIsQ0FBQztRQUNGLE1BQU0sRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUNELEtBQUssQ0FBQyxHQUFVLEVBQUUsSUFBYSxFQUFFLFVBQXFCO1FBQ3JELE1BQU0sUUFBUSxHQUFzQjtZQUNuQyxJQUFJLEVBQUMsSUFBSTtZQUNULElBQUksRUFBRSxJQUFJLElBQUksS0FBSztZQUNuQixHQUFHLEVBQUUsR0FBRztZQUNSLE9BQU8sRUFBQyxVQUFVLElBQUksRUFBRTtTQUN4QixDQUFDO1FBQ0YsTUFBTSxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0NBQ0QsQ0FBQyJ9
|
package/config/config.default.js
CHANGED
|
@@ -44,9 +44,13 @@ exports.default = () => {
|
|
|
44
44
|
secret: "fhsldghwoeihgtiowehrlgsdhfsljl24234hldkfsdfhls",
|
|
45
45
|
};
|
|
46
46
|
config.jwtLogin = {
|
|
47
|
+
enable: true,
|
|
47
48
|
expires: 2000,
|
|
48
49
|
routeWhiteList: [],
|
|
49
50
|
};
|
|
51
|
+
config.catchNoCatchError = {
|
|
52
|
+
enable: true
|
|
53
|
+
};
|
|
50
54
|
// sequelize 插件的配置
|
|
51
55
|
config.sequelize = {};
|
|
52
56
|
// 自定义一个常量自动加载
|
|
@@ -64,4 +68,4 @@ exports.default = () => {
|
|
|
64
68
|
};
|
|
65
69
|
return config;
|
|
66
70
|
};
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb25maWcuZGVmYXVsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBQ0gsWUFBWSxDQUFDOztBQUdiLDZCQUE2QjtBQUU3QixrQkFBZSxHQUFHLEVBQUU7SUFDbkIsTUFBTSxNQUFNLEdBQUcsRUFBZ0MsQ0FBQztJQUNoRCw4QkFBOEI7SUFDOUIsNkJBQTZCO0lBRTdCLFdBQVc7SUFDWCxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2pCLElBQUksRUFBRSxLQUFLO1FBQ1gsZUFBZSxFQUFFLENBQUMsR0FBRyxDQUFDO0tBQ3RCLENBQUM7SUFDRixrQkFBa0I7SUFDbEIsTUFBTSxDQUFDLElBQUksR0FBRztRQUNiLE1BQU0sRUFBRSxHQUFHO1FBQ1gsWUFBWSxFQUFFLHdDQUF3QztLQUN0RCxDQUFDO0lBRUYsNkJBQTZCO0lBQzdCLE1BQU0sQ0FBQyxVQUFVLEdBQUc7UUFDbkIsU0FBUyxFQUFFLE9BQU87UUFDbEIsU0FBUyxFQUFFLE9BQU87S0FDbEIsQ0FBQztJQUVGLFVBQVU7SUFDVixNQUFNLENBQUMsTUFBTSxHQUFHO1FBQ2YsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sQ0FBQztRQUNyQyxVQUFVLEVBQUUsS0FBSztRQUNqQixZQUFZLEVBQUUsTUFBTTtLQUNwQixDQUFDO0lBQ0YsTUFBTSxDQUFDLFlBQVksR0FBRztJQUNyQixtQkFBbUI7SUFDbkIseURBQXlEO0lBQ3pELElBQUk7S0FDSixDQUFDO0lBRUYscUJBQXFCO0lBQ3JCLE1BQU0sQ0FBQyxHQUFHLEdBQUc7UUFDWixNQUFNLEVBQUUsZ0RBQWdEO0tBQ3hELENBQUM7SUFFRixNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2pCLE1BQU0sRUFBQyxJQUFJO1FBQ1gsT0FBTyxFQUFFLElBQUk7UUFDYixjQUFjLEVBQUUsRUFBRTtLQUNsQixDQUFDO0lBRUYsTUFBTSxDQUFDLGlCQUFpQixHQUFHO1FBQzFCLE1BQU0sRUFBQyxJQUFJO0tBQ1gsQ0FBQTtJQUVELGtCQUFrQjtJQUNsQixNQUFNLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUV0QixjQUFjO0lBQ2QsTUFBTSxDQUFDLFlBQVksR0FBRztRQUNyQixNQUFNLEVBQUU7WUFDUCxNQUFNLEVBQUUsS0FBSztZQUNiLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLEtBQUs7WUFDZixTQUFTLEVBQUUsT0FBTztZQUNsQixTQUFTLEVBQUUsWUFBWTtTQUN2QjtLQUNELENBQUM7SUFFRixNQUFNLENBQUMsSUFBSSxHQUFHO0lBQ2Isd0JBQXdCO0tBQ3hCLENBQUM7SUFFRixPQUFPLE1BQU0sQ0FBQztBQUNmLENBQUMsQ0FBQyJ9
|
package/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dinegg",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.3",
|
|
4
4
|
"description": "egg framework dinegg.",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@diyaner/egg-sequelize": "^6.0.0",
|
|
@@ -71,6 +71,7 @@
|
|
|
71
71
|
"agent.d.ts",
|
|
72
72
|
"index.js",
|
|
73
73
|
"index.d.ts",
|
|
74
|
+
"tshelper.js",
|
|
74
75
|
"lib/**/*.d.ts",
|
|
75
76
|
"decorator/**/*.js",
|
|
76
77
|
"decorator/**/*.d.ts"
|
package/tshelper.js
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @copyright: Huang Ding
|
|
3
|
+
* @Author: ding-cx
|
|
4
|
+
* @Date: 2021-08-16 08:50:33
|
|
5
|
+
* @LastEditors: ding-cx
|
|
6
|
+
* @LastEditTime: 2021-10-21 16:30:24
|
|
7
|
+
* @Description: file content
|
|
8
|
+
*
|
|
9
|
+
* 若要改module和egg原来的service进行对调。就是module使用service,egg另外取名。
|
|
10
|
+
* 则
|
|
11
|
+
* 需修改interface IService
|
|
12
|
+
* declareTo Context.service
|
|
13
|
+
*
|
|
14
|
+
* pattern 应该跟随config配置的modules.imports一起设置。才能实现功能和代码提示一致。实现只使用某些模块。
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
17
|
+
'use strict';
|
|
18
|
+
// const path = require('path');
|
|
19
|
+
// 引用egg-ts-helper 内部的,相当于替换默认auto的generator
|
|
20
|
+
// const classGen = require("egg-ts-helper/dist/generators/class").default
|
|
21
|
+
|
|
22
|
+
// 不用自定义生成器了。使用distName
|
|
23
|
+
// const genratorService = (config, baseConfig) => {
|
|
24
|
+
// console.info(config);
|
|
25
|
+
// console.info(config.fileList);
|
|
26
|
+
// // console.info(baseConfig);
|
|
27
|
+
|
|
28
|
+
// const dtsDir = path.join(config.dtsDir, 'service.d.ts');
|
|
29
|
+
|
|
30
|
+
// config.interfaceHandle = config.interfaceHandle || 'AutoInstanceType<typeof {{ 0 }}>';
|
|
31
|
+
|
|
32
|
+
// const result = classGen(config, baseConfig);
|
|
33
|
+
// console.log(result);
|
|
34
|
+
// // 替换掉默认的,自定义就是改这里而已。
|
|
35
|
+
// result.dist = dtsDir;
|
|
36
|
+
|
|
37
|
+
// /* istanbul ignore else */
|
|
38
|
+
// if (result.content) {
|
|
39
|
+
// result.content = [
|
|
40
|
+
// 'type AnyClass = new (...args: any[]) => any;',
|
|
41
|
+
// 'type AnyFunc<T = any> = (...args: any[]) => T;',
|
|
42
|
+
// 'type CanExportFunc = AnyFunc<Promise<any>> | AnyFunc<IterableIterator<any>>;',
|
|
43
|
+
// 'type AutoInstanceType<T, U = T extends CanExportFunc ? T : T extends AnyFunc ? ReturnType<T> : T> = U extends AnyClass ? InstanceType<U> : U;',
|
|
44
|
+
// result.content,
|
|
45
|
+
// ].join('\n');
|
|
46
|
+
// }
|
|
47
|
+
|
|
48
|
+
// return result;
|
|
49
|
+
// };
|
|
50
|
+
|
|
51
|
+
module.exports = (importsModules = []) => {
|
|
52
|
+
const servicePattern = importsModules.length > 0 ? importsModules.map(mod => mod + '/**/*.service.(ts|js)') : '**/*.service.(ts|js)';
|
|
53
|
+
const controllerPattern = importsModules.length > 0 ? importsModules.map(mod => mod + '/**/*.controller.(ts|js)') : '**/*.controller.(ts|js)';
|
|
54
|
+
|
|
55
|
+
return {
|
|
56
|
+
watchDirs: {
|
|
57
|
+
moduleService: {
|
|
58
|
+
directory: 'app/modules', // 监听目录
|
|
59
|
+
pattern: servicePattern, // 遍历的文件表达式,一般都不需要改这个
|
|
60
|
+
// ignore: '', // 指定忽略某些文件的表达式,默认为空
|
|
61
|
+
generator: 'auto', // 生成器名称,取值为 class、auto、function、object
|
|
62
|
+
// generator: genratorService, // 生成器名称,取值为 class、auto、function、object
|
|
63
|
+
interface: 'IService', // interface 名称,如果不填的话,将会随机生成个 interface
|
|
64
|
+
// declareTo: 'Context.service', // 指定定义到 egg 的某个类型下
|
|
65
|
+
distName: 'service.d.ts', // 读源码发现可以传入此参数实现自定义声明文件名称。解决了问题,无需自定义。
|
|
66
|
+
watch: true, // 是否需要监听文件改动
|
|
67
|
+
caseStyle(pathItem) {
|
|
68
|
+
// 此处逻辑必须跟自定义加载器中的caseStyle自定义方法相一致,否则生成的d.ts无法对应。
|
|
69
|
+
pathItem = pathItem.replace(/.service$/, '');
|
|
70
|
+
if (!/^[a-z][a-z0-9_-]*$/i.test(pathItem)) {
|
|
71
|
+
throw new Error(`${pathItem} is not match 'a-z0-9_-' in ${pathItem}`);
|
|
72
|
+
}
|
|
73
|
+
pathItem = pathItem.replace(/[_-][a-z]/gi, s => s.substring(1).toUpperCase());
|
|
74
|
+
const first = pathItem[0];
|
|
75
|
+
return first.toLowerCase() + pathItem.substring(1);
|
|
76
|
+
}, // 模块命名格式
|
|
77
|
+
// interfaceHandle: val => `ReturnType<typeof ${val}>`, // interface 预处理方法
|
|
78
|
+
// trigger: ['add', 'unlink'], // 当接收到这些文件更改事件的时候,会触发 d.ts 的重新生成, 所有事件: ['add', 'unlink', 'change']
|
|
79
|
+
},
|
|
80
|
+
oldService: {
|
|
81
|
+
directory: 'app/service', // 监听目录
|
|
82
|
+
// pattern: servicePattern, // 遍历的文件表达式,一般都不需要改这个
|
|
83
|
+
// ignore: '', // 指定忽略某些文件的表达式,默认为空
|
|
84
|
+
generator: 'auto', // 生成器名称,取值为 class、auto、function、object
|
|
85
|
+
// generator: genratorService, // 生成器名称,取值为 class、auto、function、object
|
|
86
|
+
interface: 'oIService', // interface 名称,如果不填的话,将会随机生成个 interface
|
|
87
|
+
declareTo: 'Context.svs', // 指定定义到 egg 的某个类型下
|
|
88
|
+
distName: 'svs.d.ts', // 读源码发现可以传入此参数实现自定义声明文件名称。解决了问题,无需自定义。
|
|
89
|
+
watch: true, // 是否需要监听文件改动
|
|
90
|
+
caseStyle(pathItem) {
|
|
91
|
+
// 此处逻辑必须跟自定义加载器中的caseStyle自定义方法相一致,否则生成的d.ts无法对应。
|
|
92
|
+
// pathItem = pathItem.replace(/.service$/, "");
|
|
93
|
+
if (!/^[a-z][a-z0-9_-]*$/i.test(pathItem)) {
|
|
94
|
+
throw new Error(`${pathItem} is not match 'a-z0-9_-' in ${pathItem}`);
|
|
95
|
+
}
|
|
96
|
+
pathItem = pathItem.replace(/[_-][a-z]/gi, s => s.substring(1).toUpperCase());
|
|
97
|
+
const first = pathItem[0];
|
|
98
|
+
return first.toLowerCase() + pathItem.substring(1);
|
|
99
|
+
}, // 模块命名格式
|
|
100
|
+
// interfaceHandle: val => `ReturnType<typeof ${val}>`, // interface 预处理方法
|
|
101
|
+
// trigger: ['add', 'unlink'], // 当接收到这些文件更改事件的时候,会触发 d.ts 的重新生成, 所有事件: ['add', 'unlink', 'change']
|
|
102
|
+
},
|
|
103
|
+
moduleController: {
|
|
104
|
+
directory: 'app/modules', // 监听目录
|
|
105
|
+
pattern: controllerPattern, // 遍历的文件表达式,一般都不需要改这个
|
|
106
|
+
// ignore: '', // 指定忽略某些文件的表达式,默认为空
|
|
107
|
+
generator: 'class', // 生成器名称,取值为 class、auto、function、object
|
|
108
|
+
interface: 'IController', // interface 名称,如果不填的话,将会随机生成个 interface
|
|
109
|
+
// declareTo: 'Application.controller_module', // 指定定义到 egg 的某个类型下 挂在IController上不是自定义的接口,所以不用再挂app
|
|
110
|
+
distName: 'controller.d.ts',
|
|
111
|
+
watch: true,
|
|
112
|
+
caseStyle(pathItem) {
|
|
113
|
+
// 此处逻辑必须跟自定义加载器中的caseStyle自定义方法相一致,否则生成的d.ts无法对应。
|
|
114
|
+
pathItem = pathItem.replace(/.controller$/, '');
|
|
115
|
+
if (!/^[a-z][a-z0-9_-]*$/i.test(pathItem)) {
|
|
116
|
+
throw new Error(`${pathItem} is not match 'a-z0-9_-' in ${pathItem}`);
|
|
117
|
+
}
|
|
118
|
+
pathItem = pathItem.replace(/[_-][a-z]/gi, s => s.substring(1).toUpperCase());
|
|
119
|
+
const first = pathItem[0];
|
|
120
|
+
return first.toLowerCase() + pathItem.substring(1);
|
|
121
|
+
}, // 模块命名格式
|
|
122
|
+
},
|
|
123
|
+
// 常量自动挂载
|
|
124
|
+
consts: {
|
|
125
|
+
directory: 'app/consts', // 监听目录
|
|
126
|
+
generator: 'object', // 生成器名称,取值为 class、auto、function、object
|
|
127
|
+
interface: 'IEggAppConsts', // interface 名称,如果不填的话,将会随机生成个 interface
|
|
128
|
+
declareTo: 'Application.consts', // 指定定义到 egg 的某个类型下 挂在IController上不是自定义的接口,所以不用再挂app
|
|
129
|
+
distName: 'consts.d.ts',
|
|
130
|
+
watch: true,
|
|
131
|
+
caseStyle(pathItem) {
|
|
132
|
+
// 此处逻辑必须跟自定义加载器中的caseStyle自定义方法相一致,否则生成的d.ts无法对应。
|
|
133
|
+
if (!/^[a-z][a-z0-9_-]*$/i.test(pathItem)) {
|
|
134
|
+
throw new Error(`${pathItem} is not match 'a-z0-9_-' in ${pathItem}`);
|
|
135
|
+
}
|
|
136
|
+
pathItem = pathItem.replace(/[_-][a-z]/gi, s => s.substring(1).toUpperCase());
|
|
137
|
+
const first = pathItem[0];
|
|
138
|
+
return first.toLowerCase() + pathItem.substring(1);
|
|
139
|
+
}, // 模块命名格式
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
};
|