@rdyl/node-mysql 0.2.1 → 0.2.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/CHANGELOG.md +1 -1
- package/dist/index.js +2 -5
- package/dist/utils.js +40 -46
- package/package.json +1 -1
- package/types/utils.d.ts +1 -1
package/CHANGELOG.md
CHANGED
package/dist/index.js
CHANGED
|
@@ -24,11 +24,8 @@ function setup(props) {
|
|
|
24
24
|
// @ts-ignore
|
|
25
25
|
global.$MysqlPool = promise_1.default.createPool(props);
|
|
26
26
|
// @ts-ignore
|
|
27
|
-
var tables = global.$MysqlTable || {};
|
|
28
|
-
|
|
29
|
-
var json = tables[table].json;
|
|
30
|
-
utils_1.Parser.createTableBy(table, json);
|
|
31
|
-
}
|
|
27
|
+
var tables = Object.keys(global.$MysqlTable || {});
|
|
28
|
+
tables.forEach(utils_1.Parser.createTableBy);
|
|
32
29
|
}
|
|
33
30
|
__exportStar(require("./helper"), exports);
|
|
34
31
|
__exportStar(require("./meta"), exports);
|
package/dist/utils.js
CHANGED
|
@@ -81,59 +81,53 @@ exports.Parser = {
|
|
|
81
81
|
return "'".concat(v, "'");
|
|
82
82
|
return "".concat(v);
|
|
83
83
|
},
|
|
84
|
-
createTableBy: function (table
|
|
84
|
+
createTableBy: function (table) {
|
|
85
85
|
return __awaiter(this, void 0, void 0, function () {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
86
|
+
function inferType(value) {
|
|
87
|
+
if (typeof value === "number") {
|
|
88
|
+
return Number.isInteger(value) ? "INT" : "DECIMAL(10,2)";
|
|
89
|
+
}
|
|
90
|
+
return "VARCHAR(255)";
|
|
91
|
+
}
|
|
92
|
+
var pool, _a, fields, json, rows, ex, columns, fieldKeys, add, drop, alters, _i, add_1, col, sample, type, _b, drop_1, col, sql;
|
|
93
|
+
return __generator(this, function (_c) {
|
|
94
|
+
switch (_c.label) {
|
|
89
95
|
case 0:
|
|
90
96
|
pool = global.$MysqlPool;
|
|
91
|
-
|
|
97
|
+
_a = global.$MysqlTable[table], fields = _a.fields, json = _a.json;
|
|
98
|
+
return [4 /*yield*/, pool.execute("\n CREATE TABLE IF NOT EXISTS `".concat(table, "` (\n id BIGINT AUTO_INCREMENT PRIMARY KEY,\n create_time VARCHAR(255),\n update_time VARCHAR(255)\n )\n "))];
|
|
92
99
|
case 1:
|
|
93
|
-
|
|
94
|
-
return [4 /*yield*/, pool.execute("
|
|
100
|
+
_c.sent();
|
|
101
|
+
return [4 /*yield*/, pool.execute("SELECT COLUMN_NAME \n FROM INFORMATION_SCHEMA.COLUMNS \n WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = ?", [table])];
|
|
95
102
|
case 2:
|
|
96
|
-
rows = (
|
|
103
|
+
rows = (_c.sent())[0];
|
|
104
|
+
ex = ["id", "create_time", "update_time"];
|
|
97
105
|
columns = rows.map(function (r) { return r.COLUMN_NAME; });
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
106
|
+
fieldKeys = fields.map(exports.Parser.toDbName);
|
|
107
|
+
add = fieldKeys.filter(function (c) { return !columns.includes(c); });
|
|
108
|
+
drop = columns.filter(function (c) { return !fieldKeys.includes(c); });
|
|
109
|
+
alters = [];
|
|
110
|
+
for (_i = 0, add_1 = add; _i < add_1.length; _i++) {
|
|
111
|
+
col = add_1[_i];
|
|
112
|
+
if (!ex.includes(col)) {
|
|
113
|
+
sample = json[col];
|
|
114
|
+
type = inferType(sample);
|
|
115
|
+
alters.push("ADD COLUMN `".concat(col, "` ").concat(type));
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
for (_b = 0, drop_1 = drop; _b < drop_1.length; _b++) {
|
|
119
|
+
col = drop_1[_b];
|
|
120
|
+
if (!ex.includes(col)) {
|
|
121
|
+
alters.push("DROP COLUMN `".concat(col, "`"));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (!(alters.length > 0)) return [3 /*break*/, 4];
|
|
125
|
+
sql = "ALTER TABLE `".concat(table, "` ").concat(alters.join(", "));
|
|
126
|
+
return [4 /*yield*/, pool.execute(sql)];
|
|
107
127
|
case 3:
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
if (typeof json[col] === "number")
|
|
112
|
-
type = "INT";
|
|
113
|
-
return [4 /*yield*/, pool.execute("ALTER TABLE `".concat(table, "` ADD COLUMN `").concat(col, "` ").concat(type))];
|
|
114
|
-
case 4:
|
|
115
|
-
_b.sent();
|
|
116
|
-
_b.label = 5;
|
|
117
|
-
case 5:
|
|
118
|
-
_i++;
|
|
119
|
-
return [3 /*break*/, 3];
|
|
120
|
-
case 6:
|
|
121
|
-
_a = 0, drop_1 = drop;
|
|
122
|
-
_b.label = 7;
|
|
123
|
-
case 7:
|
|
124
|
-
if (!(_a < drop_1.length)) return [3 /*break*/, 10];
|
|
125
|
-
col = drop_1[_a];
|
|
126
|
-
return [4 /*yield*/, pool.execute("ALTER TABLE `".concat(table, "` DROP COLUMN `").concat(col, "`"))];
|
|
127
|
-
case 8:
|
|
128
|
-
_b.sent();
|
|
129
|
-
_b.label = 9;
|
|
130
|
-
case 9:
|
|
131
|
-
_a++;
|
|
132
|
-
return [3 /*break*/, 7];
|
|
133
|
-
case 10: return [4 /*yield*/, pool.end()];
|
|
134
|
-
case 11:
|
|
135
|
-
_b.sent();
|
|
136
|
-
return [2 /*return*/];
|
|
128
|
+
_c.sent();
|
|
129
|
+
_c.label = 4;
|
|
130
|
+
case 4: return [2 /*return*/];
|
|
137
131
|
}
|
|
138
132
|
});
|
|
139
133
|
});
|
package/package.json
CHANGED
package/types/utils.d.ts
CHANGED