hotstaq 0.5.24
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/.eslintignore +17 -0
- package/.eslintrc.js +11 -0
- package/.vscode/launch.json +199 -0
- package/.vscode/settings.json +2 -0
- package/.vscode/tasks.json +78 -0
- package/CONTRIBUTING.md +157 -0
- package/README.md +126 -0
- package/bin/hotstaq +3 -0
- package/bin/hotstaq.cmd +1 -0
- package/build/src/Hot.d.ts +167 -0
- package/build/src/Hot.d.ts.map +1 -0
- package/build/src/Hot.js +365 -0
- package/build/src/Hot.js.map +1 -0
- package/build/src/HotAPI.d.ts +130 -0
- package/build/src/HotAPI.d.ts.map +1 -0
- package/build/src/HotAPI.js +353 -0
- package/build/src/HotAPI.js.map +1 -0
- package/build/src/HotAgentAPI.d.ts +22 -0
- package/build/src/HotAgentAPI.d.ts.map +1 -0
- package/build/src/HotAgentAPI.js +85 -0
- package/build/src/HotAgentAPI.js.map +1 -0
- package/build/src/HotAgentRoute.d.ts +17 -0
- package/build/src/HotAgentRoute.d.ts.map +1 -0
- package/build/src/HotAgentRoute.js +109 -0
- package/build/src/HotAgentRoute.js.map +1 -0
- package/build/src/HotBuilder.d.ts +52 -0
- package/build/src/HotBuilder.d.ts.map +1 -0
- package/build/src/HotBuilder.js +239 -0
- package/build/src/HotBuilder.js.map +1 -0
- package/build/src/HotClient.d.ts +31 -0
- package/build/src/HotClient.d.ts.map +1 -0
- package/build/src/HotClient.js +19 -0
- package/build/src/HotClient.js.map +1 -0
- package/build/src/HotComponent.d.ts +118 -0
- package/build/src/HotComponent.d.ts.map +1 -0
- package/build/src/HotComponent.js +89 -0
- package/build/src/HotComponent.js.map +1 -0
- package/build/src/HotCreator.d.ts +92 -0
- package/build/src/HotCreator.d.ts.map +1 -0
- package/build/src/HotCreator.js +465 -0
- package/build/src/HotCreator.js.map +1 -0
- package/build/src/HotDB.d.ts +69 -0
- package/build/src/HotDB.d.ts.map +1 -0
- package/build/src/HotDB.js +29 -0
- package/build/src/HotDB.js.map +1 -0
- package/build/src/HotDBConnectionInterface.d.ts +40 -0
- package/build/src/HotDBConnectionInterface.d.ts.map +1 -0
- package/build/src/HotDBConnectionInterface.js +3 -0
- package/build/src/HotDBConnectionInterface.js.map +1 -0
- package/build/src/HotFile.d.ts +134 -0
- package/build/src/HotFile.d.ts.map +1 -0
- package/build/src/HotFile.js +454 -0
- package/build/src/HotFile.js.map +1 -0
- package/build/src/HotHTTPServer.d.ts +162 -0
- package/build/src/HotHTTPServer.d.ts.map +1 -0
- package/build/src/HotHTTPServer.js +863 -0
- package/build/src/HotHTTPServer.js.map +1 -0
- package/build/src/HotIO.d.ts +39 -0
- package/build/src/HotIO.d.ts.map +1 -0
- package/build/src/HotIO.js +195 -0
- package/build/src/HotIO.js.map +1 -0
- package/build/src/HotLog.d.ts +60 -0
- package/build/src/HotLog.d.ts.map +1 -0
- package/build/src/HotLog.js +126 -0
- package/build/src/HotLog.js.map +1 -0
- package/build/src/HotPage.d.ts +125 -0
- package/build/src/HotPage.d.ts.map +1 -0
- package/build/src/HotPage.js +178 -0
- package/build/src/HotPage.js.map +1 -0
- package/build/src/HotRoute.d.ts +82 -0
- package/build/src/HotRoute.d.ts.map +1 -0
- package/build/src/HotRoute.js +83 -0
- package/build/src/HotRoute.js.map +1 -0
- package/build/src/HotRouteMethod.d.ts +129 -0
- package/build/src/HotRouteMethod.d.ts.map +1 -0
- package/build/src/HotRouteMethod.js +84 -0
- package/build/src/HotRouteMethod.js.map +1 -0
- package/build/src/HotServer.d.ts +152 -0
- package/build/src/HotServer.d.ts.map +1 -0
- package/build/src/HotServer.js +109 -0
- package/build/src/HotServer.js.map +1 -0
- package/build/src/HotSetAsWeb.d.ts +2 -0
- package/build/src/HotSetAsWeb.d.ts.map +1 -0
- package/build/src/HotSetAsWeb.js +5 -0
- package/build/src/HotSetAsWeb.js.map +1 -0
- package/build/src/HotStaq.d.ts +601 -0
- package/build/src/HotStaq.d.ts.map +1 -0
- package/build/src/HotStaq.js +1258 -0
- package/build/src/HotStaq.js.map +1 -0
- package/build/src/HotStaqWeb.d.ts +18 -0
- package/build/src/HotStaqWeb.d.ts.map +1 -0
- package/build/src/HotStaqWeb.js +44 -0
- package/build/src/HotStaqWeb.js.map +1 -0
- package/build/src/HotTestDriver.d.ts +63 -0
- package/build/src/HotTestDriver.d.ts.map +1 -0
- package/build/src/HotTestDriver.js +187 -0
- package/build/src/HotTestDriver.js.map +1 -0
- package/build/src/HotTestElement.d.ts +71 -0
- package/build/src/HotTestElement.d.ts.map +1 -0
- package/build/src/HotTestElement.js +37 -0
- package/build/src/HotTestElement.js.map +1 -0
- package/build/src/HotTestMap.d.ts +83 -0
- package/build/src/HotTestMap.d.ts.map +1 -0
- package/build/src/HotTestMap.js +58 -0
- package/build/src/HotTestMap.js.map +1 -0
- package/build/src/HotTestSeleniumDriver.d.ts +82 -0
- package/build/src/HotTestSeleniumDriver.d.ts.map +1 -0
- package/build/src/HotTestSeleniumDriver.js +398 -0
- package/build/src/HotTestSeleniumDriver.js.map +1 -0
- package/build/src/HotTester.d.ts +188 -0
- package/build/src/HotTester.d.ts.map +1 -0
- package/build/src/HotTester.js +623 -0
- package/build/src/HotTester.js.map +1 -0
- package/build/src/HotTesterAPI.d.ts +15 -0
- package/build/src/HotTesterAPI.d.ts.map +1 -0
- package/build/src/HotTesterAPI.js +161 -0
- package/build/src/HotTesterAPI.js.map +1 -0
- package/build/src/HotTesterMocha.d.ts +50 -0
- package/build/src/HotTesterMocha.d.ts.map +1 -0
- package/build/src/HotTesterMocha.js +205 -0
- package/build/src/HotTesterMocha.js.map +1 -0
- package/build/src/HotTesterMochaSelenium.d.ts +70 -0
- package/build/src/HotTesterMochaSelenium.d.ts.map +1 -0
- package/build/src/HotTesterMochaSelenium.js +257 -0
- package/build/src/HotTesterMochaSelenium.js.map +1 -0
- package/build/src/HotTesterServer.d.ts +114 -0
- package/build/src/HotTesterServer.d.ts.map +1 -0
- package/build/src/HotTesterServer.js +575 -0
- package/build/src/HotTesterServer.js.map +1 -0
- package/build/src/api.d.ts +33 -0
- package/build/src/api.d.ts.map +1 -0
- package/build/src/api.js +78 -0
- package/build/src/api.js.map +1 -0
- package/build/src/cli.d.ts +2 -0
- package/build/src/cli.d.ts.map +1 -0
- package/build/src/cli.js +935 -0
- package/build/src/cli.js.map +1 -0
- package/build/src/schemas/HotDBInflux.d.ts +63 -0
- package/build/src/schemas/HotDBInflux.d.ts.map +1 -0
- package/build/src/schemas/HotDBInflux.js +239 -0
- package/build/src/schemas/HotDBInflux.js.map +1 -0
- package/build/src/schemas/HotDBMigration.d.ts +19 -0
- package/build/src/schemas/HotDBMigration.d.ts.map +1 -0
- package/build/src/schemas/HotDBMigration.js +15 -0
- package/build/src/schemas/HotDBMigration.js.map +1 -0
- package/build/src/schemas/HotDBMySQL.d.ts +65 -0
- package/build/src/schemas/HotDBMySQL.d.ts.map +1 -0
- package/build/src/schemas/HotDBMySQL.js +387 -0
- package/build/src/schemas/HotDBMySQL.js.map +1 -0
- package/build/src/schemas/HotDBSchema.d.ts +15 -0
- package/build/src/schemas/HotDBSchema.d.ts.map +1 -0
- package/build/src/schemas/HotDBSchema.js +19 -0
- package/build/src/schemas/HotDBSchema.js.map +1 -0
- package/build/src/schemas/influx/InfluxSchema.d.ts +14 -0
- package/build/src/schemas/influx/InfluxSchema.d.ts.map +1 -0
- package/build/src/schemas/influx/InfluxSchema.js +33 -0
- package/build/src/schemas/influx/InfluxSchema.js.map +1 -0
- package/build/src/schemas/mysql/MySQLSchema.d.ts +39 -0
- package/build/src/schemas/mysql/MySQLSchema.d.ts.map +1 -0
- package/build/src/schemas/mysql/MySQLSchema.js +151 -0
- package/build/src/schemas/mysql/MySQLSchema.js.map +1 -0
- package/build/src/schemas/mysql/MySQLSchemaField.d.ts +168 -0
- package/build/src/schemas/mysql/MySQLSchemaField.d.ts.map +1 -0
- package/build/src/schemas/mysql/MySQLSchemaField.js +260 -0
- package/build/src/schemas/mysql/MySQLSchemaField.js.map +1 -0
- package/build/src/schemas/mysql/MySQLSchemaTable.d.ts +49 -0
- package/build/src/schemas/mysql/MySQLSchemaTable.d.ts.map +1 -0
- package/build/src/schemas/mysql/MySQLSchemaTable.js +310 -0
- package/build/src/schemas/mysql/MySQLSchemaTable.js.map +1 -0
- package/build-web/HotStaq.js +2 -0
- package/build-web/HotStaq.min.js +125 -0
- package/builder/docker/Dockerfile.linux.gen +42 -0
- package/builder/docker/README.md +36 -0
- package/builder/docker/app/start.sh +8 -0
- package/builder/docker/dockerignore +3 -0
- package/builder/docker/scripts/build.bat +11 -0
- package/builder/docker/scripts/build.sh +11 -0
- package/builder/docker/scripts/start-app.bat +7 -0
- package/builder/docker/scripts/start-app.sh +7 -0
- package/builder/docker/scripts/stop-app.bat +5 -0
- package/builder/docker/scripts/stop-app.sh +5 -0
- package/builder/docker-compose/docker-compose.gen.yaml +41 -0
- package/builder/docker-compose/env-skeleton +4 -0
- package/creator/project/.vscode/launch.json +59 -0
- package/creator/project/README.md +20 -0
- package/creator/project/gitignore +118 -0
- package/creator/project/npmignore +118 -0
- package/creator/public/api-test.hott +28 -0
- package/creator/public/index.hott +12 -0
- package/creator/ts/src/AppAPI.ts +30 -0
- package/creator/ts/src/HelloWorld.ts +39 -0
- package/creator/ts/src/WebExport.ts +7 -0
- package/creator/ts/tsconfig-web.json +73 -0
- package/creator/ts/tsconfig.json +73 -0
- package/creator/ts/webpack-api.config.js +57 -0
- package/dbstart.sh +19 -0
- package/dbstop.sh +4 -0
- package/docs/.nojekyll +1 -0
- package/docs/README.md +128 -0
- package/docs/classes/Hot.md +477 -0
- package/docs/classes/HotAPI.md +369 -0
- package/docs/classes/HotClient.md +95 -0
- package/docs/classes/HotComponent.md +279 -0
- package/docs/classes/HotDB.md +247 -0
- package/docs/classes/HotDBInflux.md +404 -0
- package/docs/classes/HotDBMigration.md +80 -0
- package/docs/classes/HotDBMySQL.md +310 -0
- package/docs/classes/HotDBSchema.md +51 -0
- package/docs/classes/HotFile.md +353 -0
- package/docs/classes/HotHTTPServer.md +700 -0
- package/docs/classes/HotLog.md +162 -0
- package/docs/classes/HotPage.md +357 -0
- package/docs/classes/HotRoute.md +312 -0
- package/docs/classes/HotRouteMethod.md +271 -0
- package/docs/classes/HotServer.md +311 -0
- package/docs/classes/HotStaq.md +1153 -0
- package/docs/classes/HotTestDestination.md +58 -0
- package/docs/classes/HotTestDriver.md +332 -0
- package/docs/classes/HotTestElement.md +88 -0
- package/docs/classes/HotTestElementOptions.md +71 -0
- package/docs/classes/HotTestMap.md +92 -0
- package/docs/classes/HotTestSeleniumDriver.md +529 -0
- package/docs/classes/HotTester.md +653 -0
- package/docs/classes/HotTesterAPI.md +493 -0
- package/docs/classes/HotTesterMocha.md +843 -0
- package/docs/classes/HotTesterMochaSelenium.md +896 -0
- package/docs/classes/HotTesterServer.md +633 -0
- package/docs/classes/InfluxSchema.md +74 -0
- package/docs/classes/MySQLSchema.md +199 -0
- package/docs/classes/MySQLSchemaField.md +330 -0
- package/docs/classes/MySQLSchemaTable.md +176 -0
- package/docs/enums/ConnectionStatus.md +43 -0
- package/docs/enums/DeveloperMode.md +38 -0
- package/docs/enums/EventExecutionType.md +43 -0
- package/docs/enums/HTTPMethod.md +32 -0
- package/docs/enums/HotDBGenerationType.md +30 -0
- package/docs/enums/HotLogLevel.md +88 -0
- package/docs/interfaces/HotDBConnectionInterface.md +116 -0
- package/docs/interfaces/HotDestination.md +62 -0
- package/docs/interfaces/HotSite.md +187 -0
- package/docs/interfaces/HotSiteMapPath.md +37 -0
- package/docs/interfaces/HotSiteRoute.md +79 -0
- package/docs/interfaces/HotStartOptions.md +115 -0
- package/docs/interfaces/HotTestPage.md +44 -0
- package/docs/interfaces/HotTestStop.md +62 -0
- package/docs/interfaces/IHotComponent.md +135 -0
- package/docs/interfaces/IHotStaq.md +118 -0
- package/docs/interfaces/IHotTestElement.md +54 -0
- package/docs/interfaces/IHotTestElementOptions.md +43 -0
- package/docs/interfaces/MySQLResults.md +43 -0
- package/docs/interfaces/MySQLSchemaFieldResult.md +75 -0
- package/docs/modules.md +162 -0
- package/package.json +65 -0
- package/selenium-start.sh +7 -0
- package/selenium-stop.sh +3 -0
- package/src/Hot.ts +319 -0
- package/src/HotAPI.ts +378 -0
- package/src/HotAgentAPI.ts +43 -0
- package/src/HotAgentRoute.ts +44 -0
- package/src/HotBuilder.ts +221 -0
- package/src/HotClient.ts +40 -0
- package/src/HotComponent.ts +158 -0
- package/src/HotCreator.ts +482 -0
- package/src/HotDB.ts +79 -0
- package/src/HotDBConnectionInterface.ts +40 -0
- package/src/HotFile.ts +617 -0
- package/src/HotHTTPServer.ts +954 -0
- package/src/HotIO.ts +128 -0
- package/src/HotLog.ts +158 -0
- package/src/HotPage.ts +206 -0
- package/src/HotRoute.ts +137 -0
- package/src/HotRouteMethod.ts +216 -0
- package/src/HotServer.ts +211 -0
- package/src/HotSetAsWeb.ts +3 -0
- package/src/HotStaq.ts +1877 -0
- package/src/HotStaqWeb.ts +59 -0
- package/src/HotTestDriver.ts +172 -0
- package/src/HotTestElement.ts +97 -0
- package/src/HotTestMap.ts +130 -0
- package/src/HotTestSeleniumDriver.ts +374 -0
- package/src/HotTester.ts +697 -0
- package/src/HotTesterAPI.ts +126 -0
- package/src/HotTesterMocha.ts +133 -0
- package/src/HotTesterMochaSelenium.ts +189 -0
- package/src/HotTesterServer.ts +551 -0
- package/src/api.ts +102 -0
- package/src/cli.ts +1147 -0
- package/src/schemas/HotDBInflux.ts +211 -0
- package/src/schemas/HotDBMigration.ts +24 -0
- package/src/schemas/HotDBMySQL.ts +312 -0
- package/src/schemas/HotDBSchema.ts +21 -0
- package/src/schemas/influx/InfluxSchema.ts +19 -0
- package/src/schemas/mysql/MySQLSchema.ts +90 -0
- package/src/schemas/mysql/MySQLSchemaField.ts +408 -0
- package/src/schemas/mysql/MySQLSchemaTable.ts +353 -0
- package/tsconfig-web.json +74 -0
- package/tsconfig.json +73 -0
- package/webpack.config.js +51 -0
- package/webpack.config.tests.js +56 -0
|
@@ -0,0 +1,310 @@
|
|
|
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 __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.MySQLSchemaTable = void 0;
|
|
40
|
+
var MySQLSchemaField_1 = require("./MySQLSchemaField");
|
|
41
|
+
var HotDBSchema_1 = require("../HotDBSchema");
|
|
42
|
+
/**
|
|
43
|
+
* The database table.
|
|
44
|
+
*/
|
|
45
|
+
var MySQLSchemaTable = /** @class */ (function () {
|
|
46
|
+
function MySQLSchemaTable(name, fields) {
|
|
47
|
+
if (name === void 0) { name = ""; }
|
|
48
|
+
if (fields === void 0) { fields = []; }
|
|
49
|
+
this.name = name;
|
|
50
|
+
this.description = "";
|
|
51
|
+
this.fields = fields;
|
|
52
|
+
this.engine = "InnoDB";
|
|
53
|
+
this.charset = "utf8";
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Add a field.
|
|
57
|
+
*/
|
|
58
|
+
MySQLSchemaTable.prototype.addField = function (field) {
|
|
59
|
+
this.fields.push(field);
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Add a field.
|
|
63
|
+
*/
|
|
64
|
+
MySQLSchemaTable.prototype.addFields = function (fields) {
|
|
65
|
+
for (var iIdx = 0; iIdx < this.fields.length; iIdx++) {
|
|
66
|
+
var field = this.fields[iIdx];
|
|
67
|
+
this.fields.push(field);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Generate the db command. If type is set to modify, you must pass a db with an
|
|
72
|
+
* active connection. Since field parsing isn't completely implemented yet, not all
|
|
73
|
+
* fields will be modified correctly. Use modifiying with caution. This will
|
|
74
|
+
* skip checking for:
|
|
75
|
+
* * Binary columnexistingFields
|
|
76
|
+
* * unique
|
|
77
|
+
* * zero-filled
|
|
78
|
+
* * generated column
|
|
79
|
+
*/
|
|
80
|
+
MySQLSchemaTable.prototype.generate = function (type, db) {
|
|
81
|
+
if (type === void 0) { type = HotDBSchema_1.HotDBGenerationType.Create; }
|
|
82
|
+
if (db === void 0) { db = null; }
|
|
83
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
84
|
+
var output, primaryKeys, keys, result, iIdx, field, fieldResult, iIdx, primaryKey, iIdx, key, dbresult, existingFields, existingFieldsNames, thisFieldsNames, iIdx, thisField, iIdx, jsonField, dbfield, ignoreFields, iIdx, existingField, pos, tempAlter, result, iIdx, thisField, pos, generatedField, position, prevName, tempAlter, result, iIdx, existingField, pos, tempAlter, generatedField, position, result, checkKeysInFields, iIdx, existingField, existingFieldName, existingFieldDataType, newField, newFieldName, newFieldDataType, tempAlter, result;
|
|
85
|
+
return __generator(this, function (_a) {
|
|
86
|
+
switch (_a.label) {
|
|
87
|
+
case 0:
|
|
88
|
+
output = [];
|
|
89
|
+
if (!(type === HotDBSchema_1.HotDBGenerationType.Create)) return [3 /*break*/, 5];
|
|
90
|
+
primaryKeys = [];
|
|
91
|
+
keys = [];
|
|
92
|
+
result = "CREATE TABLE IF NOT EXISTS ".concat(this.name, " (\n");
|
|
93
|
+
iIdx = 0;
|
|
94
|
+
_a.label = 1;
|
|
95
|
+
case 1:
|
|
96
|
+
if (!(iIdx < this.fields.length)) return [3 /*break*/, 4];
|
|
97
|
+
field = this.fields[iIdx];
|
|
98
|
+
return [4 /*yield*/, field.generate()];
|
|
99
|
+
case 2:
|
|
100
|
+
fieldResult = _a.sent();
|
|
101
|
+
if (fieldResult.primaryKey !== "")
|
|
102
|
+
primaryKeys.push(fieldResult.primaryKey);
|
|
103
|
+
if (fieldResult.key !== "")
|
|
104
|
+
keys.push(fieldResult.key);
|
|
105
|
+
result += "".concat(fieldResult.field, ",\n");
|
|
106
|
+
_a.label = 3;
|
|
107
|
+
case 3:
|
|
108
|
+
iIdx++;
|
|
109
|
+
return [3 /*break*/, 1];
|
|
110
|
+
case 4:
|
|
111
|
+
// Generate the primary keys.
|
|
112
|
+
if (primaryKeys.length > 0) {
|
|
113
|
+
result += "PRIMARY KEY (";
|
|
114
|
+
for (iIdx = 0; iIdx < primaryKeys.length; iIdx++) {
|
|
115
|
+
primaryKey = primaryKeys[iIdx];
|
|
116
|
+
result += "`".concat(primaryKey, "`,");
|
|
117
|
+
}
|
|
118
|
+
result = result.substr(0, (result.length - 1));
|
|
119
|
+
result += "),\n";
|
|
120
|
+
}
|
|
121
|
+
// Generate the keys.
|
|
122
|
+
if (keys.length > 0) {
|
|
123
|
+
for (iIdx = 0; iIdx < keys.length; iIdx++) {
|
|
124
|
+
key = keys[iIdx];
|
|
125
|
+
result += "".concat(key, ",\n");
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
result = result.substr(0, (result.length - 2));
|
|
129
|
+
result += ") ENGINE=".concat(this.engine, " DEFAULT CHARSET=").concat(this.charset, ";\n\n");
|
|
130
|
+
output.push(result);
|
|
131
|
+
_a.label = 5;
|
|
132
|
+
case 5:
|
|
133
|
+
if (!(type === HotDBSchema_1.HotDBGenerationType.Modify)) return [3 /*break*/, 15];
|
|
134
|
+
if (db == null)
|
|
135
|
+
throw new Error("Cannot modify a database structure when db is null.");
|
|
136
|
+
return [4 /*yield*/, db.query("describe ".concat(this.name, ";"))];
|
|
137
|
+
case 6:
|
|
138
|
+
dbresult = _a.sent();
|
|
139
|
+
existingFields = [];
|
|
140
|
+
existingFieldsNames = [];
|
|
141
|
+
thisFieldsNames = [];
|
|
142
|
+
if (dbresult.error != null)
|
|
143
|
+
throw new Error("Error while modifying structure ".concat(this.name, ", error: ").concat(dbresult.error));
|
|
144
|
+
// Get this fields names.
|
|
145
|
+
for (iIdx = 0; iIdx < this.fields.length; iIdx++) {
|
|
146
|
+
thisField = this.fields[iIdx];
|
|
147
|
+
thisFieldsNames.push(thisField.name);
|
|
148
|
+
}
|
|
149
|
+
// Get the fields.
|
|
150
|
+
for (iIdx = 0; iIdx < dbresult.results.length; iIdx++) {
|
|
151
|
+
jsonField = dbresult.results[iIdx];
|
|
152
|
+
dbfield = MySQLSchemaField_1.MySQLSchemaField.parse(jsonField);
|
|
153
|
+
existingFieldsNames.push(dbfield.name);
|
|
154
|
+
existingFields.push(dbfield);
|
|
155
|
+
}
|
|
156
|
+
ignoreFields = [];
|
|
157
|
+
// Delete any fields missing from this.fields
|
|
158
|
+
for (iIdx = 0; iIdx < existingFields.length; iIdx++) {
|
|
159
|
+
existingField = existingFields[iIdx];
|
|
160
|
+
pos = thisFieldsNames.indexOf(existingField.name);
|
|
161
|
+
if (pos < 0) {
|
|
162
|
+
tempAlter = "ALTER TABLE ".concat(this.name, " DROP COLUMN `").concat(existingField.name, "`;");
|
|
163
|
+
ignoreFields.push(existingField.name);
|
|
164
|
+
result = tempAlter;
|
|
165
|
+
output.push(result);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
iIdx = 0;
|
|
169
|
+
_a.label = 7;
|
|
170
|
+
case 7:
|
|
171
|
+
if (!(iIdx < this.fields.length)) return [3 /*break*/, 10];
|
|
172
|
+
thisField = this.fields[iIdx];
|
|
173
|
+
pos = existingFieldsNames.indexOf(thisField.name);
|
|
174
|
+
if (!(pos < 0)) return [3 /*break*/, 9];
|
|
175
|
+
return [4 /*yield*/, thisField.generate()];
|
|
176
|
+
case 8:
|
|
177
|
+
generatedField = _a.sent();
|
|
178
|
+
position = "";
|
|
179
|
+
if (iIdx === 0)
|
|
180
|
+
position = "FIRST";
|
|
181
|
+
else {
|
|
182
|
+
prevName = existingFieldsNames[(iIdx - 1)];
|
|
183
|
+
if (prevName == null) {
|
|
184
|
+
// Is this correct? Since the previous name doesn't exist. Then
|
|
185
|
+
// the previous name must be the previous this.fields name?
|
|
186
|
+
// Basically the previous newly added field name?
|
|
187
|
+
if (this.fields[(iIdx - 1)] != null)
|
|
188
|
+
prevName = this.fields[(iIdx - 1)].name;
|
|
189
|
+
else {
|
|
190
|
+
/// @fixme Gotta fix this someday...
|
|
191
|
+
debugger;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
position = "AFTER `".concat(prevName, "`");
|
|
195
|
+
}
|
|
196
|
+
tempAlter = "ALTER TABLE ".concat(this.name, " ADD COLUMN ").concat(generatedField.field, " ").concat(position, ";");
|
|
197
|
+
ignoreFields.push(thisField.name);
|
|
198
|
+
result = tempAlter;
|
|
199
|
+
output.push(result);
|
|
200
|
+
_a.label = 9;
|
|
201
|
+
case 9:
|
|
202
|
+
iIdx++;
|
|
203
|
+
return [3 /*break*/, 7];
|
|
204
|
+
case 10:
|
|
205
|
+
iIdx = 0;
|
|
206
|
+
_a.label = 11;
|
|
207
|
+
case 11:
|
|
208
|
+
if (!(iIdx < existingFields.length)) return [3 /*break*/, 14];
|
|
209
|
+
existingField = existingFields[iIdx];
|
|
210
|
+
pos = thisFieldsNames.indexOf(existingField.name);
|
|
211
|
+
// This field has been added/deleted, ignore it.
|
|
212
|
+
if (ignoreFields.indexOf(existingField.name) > -1)
|
|
213
|
+
return [3 /*break*/, 13];
|
|
214
|
+
if (!(pos > -1)) return [3 /*break*/, 13];
|
|
215
|
+
if (!(iIdx !== pos)) return [3 /*break*/, 13];
|
|
216
|
+
tempAlter = "ALTER TABLE ".concat(this.name, " CHANGE COLUMN `").concat(existingField.name, "` `").concat(existingField.name, "` ");
|
|
217
|
+
return [4 /*yield*/, existingField.generate()];
|
|
218
|
+
case 12:
|
|
219
|
+
generatedField = _a.sent();
|
|
220
|
+
position = "";
|
|
221
|
+
if (pos === 0)
|
|
222
|
+
position = "FIRST";
|
|
223
|
+
else
|
|
224
|
+
position = "AFTER `".concat(existingFields[iIdx].name, "`");
|
|
225
|
+
tempAlter += "".concat(generatedField.field, " ").concat(position, ";\n");
|
|
226
|
+
result = tempAlter;
|
|
227
|
+
output.push(result);
|
|
228
|
+
_a.label = 13;
|
|
229
|
+
case 13:
|
|
230
|
+
iIdx++;
|
|
231
|
+
return [3 /*break*/, 11];
|
|
232
|
+
case 14:
|
|
233
|
+
checkKeysInFields = ["name", "dataType", "primaryKey", "notNull",
|
|
234
|
+
"unsignedDataType", "autoIncrement", "defaultValue"];
|
|
235
|
+
/**
|
|
236
|
+
* Check for any differences between the two tables.
|
|
237
|
+
* Since MySQLSchemaField.parse is missing some fields, this will
|
|
238
|
+
* skip checking for:
|
|
239
|
+
* * Binary column
|
|
240
|
+
* * unique
|
|
241
|
+
* * zero-filled
|
|
242
|
+
* * generated column
|
|
243
|
+
*/
|
|
244
|
+
for (iIdx = 0; iIdx < existingFields.length; iIdx++) {
|
|
245
|
+
existingField = existingFields[iIdx];
|
|
246
|
+
existingFieldName = existingField.name.toLowerCase();
|
|
247
|
+
existingFieldDataType = existingField.dataType.toLowerCase();
|
|
248
|
+
// This field has been added/deleted, ignore it.
|
|
249
|
+
if (ignoreFields.indexOf(existingField.name) > -1)
|
|
250
|
+
continue;
|
|
251
|
+
if (this.fields[iIdx] != null) {
|
|
252
|
+
newField = this.fields[iIdx];
|
|
253
|
+
newFieldName = newField.name.toLowerCase();
|
|
254
|
+
newFieldDataType = newField.dataType.toLowerCase();
|
|
255
|
+
// Check to see if both are exactly the same. If they are, skip.
|
|
256
|
+
if (MySQLSchemaField_1.MySQLSchemaField.compare(existingField, newField, checkKeysInFields) === true)
|
|
257
|
+
continue;
|
|
258
|
+
tempAlter = "ALTER TABLE ".concat(this.name, " CHANGE COLUMN `").concat(existingField.name, "` ");
|
|
259
|
+
if (newFieldName !== existingFieldName)
|
|
260
|
+
tempAlter += "`".concat(newField.name, "` ");
|
|
261
|
+
else
|
|
262
|
+
tempAlter += "`".concat(existingField.name, "` ");
|
|
263
|
+
if (newField.autoIncrement === true)
|
|
264
|
+
tempAlter += "AUTO_INCREMENT ";
|
|
265
|
+
if (newFieldDataType !== existingFieldDataType)
|
|
266
|
+
tempAlter += "`".concat(newField.dataType, "` ");
|
|
267
|
+
else
|
|
268
|
+
tempAlter += "`".concat(existingField.dataType, "` ");
|
|
269
|
+
if (newField.unsignedDataType === true)
|
|
270
|
+
tempAlter += "UNSIGNED ";
|
|
271
|
+
if (newField.notNull === true)
|
|
272
|
+
tempAlter += "NOT NULL ";
|
|
273
|
+
else
|
|
274
|
+
tempAlter += "NULL ";
|
|
275
|
+
if (newField.defaultValue !== existingField.defaultValue)
|
|
276
|
+
tempAlter += "DEFAULT ".concat(newField.defaultValue, " ");
|
|
277
|
+
if (newField.primaryKey !== existingField.primaryKey) {
|
|
278
|
+
tempAlter += "\n";
|
|
279
|
+
if (existingField.primaryKey === true) {
|
|
280
|
+
if (newField.primaryKey === true) {
|
|
281
|
+
// Do nothing.
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
tempAlter += "DROP PRIMARY KEY ";
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
if (newField.primaryKey === true) {
|
|
289
|
+
tempAlter += "ADD PRIMARY KEY (`".concat(newField.name, "`)");
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
// Do nothing.
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
tempAlter += ';\n';
|
|
297
|
+
result = tempAlter;
|
|
298
|
+
output.push(result);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
_a.label = 15;
|
|
302
|
+
case 15: return [2 /*return*/, (output)];
|
|
303
|
+
}
|
|
304
|
+
});
|
|
305
|
+
});
|
|
306
|
+
};
|
|
307
|
+
return MySQLSchemaTable;
|
|
308
|
+
}());
|
|
309
|
+
exports.MySQLSchemaTable = MySQLSchemaTable;
|
|
310
|
+
//# sourceMappingURL=MySQLSchemaTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MySQLSchemaTable.js","sourceRoot":"","sources":["../../../../src/schemas/mysql/MySQLSchemaTable.ts"],"names":[],"mappings":"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"}
|