mas-server 1.0.3 → 2.0.0

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.
Files changed (153) hide show
  1. package/.temp/a.ts +4 -0
  2. package/.temp/as.ts +1 -0
  3. package/.temp/b.ts +3 -0
  4. package/{src/index.js → .temp/i.js} +3 -3
  5. package/.temp/test.ts +2 -0
  6. package/.temp/validType copy.ts +149 -0
  7. package/.temp/validType.ts +96 -0
  8. package/.temp/validTypeOptimize.ts +98 -0
  9. package/.vscode/settings.json +0 -109
  10. package/dist/index.js +136 -0
  11. package/dist/masmysql/checkSqlkey.js +67 -0
  12. package/dist/masmysql/createSqlForm.js +44 -0
  13. package/dist/masmysql/esaysql.js +53 -0
  14. package/dist/masmysql/index.js +111 -0
  15. package/dist/masmysql/masSql.js +741 -0
  16. package/dist/masmysql/state.js +5 -0
  17. package/dist/masmysql/type.js +2 -0
  18. package/dist/masmysql/utils.js +12 -0
  19. package/dist/state.js +4 -0
  20. package/dist/typings/index.js +2 -0
  21. package/dist/utils/apiDoc.js +18 -0
  22. package/dist/utils/getLog.js +18 -0
  23. package/dist/utils/getRouteByApiSrc.js +54 -0
  24. package/dist/utils/masUtils.js +12 -0
  25. package/dist/utils/meaToken.js +57 -0
  26. package/dist/utils/quickSend.js +32 -0
  27. package/dist/utils/readApi.js +50 -0
  28. package/dist/utils/validRouteData.js +37 -0
  29. package/dist/utils/validToken.js +24 -0
  30. package/dist/utils/validType.js +101 -0
  31. package/package.json +34 -15
  32. package/src/apiDoc/assets/empty-907982e4.js +1 -0
  33. package/src/apiDoc/assets/index-b56e6bc6.js +1414 -0
  34. package/src/apiDoc/assets/index-bb16d834.css +6 -0
  35. package/src/{public/doc/img/jsoneditor-icons.256e3abc.svg → apiDoc/assets/jsoneditor-icons-45c98bf0.svg} +213 -357
  36. package/src/apiDoc/favicon.ico +0 -0
  37. package/src/apiDoc/index.html +15 -0
  38. package/src/index.ts +132 -0
  39. package/src/masmysql/checkSqlkey.ts +55 -0
  40. package/src/masmysql/createSqlForm.ts +37 -0
  41. package/src/masmysql/esaysql.ts +44 -0
  42. package/src/masmysql/index.ts +68 -0
  43. package/src/masmysql/masSql.ts +736 -0
  44. package/src/masmysql/state.ts +5 -0
  45. package/src/masmysql/type.ts +34 -0
  46. package/src/masmysql/utils.ts +8 -0
  47. package/src/state.ts +1 -0
  48. package/src/typings/index.ts +114 -0
  49. package/src/utils/apiDoc.ts +18 -0
  50. package/src/utils/getLog.ts +20 -0
  51. package/src/utils/getRouteByApiSrc.ts +55 -0
  52. package/src/utils/mas-encrypt.min.js +1 -0
  53. package/src/utils/masUtils.ts +8 -0
  54. package/src/utils/meaToken.ts +56 -0
  55. package/src/utils/quickSend.ts +19 -0
  56. package/src/utils/readApi.ts +30 -0
  57. package/src/utils/validRouteData.ts +46 -0
  58. package/src/utils/validToken.ts +22 -0
  59. package/src/utils/validType.ts +98 -0
  60. package/test/apiTemplate/api.temp.ts +6 -0
  61. package/test/apiTemplate/curd/del.ts +9 -0
  62. package/test/apiTemplate/curd/get.ts +9 -0
  63. package/test/apiTemplate/curd/set.ts +9 -0
  64. package/test/config/api.config.ts +3 -0
  65. package/test/config/api.key.ts +14 -0
  66. package/test/config/config.ts +30 -0
  67. package/test/config/createSqlFormData.ts +14 -0
  68. package/test/logs/.keep +0 -0
  69. package/test/main.ts +25 -0
  70. package/test/scripts/beforeCreated.ts +67 -0
  71. package/test/scripts/createApiFile.ts +27 -0
  72. package/test/scripts/createApis.ts +109 -0
  73. package/test/scripts/createSqlForm.ts +5 -0
  74. package/test/scripts/getSqlFormType.ts +34 -0
  75. package/test/scripts/run.ts +4 -0
  76. package/test/scripts/updateRouter.ts +46 -0
  77. package/test/src/api/curd/student/del.ts +9 -0
  78. package/test/src/api/curd/student/get.ts +9 -0
  79. package/test/src/api/curd/student/set.ts +9 -0
  80. package/test/src/api/index.ts +4 -0
  81. package/test/src/api/per.ts +6 -0
  82. package/test/src/api/person/del.ts +4 -0
  83. package/test/src/api/person/get.ts +4 -0
  84. package/test/src/api/person/set.ts +4 -0
  85. package/test/src/api/test.ts +7 -0
  86. package/test/src/api/validtest/boolArr.ts +4 -0
  87. package/test/src/debug.ts +56 -0
  88. package/test/src/masState.ts +4 -0
  89. package/test/src/sql/selectStudent.ts +7 -0
  90. package/test/src/sqlform.json +1 -0
  91. package/test/test.ts +13 -0
  92. package/test/typings/.keep +0 -0
  93. package/test/typings/studentSF.ts +6 -0
  94. package/test/typings/test11SF.ts +1 -0
  95. package/test/typings/test22SF.ts +1 -0
  96. package/test/typings/testformSF.ts +1 -0
  97. package/test//345/276/205/345/274/200/345/217/221.md +12 -0
  98. package/tsconfig.json +23 -0
  99. package/tsconfigschema.json +1263 -0
  100. package/src/config/api.res.json +0 -1
  101. package/src/config/api.tree.json +0 -1
  102. package/src/config/apiModules/del.module +0 -6
  103. package/src/config/apiModules/get.module +0 -6
  104. package/src/config/apiModules/set.module +0 -6
  105. package/src/config/config.schema.js +0 -41
  106. package/src/public/doc/css/app.722f60c4.css +0 -1
  107. package/src/public/doc/css/chunk-287b9965.80548a4b.css +0 -1
  108. package/src/public/doc/css/chunk-vendors.a16c4353.css +0 -1
  109. package/src/public/doc/favicon.ico +0 -0
  110. package/src/public/doc/fonts/element-icons.535877f5.woff +0 -0
  111. package/src/public/doc/fonts/element-icons.732389de.ttf +0 -0
  112. package/src/public/doc/index.html +0 -1
  113. package/src/public/doc/js/app.9ce10690.js +0 -2
  114. package/src/public/doc/js/app.9ce10690.js.map +0 -1
  115. package/src/public/doc/js/chunk-287b9965.77cfd27f.js +0 -32
  116. package/src/public/doc/js/chunk-287b9965.77cfd27f.js.map +0 -1
  117. package/src/public/doc/js/chunk-vendors.7c84e9a7.js +0 -35
  118. package/src/public/doc/js/chunk-vendors.7c84e9a7.js.map +0 -1
  119. package/src/public/index.html +0 -15
  120. package/src/state.js +0 -6
  121. package/src/utils/DataVerified.js +0 -35
  122. package/src/utils/beforeCreate.js +0 -19
  123. package/src/utils/createApi.js +0 -34
  124. package/src/utils/createApiFile.js +0 -40
  125. package/src/utils/createSqlForm.js +0 -7
  126. package/src/utils/encrypt.js +0 -1
  127. package/src/utils/getDir.js +0 -60
  128. package/src/utils/logs.js +0 -16
  129. package/src/utils/masDoc.js +0 -37
  130. package/src/utils/masRoute.js +0 -29
  131. package/src/utils/quickSend.js +0 -18
  132. package/src/utils/token.js +0 -57
  133. package/test/.utils/api.js +0 -4
  134. package/test/.utils/apis.js +0 -5
  135. package/test/.utils/beforeIndex.js +0 -4
  136. package/test/.utils/createForm.js +0 -4
  137. package/test/config/api.config.json +0 -7
  138. package/test/config/api.config.k.json +0 -1
  139. package/test/config/config.js +0 -22
  140. package/test/config/sqlform.config.js +0 -23
  141. package/test/index.js +0 -12
  142. package/test/public/1.txt +0 -1
  143. package/test/serverLogs/2022-10-29.log +0 -6
  144. package/test/serverLogs/2022-10-30.log +0 -58
  145. package/test/src/$form.js +0 -1
  146. package/test/src/api/index.js +0 -3
  147. package/test/src/api/test.js +0 -9
  148. package/test/src/api/vip/del.js +0 -6
  149. package/test/src/api/vip/get.js +0 -6
  150. package/test/src/api/vip/set.js +0 -6
  151. package/test/src/api/vip666.js +0 -4
  152. package/test/src/debug.js +0 -2
  153. /package/{old → .temp/logs/.keep} +0 -0
@@ -0,0 +1,67 @@
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 state_1 = __importDefault(require("./state"));
16
+ const esaysql_1 = require("./esaysql");
17
+ const ansi_colors_1 = __importDefault(require("ansi-colors"));
18
+ /** 添加相关表名 */
19
+ const replenishForm = (formName, key) => __awaiter(void 0, void 0, void 0, function* () {
20
+ // state.status = 0;
21
+ const replenishData = {
22
+ create_time: "`create_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP",
23
+ update_time: "`update_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP",
24
+ is_delete: "`is_delete` INT DEFAULT 0",
25
+ };
26
+ console.info(ansi_colors_1.default.yellow(`${formName}缺少字段${key}`));
27
+ yield (0, esaysql_1.sqlQuery)(`alter table ${formName} add ${replenishData[key]}`);
28
+ console.info(ansi_colors_1.default.yellow("已为您自动添加"));
29
+ });
30
+ /** 获取相关表名,并检查每个表是否含有 is_delete,create_time,update_time,没有则添加 */
31
+ function checkSqlKey() {
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ let dbname = state_1.default.config.database;
34
+ // 获得数据库相关表名
35
+ let formName = (yield (0, esaysql_1.sqlQuery)(`select table_name
36
+ from information_schema.tables
37
+ where table_schema='${dbname}'`));
38
+ const sqlform = {};
39
+ formName = formName.map((item) => item["TABLE_NAME"]);
40
+ const listKeyArr = {};
41
+ // 获得相关表字段,并且没有
42
+ for (let item of formName) {
43
+ let listkey = yield (0, esaysql_1.sqlQuery)(`SELECT DATA_TYPE,COLUMN_NAME FROM information_schema.COLUMNS
44
+ WHERE table_name = '${item}' AND
45
+ \`TABLE_SCHEMA\`='${dbname}'`);
46
+ listKeyArr[item] = JSON.parse(JSON.stringify(listkey));
47
+ listkey = listkey.map((item) => item["COLUMN_NAME"]);
48
+ if (!listkey.includes("create_time")) {
49
+ yield replenishForm(item, "create_time");
50
+ listkey.push("create_time");
51
+ }
52
+ if (!listkey.includes("update_time")) {
53
+ yield replenishForm(item, "update_time");
54
+ listkey.push("update_time");
55
+ }
56
+ if (!listkey.includes("is_delete")) {
57
+ yield replenishForm(item, "is_delete");
58
+ listkey.push("is_delete");
59
+ }
60
+ sqlform[item] = listkey;
61
+ }
62
+ state_1.default.listKey = JSON.parse(JSON.stringify(listKeyArr));
63
+ state_1.default.sqlForm = Object.assign({}, sqlform);
64
+ return sqlform;
65
+ });
66
+ }
67
+ exports.default = checkSqlKey;
@@ -0,0 +1,44 @@
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 esaysql_1 = require("./esaysql");
16
+ const state_1 = __importDefault(require("./state"));
17
+ exports.default = (form) => __awaiter(void 0, void 0, void 0, function* () {
18
+ const formArr = Object.keys(state_1.default.sqlForm);
19
+ for (let k in form) {
20
+ let data = form[k];
21
+ if (formArr.includes(k.toLowerCase())) {
22
+ continue;
23
+ }
24
+ const sqldata = `CREATE TABLE ${k.toLowerCase()}
25
+ (
26
+ \`id\` INT AUTO_INCREMENT PRIMARY KEY COMMENT '唯一主键',
27
+ ${data
28
+ .map((item) => `\`${item.key}\` ${item.type.toLowerCase() == "str"
29
+ ? `VARCHAR(${item.length || "100"})`
30
+ : item.type.toLowerCase() == "int"
31
+ ? "INT"
32
+ : item.type.toLowerCase() == "float"
33
+ ? "FLOAT"
34
+ : "VARCHAR(100)"} ${item.notNull ? "NOT NULL" : ""} COMMENT '${item.des || ""}'`)
35
+ .join(",")},
36
+ \`create_time\` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
37
+ \`update_time\` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
38
+ \`is_delete\` INT DEFAULT 0 COMMENT '是否被删除'
39
+ )`;
40
+ yield (0, esaysql_1.sqlQuery)(sqldata, 1);
41
+ console.log(`尝试创建${k}表完成`);
42
+ }
43
+ console.log("创建表完成");
44
+ });
@@ -0,0 +1,53 @@
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.sqlQuery = exports.sqlEnd = exports.sqlInit = void 0;
7
+ const mysql = require("mysql");
8
+ const state_1 = __importDefault(require("./state"));
9
+ const ansi_colors_1 = __importDefault(require("ansi-colors"));
10
+ function sqlInit(config) {
11
+ state_1.default.config = config;
12
+ state_1.default.connection = mysql.createConnection(config);
13
+ return new Promise((resolve, reject) => {
14
+ state_1.default.connection.connect(function (err) {
15
+ if (err) {
16
+ console.error("error connecting: " + err.stack);
17
+ throw Error("连接数据库失败!");
18
+ }
19
+ else {
20
+ resolve(true);
21
+ }
22
+ });
23
+ });
24
+ }
25
+ exports.sqlInit = sqlInit;
26
+ function sqlEnd() {
27
+ state_1.default.connection.end();
28
+ }
29
+ exports.sqlEnd = sqlEnd;
30
+ function sqlQuery(sqldata, details = 0) {
31
+ return new Promise((resolve, reject) => {
32
+ state_1.default.connection.query(sqldata, (error, sqlRes) => {
33
+ if (details) {
34
+ if (error) {
35
+ reject(error);
36
+ console.info(error);
37
+ }
38
+ else
39
+ resolve(sqlRes);
40
+ }
41
+ if (!sqlRes) {
42
+ console.info(error, sqlRes);
43
+ console.info(ansi_colors_1.default.red("错误:数据库语句错误"));
44
+ resolve(undefined);
45
+ }
46
+ else if (Number.isInteger(sqlRes.affectedRows))
47
+ resolve(sqlRes.affectedRows);
48
+ else
49
+ resolve(JSON.parse(JSON.stringify(sqlRes)));
50
+ });
51
+ });
52
+ }
53
+ exports.sqlQuery = sqlQuery;
@@ -0,0 +1,111 @@
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
+ exports.massql = exports.createSqlForm = exports.checkSqlKey = exports.sqlQuery = exports.state = exports.sqlInit = exports.sqlEnd = exports.getsqlFormDataType = exports.getsqlFormData = void 0;
39
+ const checkSqlkey_1 = __importDefault(require("./checkSqlkey"));
40
+ exports.checkSqlKey = checkSqlkey_1.default;
41
+ const createSqlForm_1 = __importDefault(require("./createSqlForm"));
42
+ const esaysql_1 = require("./esaysql");
43
+ Object.defineProperty(exports, "sqlEnd", { enumerable: true, get: function () { return esaysql_1.sqlEnd; } });
44
+ Object.defineProperty(exports, "sqlInit", { enumerable: true, get: function () { return esaysql_1.sqlInit; } });
45
+ Object.defineProperty(exports, "sqlQuery", { enumerable: true, get: function () { return esaysql_1.sqlQuery; } });
46
+ const masSql_1 = __importDefault(require("./masSql"));
47
+ exports.massql = masSql_1.default;
48
+ const state_1 = __importDefault(require("./state"));
49
+ exports.state = state_1.default;
50
+ const fs = __importStar(require("fs"));
51
+ /** 创建表名 */
52
+ function createSqlForm(config, createForm) {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ (0, esaysql_1.sqlInit)(config);
55
+ yield (0, checkSqlkey_1.default)();
56
+ yield (0, createSqlForm_1.default)(createForm);
57
+ (0, esaysql_1.sqlEnd)();
58
+ });
59
+ }
60
+ exports.createSqlForm = createSqlForm;
61
+ function getsqlFormData(path) {
62
+ if (!state_1.default.sqlForm) {
63
+ throw Error("请先初始化数据库!");
64
+ }
65
+ const sqlForm = JSON.parse(JSON.stringify(state_1.default.sqlForm));
66
+ for (let k in sqlForm) {
67
+ sqlForm[k].push(`@!${k}`);
68
+ }
69
+ if (path) {
70
+ if (!path.includes(".json")) {
71
+ throw Error("写入路径错误");
72
+ }
73
+ if (fs.existsSync(path)) {
74
+ const data = require(path);
75
+ if (JSON.stringify(data) != JSON.stringify(sqlForm)) {
76
+ fs.writeFileSync(path, `${JSON.stringify(sqlForm)}`);
77
+ }
78
+ }
79
+ else {
80
+ fs.writeFileSync(path, `${JSON.stringify(sqlForm)}`);
81
+ }
82
+ }
83
+ return sqlForm;
84
+ }
85
+ exports.getsqlFormData = getsqlFormData;
86
+ function getsqlFormDataType() {
87
+ if (!state_1.default.listKey) {
88
+ throw Error("请先初始化数据库!");
89
+ }
90
+ let tarr = { int: "number", float: "number" };
91
+ let btarr = { int: "Number", float: "Number" };
92
+ let nnn = { is_delete: "", update_time: "", create_time: "" };
93
+ let res = {};
94
+ for (let key in state_1.default.listKey) {
95
+ let typeObj = "{";
96
+ let typeData = "{";
97
+ for (let item of state_1.default.listKey[key]) {
98
+ if (nnn[item.COLUMN_NAME] === "")
99
+ continue;
100
+ typeObj += `${item.COLUMN_NAME}?:${tarr[item.DATA_TYPE] || "string"};`;
101
+ if (item.COLUMN_NAME === "id")
102
+ continue;
103
+ typeData += `${item.COLUMN_NAME}:${btarr[item.DATA_TYPE] || "String"},`;
104
+ }
105
+ typeData = typeData.slice(0, typeData.length - 1) + "}";
106
+ typeObj += "}";
107
+ res[key] = { typeData, typeObj };
108
+ }
109
+ return res;
110
+ }
111
+ exports.getsqlFormDataType = getsqlFormDataType;