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
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const masUtils_1 = require("../utils/masUtils");
|
|
4
|
+
const vliadBase = (obj, typeMapping) => {
|
|
5
|
+
return (0, masUtils_1.getType)(obj) == typeMapping.name.toLowerCase();
|
|
6
|
+
};
|
|
7
|
+
const validTypeObj = (obj, typeMapping) => {
|
|
8
|
+
if (obj === null || obj === undefined)
|
|
9
|
+
return false;
|
|
10
|
+
let typeT = (0, masUtils_1.getType)(typeMapping);
|
|
11
|
+
if (typeT == "function") {
|
|
12
|
+
return vliadBase(obj, typeMapping);
|
|
13
|
+
}
|
|
14
|
+
else if (typeT == "object") {
|
|
15
|
+
if ((0, masUtils_1.getType)(obj) !== "object")
|
|
16
|
+
return false;
|
|
17
|
+
for (let k in typeMapping) {
|
|
18
|
+
if (obj[k] === null || obj[k] === undefined)
|
|
19
|
+
return false;
|
|
20
|
+
if (!validType(obj[k], typeMapping[k]))
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
else if (typeT == "array") {
|
|
25
|
+
if ((0, masUtils_1.getType)(obj) != "array")
|
|
26
|
+
return false;
|
|
27
|
+
if (obj.length === 0)
|
|
28
|
+
return false;
|
|
29
|
+
const typeMappingArrObj = typeMapping[0];
|
|
30
|
+
if (!typeMappingArrObj) {
|
|
31
|
+
throw new Error(`非法的效验格式 ${typeMapping} ${typeMappingArrObj}`);
|
|
32
|
+
}
|
|
33
|
+
if ((0, masUtils_1.getType)(obj) != "array")
|
|
34
|
+
return false;
|
|
35
|
+
for (let v of obj) {
|
|
36
|
+
if (!validTypeObj(v, typeMappingArrObj))
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return true;
|
|
41
|
+
};
|
|
42
|
+
const validTypeObjStrict = (obj, typeMapping) => {
|
|
43
|
+
if (obj === null || obj === undefined)
|
|
44
|
+
return false;
|
|
45
|
+
let typeT = (0, masUtils_1.getType)(typeMapping);
|
|
46
|
+
if (typeT == "function") {
|
|
47
|
+
return vliadBase(obj, typeMapping);
|
|
48
|
+
}
|
|
49
|
+
else if (typeT == "object") {
|
|
50
|
+
if ((0, masUtils_1.getType)(obj) !== "object")
|
|
51
|
+
return false;
|
|
52
|
+
if (Object.keys(obj).length != Object.keys(typeT).length)
|
|
53
|
+
return false;
|
|
54
|
+
for (let k in typeMapping) {
|
|
55
|
+
if (obj[k] === null || obj[k] === undefined)
|
|
56
|
+
return false;
|
|
57
|
+
if (!validType(obj[k], typeMapping[k]))
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else if (typeT == "array") {
|
|
62
|
+
if ((0, masUtils_1.getType)(obj) != "array")
|
|
63
|
+
return false;
|
|
64
|
+
if (obj.length === 0)
|
|
65
|
+
return false;
|
|
66
|
+
const typeMappingArrObj = typeMapping[0];
|
|
67
|
+
if (!typeMappingArrObj) {
|
|
68
|
+
throw new Error(`非法的效验格式 ${typeMapping} ${typeMappingArrObj}`);
|
|
69
|
+
}
|
|
70
|
+
if ((0, masUtils_1.getType)(obj) != "array")
|
|
71
|
+
return false;
|
|
72
|
+
for (let v of obj) {
|
|
73
|
+
if (!validTypeObj(v, typeMappingArrObj))
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return true;
|
|
78
|
+
};
|
|
79
|
+
function validType(obj, typeMapping, strict = false) {
|
|
80
|
+
return strict
|
|
81
|
+
? validTypeObjStrict(obj, typeMapping)
|
|
82
|
+
: validTypeObj(obj, typeMapping);
|
|
83
|
+
}
|
|
84
|
+
exports.default = validType;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.config = void 0;
|
|
16
|
+
const masState_1 = __importDefault(require("@/masState"));
|
|
17
|
+
exports.config = {
|
|
18
|
+
name: "默认接口",
|
|
19
|
+
methods: "all",
|
|
20
|
+
};
|
|
21
|
+
exports.default = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
22
|
+
const { sql } = masState_1.default;
|
|
23
|
+
res.return("hello mas-server!");
|
|
24
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const masState_1 = __importDefault(require("@@/test/src/masState"));
|
|
16
|
+
const sqlform_json_1 = __importDefault(require("@@/test/src/sqlform.json"));
|
|
17
|
+
exports.default = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
18
|
+
const { sql } = masState_1.default;
|
|
19
|
+
const sqlRes = yield sql.use(sqlform_json_1.default.$form).delete(req.body).go();
|
|
20
|
+
res.return(sqlRes);
|
|
21
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const masState_1 = __importDefault(require("@@/test/src/masState"));
|
|
16
|
+
const sqlform_json_1 = __importDefault(require("@@/test/src/sqlform.json"));
|
|
17
|
+
exports.default = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
18
|
+
const { sql } = masState_1.default;
|
|
19
|
+
const sqlRes = yield sql.use(sqlform_json_1.default.$form).select(req.body).paging().go();
|
|
20
|
+
res.return(sqlRes);
|
|
21
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const masState_1 = __importDefault(require("@@/test/src/masState"));
|
|
16
|
+
const sqlform_json_1 = __importDefault(require("@@/test/src/sqlform.json"));
|
|
17
|
+
exports.default = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
18
|
+
const { sql } = masState_1.default;
|
|
19
|
+
const sqlRes = yield sql.use(sqlform_json_1.default.$form).set(req.body).go();
|
|
20
|
+
res.return(sqlRes, sqlRes);
|
|
21
|
+
});
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = {
|
|
4
|
+
projectName: "mas-server",
|
|
5
|
+
port: 8087,
|
|
6
|
+
apidoc: true,
|
|
7
|
+
apidocOptions: {
|
|
8
|
+
// iframe嵌套
|
|
9
|
+
baseUrl: "",
|
|
10
|
+
},
|
|
11
|
+
cors: true,
|
|
12
|
+
logs: {
|
|
13
|
+
open: true,
|
|
14
|
+
debug: false,
|
|
15
|
+
},
|
|
16
|
+
token: {
|
|
17
|
+
open: true,
|
|
18
|
+
pwd: "8087",
|
|
19
|
+
headerParams: "token",
|
|
20
|
+
},
|
|
21
|
+
useSql: true,
|
|
22
|
+
debugTime: 100,
|
|
23
|
+
sql: {
|
|
24
|
+
host: "127.0.0.1",
|
|
25
|
+
user: "root",
|
|
26
|
+
password: "123456",
|
|
27
|
+
database: "school",
|
|
28
|
+
// database: "test",
|
|
29
|
+
// password: "tx123456",
|
|
30
|
+
},
|
|
31
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const createSqlFormData = {
|
|
4
|
+
testForm: [
|
|
5
|
+
{
|
|
6
|
+
key: "testA",
|
|
7
|
+
type: "str",
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
key: "numB",
|
|
11
|
+
type: "float",
|
|
12
|
+
},
|
|
13
|
+
],
|
|
14
|
+
};
|
|
15
|
+
exports.default = createSqlFormData;
|
|
File without changes
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
require("module-alias/register");
|
|
7
|
+
const index_1 = require("@/index");
|
|
8
|
+
const masState_1 = __importDefault(require("./src/masState"));
|
|
9
|
+
const config_1 = __importDefault(require("./config/config"));
|
|
10
|
+
const app = (0, index_1.getApp)(__dirname, (app) => {
|
|
11
|
+
// 数据库连接和express服务启动是异步进行的,如果数据库连接较慢,可能会出现调用接口访问不了数据库的情况
|
|
12
|
+
app.use((req, res, next) => {
|
|
13
|
+
if (config_1.default.useSql && !masState_1.default.sql) {
|
|
14
|
+
res.return("数据库正在连接!", 0, 500);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
next();
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
app.all("/", (_req, res) => {
|
|
22
|
+
res.return("default index");
|
|
23
|
+
});
|
|
24
|
+
// 404兜底
|
|
25
|
+
app.all("*", (_req, res) => {
|
|
26
|
+
res.return(404, 0, 404);
|
|
27
|
+
});
|
|
28
|
+
app.listen(8087, () => {
|
|
29
|
+
console.log("http://localhost:8087");
|
|
30
|
+
console.log("http://localhost:8087/apidoc");
|
|
31
|
+
});
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
require("module-alias/register");
|
|
39
|
+
const index_1 = require("@/index");
|
|
40
|
+
const path = __importStar(require("path"));
|
|
41
|
+
const config_1 = __importDefault(require("../config/config"));
|
|
42
|
+
const masState_1 = __importDefault(require("../src/masState"));
|
|
43
|
+
const ansi_colors_1 = __importDefault(require("ansi-colors"));
|
|
44
|
+
// 数据库初始化
|
|
45
|
+
(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
46
|
+
// mysql初始化
|
|
47
|
+
if (config_1.default.useSql) {
|
|
48
|
+
yield (0, index_1.sqlInit)(config_1.default.sql);
|
|
49
|
+
// 如果表没有update_time,create_time,is_delete三个字段,补上,放入masmysql的state中
|
|
50
|
+
yield (0, index_1.checkSqlKey)();
|
|
51
|
+
// 比较入masmysql的state中的form,不一样重新生成生成sqlform,json
|
|
52
|
+
(0, index_1.getsqlFormData)(path.join(__dirname, "/../src/sqlform.json"));
|
|
53
|
+
if (process.argv[2] != "-end") {
|
|
54
|
+
masState_1.default.sql = new index_1.massql();
|
|
55
|
+
console.info(ansi_colors_1.default.greenBright("mysql数据库连接成功!"));
|
|
56
|
+
}
|
|
57
|
+
if (process.argv[2] == "-end") {
|
|
58
|
+
yield (0, index_1.sqlEnd)();
|
|
59
|
+
console.info(ansi_colors_1.default.greenBright("初始化成功!"));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}))();
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
const path_1 = __importDefault(require("path"));
|
|
30
|
+
const ansi_colors_1 = __importDefault(require("ansi-colors"));
|
|
31
|
+
const fs = __importStar(require("fs"));
|
|
32
|
+
const createApiFile = (DIRNAME, tempPath) => {
|
|
33
|
+
let argv = process.argv.slice(2);
|
|
34
|
+
for (let dir of argv) {
|
|
35
|
+
let dirname = dir;
|
|
36
|
+
let dirpath = dir.split("/");
|
|
37
|
+
dirpath = dirpath.slice(0, dirpath.length - 1).join("/");
|
|
38
|
+
dir = path_1.default.join(DIRNAME, dir) + ".ts";
|
|
39
|
+
dirpath = path_1.default.join(DIRNAME, dirpath);
|
|
40
|
+
let isExist = fs.existsSync(dir);
|
|
41
|
+
if (isExist) {
|
|
42
|
+
console.info(ansi_colors_1.default.yellow(`已存在!${dirname}`));
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
isExist = fs.existsSync(dirpath);
|
|
46
|
+
if (!isExist)
|
|
47
|
+
fs.mkdirSync(dirpath, { recursive: true });
|
|
48
|
+
fs.copyFileSync(tempPath, dir);
|
|
49
|
+
console.info(ansi_colors_1.default.green(`创建成功!${dirname}`));
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
createApiFile(path_1.default.join(__dirname, "../src/api"), path_1.default.join(__dirname, "../apiTemplate/api.temp.ts"));
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
require("module-alias/register");
|
|
39
|
+
const index_1 = require("@/index");
|
|
40
|
+
const config_1 = __importDefault(require("../config/config"));
|
|
41
|
+
const fs = __importStar(require("fs"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
const ansi_colors_1 = __importDefault(require("ansi-colors"));
|
|
44
|
+
// import apiConfig from "../config/api.config";
|
|
45
|
+
// 根据数据库生成对应type,自动注入数据效验
|
|
46
|
+
(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
47
|
+
let argv = process.argv.slice(2);
|
|
48
|
+
const formName = argv[0];
|
|
49
|
+
const wPath = argv[1];
|
|
50
|
+
// mysql初始化
|
|
51
|
+
if (config_1.default.useSql) {
|
|
52
|
+
yield (0, index_1.sqlInit)(config_1.default.sql);
|
|
53
|
+
yield (0, index_1.checkSqlKey)();
|
|
54
|
+
const formDataType = (0, index_1.getsqlFormDataType)();
|
|
55
|
+
if (!formDataType[formName]) {
|
|
56
|
+
console.info(ansi_colors_1.default.redBright("该表不存在!"));
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const vlidType = formDataType[formName].typeData;
|
|
60
|
+
const getStr = fs
|
|
61
|
+
.readFileSync(path.join(__dirname, "../apiTemplate/curd/get.ts"))
|
|
62
|
+
.toString()
|
|
63
|
+
.replace("$form", formName);
|
|
64
|
+
const delStr = fs
|
|
65
|
+
.readFileSync(path.join(__dirname, "../apiTemplate/curd/del.ts"))
|
|
66
|
+
.toString()
|
|
67
|
+
.replace("$form", formName);
|
|
68
|
+
const setStr = fs
|
|
69
|
+
.readFileSync(path.join(__dirname, "../apiTemplate/curd/set.ts"))
|
|
70
|
+
.toString()
|
|
71
|
+
.replace("$form", formName);
|
|
72
|
+
// console.log(getStr);
|
|
73
|
+
fs.mkdirSync(path.join(__dirname, "../src/api", wPath, `/${formName}`), {
|
|
74
|
+
recursive: true,
|
|
75
|
+
});
|
|
76
|
+
fs.writeFileSync(path.join(__dirname, "../src/api", wPath, `/${formName}/get.ts`), getStr);
|
|
77
|
+
fs.writeFileSync(path.join(__dirname, "../src/api", wPath, `/${formName}/del.ts`), delStr);
|
|
78
|
+
fs.writeFileSync(path.join(__dirname, "../src/api", wPath, `/${formName}/set.ts`), setStr);
|
|
79
|
+
yield (0, index_1.sqlEnd)();
|
|
80
|
+
}
|
|
81
|
+
}))();
|
|
@@ -0,0 +1,10 @@
|
|
|
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
|
+
require("module-alias/register");
|
|
7
|
+
const index_1 = require("@/index");
|
|
8
|
+
const createSqlFormData_1 = __importDefault(require("../config/createSqlFormData"));
|
|
9
|
+
const config_1 = __importDefault(require("../config/config"));
|
|
10
|
+
(0, index_1.createSqlForm)(config_1.default.sql, createSqlFormData_1.default);
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
require("module-alias/register");
|
|
39
|
+
const index_1 = require("@/index");
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const config_1 = __importDefault(require("../config/config"));
|
|
43
|
+
const ansi_colors_1 = __importDefault(require("ansi-colors"));
|
|
44
|
+
(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
45
|
+
// mysql初始化
|
|
46
|
+
if (config_1.default.useSql) {
|
|
47
|
+
yield (0, index_1.sqlInit)(config_1.default.sql);
|
|
48
|
+
yield (0, index_1.checkSqlKey)();
|
|
49
|
+
const formDataType = (0, index_1.getsqlFormDataType)();
|
|
50
|
+
for (let formName in formDataType) {
|
|
51
|
+
fs.writeFileSync(path.join(__dirname, `../typings/${formName}SF.ts`), `export type ${formName}SF = ${formDataType[formName].typeObj}`);
|
|
52
|
+
}
|
|
53
|
+
yield (0, index_1.sqlEnd)();
|
|
54
|
+
console.info(ansi_colors_1.default.greenBright("获取类型成功!"));
|
|
55
|
+
}
|
|
56
|
+
}))();
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.config = void 0;
|
|
13
|
+
exports.config = {
|
|
14
|
+
name: "效验数组",
|
|
15
|
+
methods: "post",
|
|
16
|
+
validFormat: [Number],
|
|
17
|
+
};
|
|
18
|
+
exports.default = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
19
|
+
console.log(req.body);
|
|
20
|
+
res.return(req.body);
|
|
21
|
+
});
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.config = void 0;
|
|
13
|
+
const index_1 = require("@/index");
|
|
14
|
+
exports.config = {
|
|
15
|
+
name: "权限测试接口",
|
|
16
|
+
methods: "post",
|
|
17
|
+
permission: ["admin"],
|
|
18
|
+
};
|
|
19
|
+
const token = (0, index_1.createToken)({ data: "这是一条token里的信息", permission: ["admin"] }, "8087");
|
|
20
|
+
// 开启这行拿到token,然后请求头里加上token即可正常访问
|
|
21
|
+
// console.log(token);
|
|
22
|
+
exports.default = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
23
|
+
console.log(res.token);
|
|
24
|
+
res.return("你是超级管理员!");
|
|
25
|
+
});
|
|
26
|
+
// 也可以选择自己效验
|
|
27
|
+
// import { createToken, validToken } from "@/index";
|
|
28
|
+
// const token = createToken({
|
|
29
|
+
// time: 10,
|
|
30
|
+
// permission: ["admin", "www"],
|
|
31
|
+
// data: { a: 1, b: 2 },
|
|
32
|
+
// });
|
|
33
|
+
// setTimeout(() => {
|
|
34
|
+
// const tokenInfo = validToken({ token, permission: ["user", "admin"] });
|
|
35
|
+
// console.log(token);
|
|
36
|
+
// console.log(tokenInfo);
|
|
37
|
+
// }, 1000);
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const masState_1 = __importDefault(require("@@/test/src/masState"));
|
|
16
|
+
// 编写createSqlFormData.ts && npm run createSqlForm
|
|
17
|
+
// npm run createApi example/newApi
|
|
18
|
+
// npm run createApis student /example 根据student表创建 /example/student/get /example/student/set ...
|
|
19
|
+
exports.default = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
+
const { sql } = masState_1.default;
|
|
21
|
+
res.return("hello mas-server!");
|
|
22
|
+
});
|