mas-server 2.0.3 → 2.0.5
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/.temp/merge/validType.ts +98 -0
- package/dist/index.js +8 -47
- package/dist/src/index.js +100 -0
- package/dist/src/state.js +4 -0
- package/dist/src/typings/index.js +2 -0
- package/dist/src/utils/apiDoc.js +33 -0
- package/dist/src/utils/createRouter.js +51 -0
- package/dist/src/utils/getLog.js +18 -0
- package/dist/src/utils/getRouterInfo.js +34 -0
- package/dist/src/utils/masUtils.js +12 -0
- package/dist/src/utils/meaToken.js +57 -0
- package/dist/src/utils/quickSend.js +32 -0
- package/dist/src/utils/readApi.js +50 -0
- package/dist/src/utils/validRouteData.js +37 -0
- package/dist/src/utils/validToken.js +24 -0
- package/dist/src/utils/validType.js +84 -0
- package/dist/test/apiTemplate/api.temp.js +24 -0
- package/dist/test/apiTemplate/curd/del.js +21 -0
- package/dist/test/apiTemplate/curd/get.js +21 -0
- package/dist/test/apiTemplate/curd/set.js +21 -0
- package/dist/test/config/config.js +31 -0
- package/dist/test/config/createSqlFormData.js +15 -0
- package/dist/test/config/defaultApiConfig.js +7 -0
- package/dist/test/config/docNav.js +0 -0
- package/dist/test/main.js +31 -0
- package/dist/test/scripts/beforeCreated.js +62 -0
- package/dist/test/scripts/createApiFile.js +52 -0
- package/dist/test/scripts/createApis.js +81 -0
- package/dist/test/scripts/createSqlForm.js +10 -0
- package/dist/test/scripts/getSqlFormType.js +56 -0
- package/dist/test/scripts/run.js +6 -0
- package/dist/test/src/api/example/ArrValid.js +21 -0
- package/dist/test/src/api/example/per.js +37 -0
- package/dist/test/src/api/example/tip.js +22 -0
- package/dist/test/src/api/example/validReqData.js +98 -0
- package/dist/test/src/api/index.js +24 -0
- package/dist/test/src/debug.js +10 -0
- package/dist/test/src/masState.js +4 -0
- package/dist/test/src/sql/selectStudent.js +10 -0
- package/dist/test/src/sqlform.json +1 -0
- package/dist/test/test.js +3 -0
- package/dist/utils/apiDoc.js +17 -2
- package/dist/utils/createRouter.js +51 -0
- package/dist/utils/getRouterInfo.js +34 -0
- package/dist/utils/validRouteData.js +1 -1
- package/dist/utils/validToken.js +1 -1
- package/dist/utils/validType.js +0 -17
- package/package.json +5 -5
- package/{dist/apiDoc/assets/empty-907982e4.js → src/apiDoc/assets/empty-a6de4920.js} +1 -1
- package/src/apiDoc/assets/index-be53fe8f.css +6 -0
- package/src/apiDoc/assets/index-f9ab4187.js +1427 -0
- package/src/apiDoc/assets/jsoneditor-icons-45c98bf0.svg +749 -749
- package/src/apiDoc/index.html +2 -2
- package/src/index.ts +20 -24
- package/src/typings/index.ts +5 -5
- package/src/utils/apiDoc.ts +18 -2
- package/src/utils/createRouter.ts +22 -0
- package/src/utils/getRouterInfo.ts +28 -0
- package/src/utils/readApi.ts +0 -2
- package/src/utils/validRouteData.ts +1 -2
- package/src/utils/validToken.ts +1 -1
- package/src/utils/validType.ts +0 -17
- package/test/apiTemplate/api.temp.ts +8 -3
- package/test/config/config.ts +1 -1
- package/test/config/defaultApiConfig.ts +7 -0
- package/test/config/docNav.ts +0 -0
- package/test/main.ts +1 -0
- package/test/scripts/beforeCreated.ts +2 -41
- package/test/scripts/createApiFile.ts +0 -1
- package/test/scripts/createApis.ts +0 -48
- package/test/scripts/getSqlFormType.ts +2 -13
- package/test/src/api/example/ArrValid.ts +11 -0
- package/test/src/api/example/per.ts +34 -0
- package/test/src/api/example/tip.ts +9 -0
- package/test/src/api/example/validReqData.ts +85 -0
- package/test/src/api/index.ts +8 -1
- package/test/src/debug.ts +3 -50
- package/test/src/sqlform.json +1 -12
- package/test/test.ts +0 -12
- package/test//345/276/205/345/274/200/345/217/221.md +12 -6
- package/tsconfig-build.json +20 -0
- package/tsconfig.json +1 -3
- package/.temp/validType.ts +0 -96
- package/dist/apiDoc/assets/index-b56e6bc6.js +0 -1414
- package/dist/apiDoc/assets/index-bb16d834.css +0 -6
- package/dist/apiDoc/assets/jsoneditor-icons-45c98bf0.svg +0 -749
- package/dist/apiDoc/favicon.ico +0 -0
- package/dist/apiDoc/index.html +0 -15
- package/dist/utils/getRouteByApiSrc.js +0 -54
- package/dist/utils/mas-encrypt.min.js +0 -3072
- package/src/apiDoc/assets/empty-907982e4.js +0 -1
- package/src/apiDoc/assets/index-b56e6bc6.js +0 -1414
- package/src/apiDoc/assets/index-bb16d834.css +0 -6
- package/test/config/api.config.ts +0 -3
- package/test/config/api.key.ts +0 -14
- package/test/src/api/curd/student/del.ts +0 -9
- package/test/src/api/curd/student/get.ts +0 -9
- package/test/src/api/curd/student/set.ts +0 -9
- package/test/src/api/per.ts +0 -6
- package/test/src/api/person/del.ts +0 -4
- package/test/src/api/person/get.ts +0 -4
- package/test/src/api/person/set.ts +0 -4
- package/test/src/api/test.ts +0 -7
- package/test/src/api/validtest/boolArr.ts +0 -4
- package/test/typings/studentSF.ts +0 -6
- package/test/typings/test11SF.ts +0 -1
- package/test/typings/test22SF.ts +0 -1
- package/test/typings/testformSF.ts +0 -1
- /package/.temp/{logs/.keep → .keep} +0 -0
- /package/{src/utils → .temp}/getRouteByApiSrc.ts +0 -0
- /package/.temp/{a.ts → merge/a.ts} +0 -0
- /package/.temp/{as.ts → merge/as.ts} +0 -0
- /package/.temp/{b.ts → merge/b.ts} +0 -0
- /package/.temp/{i.js → merge/i.js} +0 -0
- /package/{test/typings → .temp/merge/logs}/.keep +0 -0
- /package/.temp/{test.ts → merge/test.ts} +0 -0
- /package/.temp/{validType copy.ts → merge/validType copy.ts} +0 -0
- /package/.temp/{validTypeOptimize.ts → merge/validTypeOptimize.ts} +0 -0
- /package/{test/scripts → .temp}/updateRouter.ts +0 -0
package/test/src/debug.ts
CHANGED
|
@@ -4,53 +4,6 @@ import masState from "./masState";
|
|
|
4
4
|
import * as sqlform from "./sqlform.json";
|
|
5
5
|
import { createToken } from "@/index";
|
|
6
6
|
const { sql } = masState;
|
|
7
|
-
sql.debugMode
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
// .post(
|
|
11
|
-
// "http://localhost:8087/api/index",
|
|
12
|
-
// {
|
|
13
|
-
// name: { g: [1], jd: true },
|
|
14
|
-
// age: 1,
|
|
15
|
-
// },
|
|
16
|
-
// { headers: { key: "false" } }
|
|
17
|
-
// )
|
|
18
|
-
// .then((res) => {
|
|
19
|
-
// console.log("返回数据", res.data);
|
|
20
|
-
// });
|
|
21
|
-
|
|
22
|
-
// axios
|
|
23
|
-
// .get("http://localhost:8087/api/per", {
|
|
24
|
-
// headers: {
|
|
25
|
-
// // token: createToken({ data: { a: 1 }, permission: ["user", "admin"] }),
|
|
26
|
-
// },
|
|
27
|
-
// })
|
|
28
|
-
// .then((res) => {
|
|
29
|
-
// console.log(res.data);
|
|
30
|
-
// })
|
|
31
|
-
// .catch((res) => {
|
|
32
|
-
// console.log(res, "@");
|
|
33
|
-
// });
|
|
34
|
-
// axios
|
|
35
|
-
// .post("http://localhost:8087/api/test", [{ params: { name: "111" } }])
|
|
36
|
-
// .then((res) => {
|
|
37
|
-
// console.log(res.data);
|
|
38
|
-
// })
|
|
39
|
-
// .catch((res) => {
|
|
40
|
-
// console.log(res, "@");
|
|
41
|
-
// });
|
|
42
|
-
|
|
43
|
-
// axios.get("http://127.0.0.1:8087/apidoc/router").then((res) => {
|
|
44
|
-
// console.log(res.data);
|
|
45
|
-
// });
|
|
46
|
-
// const { sql } = masState;
|
|
47
|
-
// sql.debugMode = 2;
|
|
48
|
-
// sql.select().use(sqlform.student).key(["name", "age"]).go();
|
|
49
|
-
// axios
|
|
50
|
-
// .post("http://localhost:8087/api/curd/get")
|
|
51
|
-
// .then((res) => {
|
|
52
|
-
// console.log(res.data);
|
|
53
|
-
// })
|
|
54
|
-
// .catch((res) => {
|
|
55
|
-
// console.log(res, "@");
|
|
56
|
-
// });
|
|
7
|
+
if (sql && Number.isInteger(sql.debugMode)) {
|
|
8
|
+
sql.debugMode = 2;
|
|
9
|
+
}
|
package/test/src/sqlform.json
CHANGED
|
@@ -1,12 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"student": [
|
|
3
|
-
"name",
|
|
4
|
-
"age",
|
|
5
|
-
"des",
|
|
6
|
-
"create_time",
|
|
7
|
-
"update_time",
|
|
8
|
-
"is_delete",
|
|
9
|
-
"id",
|
|
10
|
-
"@!student"
|
|
11
|
-
]
|
|
12
|
-
}
|
|
1
|
+
{"student":["age","create_time","des","id","is_delete","name","update_time","@!student"],"teacher":["age","create_time","id","is_delete","name","sex","update_time","@!teacher"]}
|
package/test/test.ts
CHANGED
|
@@ -1,13 +1 @@
|
|
|
1
1
|
import "module-alias/register";
|
|
2
|
-
|
|
3
|
-
// import { createToken, validToken } from "@/index";
|
|
4
|
-
// const token = createToken({
|
|
5
|
-
// time: 10,
|
|
6
|
-
// permission: ["admin", "www"],
|
|
7
|
-
// data: { a: 1, b: 2 },
|
|
8
|
-
// });
|
|
9
|
-
// setTimeout(() => {
|
|
10
|
-
// const tokenInfo = validToken({ token, permission: ["user", "admin"] });
|
|
11
|
-
// console.log(token);
|
|
12
|
-
// console.log(tokenInfo);
|
|
13
|
-
// }, 1000);
|
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
约定式接口读取 完成
|
|
2
2
|
数据效验 完成
|
|
3
3
|
masmysql引入 (massql set方法开发) 完成
|
|
4
|
-
权限管理,token生成
|
|
4
|
+
权限管理,token生成 完成
|
|
5
5
|
接口文档生成 完成
|
|
6
|
-
快捷创建接口
|
|
6
|
+
快捷创建接口 完成
|
|
7
7
|
生成sql类型 完成
|
|
8
|
-
错误处理
|
|
8
|
+
错误处理 完成
|
|
9
|
+
cookie管理
|
|
10
|
+
路由导航汉化
|
|
11
|
+
接口文档体验优化
|
|
12
|
+
.vscode配置
|
|
13
|
+
一键导出前端axios代码
|
|
14
|
+
接口加载状态
|
|
15
|
+
导航点击跳转 调试->调试
|
|
9
16
|
特别说明:
|
|
10
|
-
get请求和请求头的number参数会被转为string
|
|
17
|
+
get请求和请求头的number参数会被转为string,get请求无法发送和接收数组
|
|
11
18
|
接口改名配置丢失
|
|
12
|
-
数据效验只支持对象形式
|
|
13
19
|
只能接收{}或[]
|
|
14
|
-
|
|
20
|
+
请求参数必须是对象或数组
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "./tsconfigschema.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"strict": false,
|
|
5
|
+
"module": "commonjs",
|
|
6
|
+
"moduleResolution": "node",
|
|
7
|
+
"esModuleInterop": true,
|
|
8
|
+
"baseUrl": "./",
|
|
9
|
+
"rootDir": "src",
|
|
10
|
+
"outDir": "dist",
|
|
11
|
+
"paths": {
|
|
12
|
+
"@/*": ["src/*"],
|
|
13
|
+
"@@/*": ["./*"]
|
|
14
|
+
},
|
|
15
|
+
"target": "es6",
|
|
16
|
+
"lib": ["ES2021", "dom"],
|
|
17
|
+
"resolveJsonModule": true
|
|
18
|
+
},
|
|
19
|
+
"exclude": ["node_modules", "dist", "test", ".temp"]
|
|
20
|
+
}
|
package/tsconfig.json
CHANGED
|
@@ -8,8 +8,6 @@
|
|
|
8
8
|
"moduleResolution": "node",
|
|
9
9
|
"esModuleInterop": true,
|
|
10
10
|
"baseUrl": "./",
|
|
11
|
-
|
|
12
|
-
"rootDir": "src",
|
|
13
11
|
"outDir": "dist",
|
|
14
12
|
"paths": {
|
|
15
13
|
"@/*": ["src/*"],
|
|
@@ -19,5 +17,5 @@
|
|
|
19
17
|
"lib": ["ES2021", "dom"],
|
|
20
18
|
"resolveJsonModule": true
|
|
21
19
|
},
|
|
22
|
-
"exclude": ["node_modules", "dist"
|
|
20
|
+
"exclude": ["node_modules", "dist"]
|
|
23
21
|
}
|
package/.temp/validType.ts
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
type BasicTypeDescriptor =
|
|
2
|
-
| StringConstructor
|
|
3
|
-
| NumberConstructor
|
|
4
|
-
| BooleanConstructor
|
|
5
|
-
| ObjectConstructor;
|
|
6
|
-
type TypeDescriptor = BasicTypeDescriptor | Array<any>;
|
|
7
|
-
|
|
8
|
-
interface TypeMapping {
|
|
9
|
-
[key: string]:
|
|
10
|
-
| TypeDescriptor
|
|
11
|
-
| TypeMapping
|
|
12
|
-
| Array<TypeDescriptor | TypeMapping>;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
function getTypeName(descriptor: TypeDescriptor): string {
|
|
16
|
-
if (Array.isArray(descriptor)) {
|
|
17
|
-
return "array";
|
|
18
|
-
} else {
|
|
19
|
-
return (descriptor as BasicTypeDescriptor).name.toLowerCase();
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
function validType(obj: any, typeMapping: TypeMapping): boolean {
|
|
24
|
-
for (const key in typeMapping) {
|
|
25
|
-
if (!obj.hasOwnProperty(key)) {
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const targetType = typeMapping[key];
|
|
30
|
-
const objValue = obj[key];
|
|
31
|
-
|
|
32
|
-
if (Array.isArray(targetType)) {
|
|
33
|
-
if (!Array.isArray(objValue)) {
|
|
34
|
-
return false;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
const arrayElementType = targetType[0];
|
|
38
|
-
|
|
39
|
-
for (const element of objValue) {
|
|
40
|
-
if (typeof arrayElementType === "object") {
|
|
41
|
-
if (
|
|
42
|
-
!validType(element, arrayElementType as TypeMapping) ||
|
|
43
|
-
Object.keys(element).length !==
|
|
44
|
-
Object.keys(arrayElementType as TypeMapping).length
|
|
45
|
-
) {
|
|
46
|
-
return false;
|
|
47
|
-
}
|
|
48
|
-
} else {
|
|
49
|
-
if (
|
|
50
|
-
typeof element !== getTypeName(arrayElementType as TypeDescriptor)
|
|
51
|
-
) {
|
|
52
|
-
return false;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
} else if (typeof targetType === "object") {
|
|
57
|
-
if (
|
|
58
|
-
typeof objValue !== "object" ||
|
|
59
|
-
Array.isArray(objValue) ||
|
|
60
|
-
!validType(objValue, targetType as TypeMapping) ||
|
|
61
|
-
Object.keys(objValue).length !==
|
|
62
|
-
Object.keys(targetType as TypeMapping).length
|
|
63
|
-
) {
|
|
64
|
-
return false;
|
|
65
|
-
}
|
|
66
|
-
} else {
|
|
67
|
-
if (typeof objValue !== getTypeName(targetType as TypeDescriptor)) {
|
|
68
|
-
return false;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
return true;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
// 示例
|
|
77
|
-
console.log(validType({ a: 1, b: "s" }, { a: Number, b: String })); // 返回true
|
|
78
|
-
console.log(validType({ a: [1, 2, 3], b: "s" }, { a: [Number], b: String })); // 返回true
|
|
79
|
-
console.log(
|
|
80
|
-
validType(
|
|
81
|
-
{ a: [{ a: 1 }, { a: 1 }, { a: 1 }], b: "s" },
|
|
82
|
-
{ a: [{ b: Number }], b: String }
|
|
83
|
-
)
|
|
84
|
-
); // 返回true
|
|
85
|
-
console.log(
|
|
86
|
-
validType(
|
|
87
|
-
{
|
|
88
|
-
a: [
|
|
89
|
-
{ a: "1", b: 22 },
|
|
90
|
-
{ a: "1", b: 1 },
|
|
91
|
-
],
|
|
92
|
-
},
|
|
93
|
-
{ a: [{ a: String, b: Number, c: Number }] }
|
|
94
|
-
)
|
|
95
|
-
); // 返回false
|
|
96
|
-
export {};
|