hotstaq 0.5.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/.dockerignore +123 -0
- package/.eslintignore +17 -0
- package/.eslintrc.js +11 -0
- package/.vscode/launch.json +201 -0
- package/.vscode/settings.json +2 -0
- package/.vscode/tasks.json +88 -0
- package/CONTRIBUTING.md +157 -0
- package/LICENSE +21 -0
- package/README.md +128 -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 +137 -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 +242 -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 +88 -0
- package/build/src/HotCreator.d.ts.map +1 -0
- package/build/src/HotCreator.js +445 -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/HotGenerator.d.ts +80 -0
- package/build/src/HotGenerator.d.ts.map +1 -0
- package/build/src/HotGenerator.js +342 -0
- package/build/src/HotGenerator.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 +47 -0
- package/build/src/HotIO.d.ts.map +1 -0
- package/build/src/HotIO.js +232 -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 +603 -0
- package/build/src/HotStaq.d.ts.map +1 -0
- package/build/src/HotStaq.js +1260 -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 +86 -0
- package/build/src/HotTestSeleniumDriver.d.ts.map +1 -0
- package/build/src/HotTestSeleniumDriver.js +400 -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 +622 -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 copy.d.ts +2 -0
- package/build/src/api copy.d.ts.map +1 -0
- package/build/src/api copy.js +153 -0
- package/build/src/api copy.js.map +1 -0
- package/build/src/api-web.d.ts +2 -0
- package/build/src/api-web.d.ts.map +1 -0
- package/build/src/api-web.js +45 -0
- package/build/src/api-web.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 +1040 -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 +119 -0
- package/build-web/HotStaqTests_HelloWorldAPI.js +133 -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 +130 -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 +1155 -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 +542 -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 +182 -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 +386 -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 +470 -0
- package/src/HotDB.ts +79 -0
- package/src/HotDBConnectionInterface.ts +40 -0
- package/src/HotFile.ts +617 -0
- package/src/HotGenerator.ts +446 -0
- package/src/HotHTTPServer.ts +954 -0
- package/src/HotIO.ts +160 -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 +1881 -0
- package/src/HotTestDriver.ts +171 -0
- package/src/HotTestElement.ts +97 -0
- package/src/HotTestMap.ts +130 -0
- package/src/HotTestSeleniumDriver.ts +381 -0
- package/src/HotTester.ts +696 -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-web.ts +48 -0
- package/src/api.ts +103 -0
- package/src/cli.ts +1225 -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/temp/HotStaqWeb.ts +59 -0
- package/tsconfig-generator.json +17 -0
- package/tsconfig-web.json +74 -0
- package/tsconfig.json +73 -0
- package/webpack.config.generator.js +41 -0
- package/webpack.config.js +53 -0
- package/webpack.config.tests.js +56 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
27
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
28
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
29
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
|
+
function step(op) {
|
|
31
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
+
while (_) try {
|
|
33
|
+
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;
|
|
34
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
|
+
switch (op[0]) {
|
|
36
|
+
case 0: case 1: t = op; break;
|
|
37
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
38
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
39
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
40
|
+
default:
|
|
41
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
42
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
43
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
44
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
45
|
+
if (t[2]) _.ops.pop();
|
|
46
|
+
_.trys.pop(); continue;
|
|
47
|
+
}
|
|
48
|
+
op = body.call(thisArg, _);
|
|
49
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
50
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
+
exports.MySQLSchema = void 0;
|
|
55
|
+
var HotDBSchema_1 = require("../HotDBSchema");
|
|
56
|
+
/**
|
|
57
|
+
* The MySQL schema.
|
|
58
|
+
*/
|
|
59
|
+
var MySQLSchema = /** @class */ (function (_super) {
|
|
60
|
+
__extends(MySQLSchema, _super);
|
|
61
|
+
function MySQLSchema(name) {
|
|
62
|
+
var _this = _super.call(this, name) || this;
|
|
63
|
+
_this.tables = {};
|
|
64
|
+
return _this;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Add a table to this schema.
|
|
68
|
+
*/
|
|
69
|
+
MySQLSchema.prototype.addTable = function (table) {
|
|
70
|
+
this.tables[table.name] = table;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Add a field to a table.
|
|
74
|
+
*/
|
|
75
|
+
MySQLSchema.prototype.addFieldToTable = function (tableName, field) {
|
|
76
|
+
if (this.tables[tableName] == null)
|
|
77
|
+
throw new Error("Table ".concat(tableName, " does not exist!"));
|
|
78
|
+
this.tables[tableName].fields.push(field);
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Add a field to a table.
|
|
82
|
+
*/
|
|
83
|
+
MySQLSchema.prototype.addFieldsToTable = function (tableName, fields) {
|
|
84
|
+
if (this.tables[tableName] == null)
|
|
85
|
+
throw new Error("Table ".concat(tableName, " does not exist!"));
|
|
86
|
+
for (var iIdx = 0; iIdx < fields.length; iIdx++) {
|
|
87
|
+
var field = fields[iIdx];
|
|
88
|
+
this.tables[tableName].fields.push(field);
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Generate a table's structure. If type is set to modify, you must pass a db with an
|
|
93
|
+
* active connection.
|
|
94
|
+
*/
|
|
95
|
+
MySQLSchema.prototype.generateTableStructure = function (tableName, type, db) {
|
|
96
|
+
if (type === void 0) { type = HotDBSchema_1.HotDBGenerationType.Create; }
|
|
97
|
+
if (db === void 0) { db = null; }
|
|
98
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
99
|
+
var table, generatedStructure;
|
|
100
|
+
return __generator(this, function (_a) {
|
|
101
|
+
switch (_a.label) {
|
|
102
|
+
case 0:
|
|
103
|
+
if (this.tables[tableName] == null)
|
|
104
|
+
throw new Error("Unable to generate table structure for ".concat(tableName, ". Table doesn't exist."));
|
|
105
|
+
table = this.tables[tableName];
|
|
106
|
+
return [4 /*yield*/, table.generate(type, db)];
|
|
107
|
+
case 1:
|
|
108
|
+
generatedStructure = _a.sent();
|
|
109
|
+
return [2 /*return*/, (generatedStructure)];
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* Generate the entire db structure. If type is set to modify, you must pass a db with an
|
|
116
|
+
* active connection.
|
|
117
|
+
*/
|
|
118
|
+
MySQLSchema.prototype.generateStructure = function (type, db) {
|
|
119
|
+
if (type === void 0) { type = HotDBSchema_1.HotDBGenerationType.Create; }
|
|
120
|
+
if (db === void 0) { db = null; }
|
|
121
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
122
|
+
var result, _a, _b, _i, key, generatedStructure;
|
|
123
|
+
return __generator(this, function (_c) {
|
|
124
|
+
switch (_c.label) {
|
|
125
|
+
case 0:
|
|
126
|
+
result = [];
|
|
127
|
+
_a = [];
|
|
128
|
+
for (_b in this.tables)
|
|
129
|
+
_a.push(_b);
|
|
130
|
+
_i = 0;
|
|
131
|
+
_c.label = 1;
|
|
132
|
+
case 1:
|
|
133
|
+
if (!(_i < _a.length)) return [3 /*break*/, 4];
|
|
134
|
+
key = _a[_i];
|
|
135
|
+
return [4 /*yield*/, this.generateTableStructure(key, type, db)];
|
|
136
|
+
case 2:
|
|
137
|
+
generatedStructure = _c.sent();
|
|
138
|
+
result.push(generatedStructure);
|
|
139
|
+
_c.label = 3;
|
|
140
|
+
case 3:
|
|
141
|
+
_i++;
|
|
142
|
+
return [3 /*break*/, 1];
|
|
143
|
+
case 4: return [2 /*return*/, (result)];
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
return MySQLSchema;
|
|
149
|
+
}(HotDBSchema_1.HotDBSchema));
|
|
150
|
+
exports.MySQLSchema = MySQLSchema;
|
|
151
|
+
//# sourceMappingURL=MySQLSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MySQLSchema.js","sourceRoot":"","sources":["../../../../src/schemas/mysql/MySQLSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,8CAAkE;AAGlE;;GAEG;AACH;IAAiC,+BAAW;IAO3C,qBAAa,IAAY;QAAzB,YAEC,kBAAO,IAAI,CAAC,SAGZ;QADA,KAAI,CAAC,MAAM,GAAG,EAAE,CAAC;;IAClB,CAAC;IAED;;OAEG;IACH,8BAAQ,GAAR,UAAU,KAAuB;QAEhC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,qCAAe,GAAf,UAAiB,SAAiB,EAAE,KAAuB;QAE1D,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI;YACjC,MAAM,IAAI,KAAK,CAAE,gBAAS,SAAS,qBAAkB,CAAC,CAAC;QAExD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,sCAAgB,GAAhB,UAAkB,SAAiB,EAAE,MAA0B;QAE9D,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI;YACjC,MAAM,IAAI,KAAK,CAAE,gBAAS,SAAS,qBAAkB,CAAC,CAAC;QAExD,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAC/C;YACC,IAAI,KAAK,GAAqB,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAE,KAAK,CAAC,CAAC;SAC3C;IACF,CAAC;IAED;;;OAGG;IACG,4CAAsB,GAA5B,UAA8B,SAAiB,EAC9C,IAAsD,EAAE,EAAqB;QAA7E,qBAAA,EAAA,OAA4B,iCAAmB,CAAC,MAAM;QAAE,mBAAA,EAAA,SAAqB;;;;;;wBAE7E,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI;4BACjC,MAAM,IAAI,KAAK,CAAE,iDAA0C,SAAS,2BAAwB,CAAC,CAAC;wBAE3F,KAAK,GAAqB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBAClB,qBAAM,KAAK,CAAC,QAAQ,CAAE,IAAI,EAAE,EAAE,CAAC,EAAA;;wBAA9D,kBAAkB,GAAa,SAA+B;wBAElE,sBAAO,CAAC,kBAAkB,CAAC,EAAC;;;;KAC5B;IAED;;;OAGG;IACG,uCAAiB,GAAvB,UAAyB,IAAsD,EAAE,EAAqB;QAA7E,qBAAA,EAAA,OAA4B,iCAAmB,CAAC,MAAM;QAAE,mBAAA,EAAA,SAAqB;;;;;;wBAEjG,MAAM,GAAe,EAAE,CAAC;;mCAEZ,IAAI,CAAC,MAAM;;;;;;;wBAES,qBAAM,IAAI,CAAC,sBAAsB,CAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAA;;wBAAhF,kBAAkB,GAAa,SAAiD;wBAEpF,MAAM,CAAC,IAAI,CAAE,kBAAkB,CAAC,CAAC;;;;;4BAGlC,sBAAO,CAAC,MAAM,CAAC,EAAC;;;;KAChB;IACF,kBAAC;AAAD,CAAC,AAjFD,CAAiC,yBAAW,GAiF3C;AAjFY,kCAAW"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The resulting data from a generated field.
|
|
3
|
+
*/
|
|
4
|
+
export interface MySQLSchemaFieldResult {
|
|
5
|
+
/**
|
|
6
|
+
* The field to be entered.
|
|
7
|
+
*/
|
|
8
|
+
field?: string;
|
|
9
|
+
/**
|
|
10
|
+
* The primary key to be added.
|
|
11
|
+
*/
|
|
12
|
+
primaryKey?: string;
|
|
13
|
+
/**
|
|
14
|
+
* The key to be added.
|
|
15
|
+
*/
|
|
16
|
+
key?: string;
|
|
17
|
+
/**
|
|
18
|
+
* The constraint to be added.
|
|
19
|
+
*/
|
|
20
|
+
constraint?: string;
|
|
21
|
+
/**
|
|
22
|
+
* The foreign key to be added.
|
|
23
|
+
*/
|
|
24
|
+
foreignKey?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The database field.
|
|
28
|
+
*/
|
|
29
|
+
export interface IMySQLSchemaField {
|
|
30
|
+
/**
|
|
31
|
+
* The name of the field.
|
|
32
|
+
*/
|
|
33
|
+
name: string;
|
|
34
|
+
/**
|
|
35
|
+
* The data type, be sure to include the length of the
|
|
36
|
+
* data type here as well.
|
|
37
|
+
*/
|
|
38
|
+
dataType: string;
|
|
39
|
+
/**
|
|
40
|
+
* Set as a primary key.
|
|
41
|
+
*/
|
|
42
|
+
primaryKey?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Set as a not null.
|
|
45
|
+
*/
|
|
46
|
+
notNull?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Set as a unique index.
|
|
49
|
+
*/
|
|
50
|
+
uniqueIndex?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Set as a binary column.
|
|
53
|
+
*/
|
|
54
|
+
binaryColumn?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Set as an unsigned data type.
|
|
57
|
+
*/
|
|
58
|
+
unsignedDataType?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* If this column is a number, fill with zeroes.
|
|
61
|
+
*/
|
|
62
|
+
fillZeroes?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Set as an auto incrementing column.
|
|
65
|
+
*/
|
|
66
|
+
autoIncrement?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Set as a generated column.
|
|
69
|
+
*/
|
|
70
|
+
generatedColumn?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Set the default value. If this is set to null, a
|
|
73
|
+
* MySQL NULL value will be used.
|
|
74
|
+
*/
|
|
75
|
+
defaultValue?: string;
|
|
76
|
+
/**
|
|
77
|
+
* Set the string to be used when setting the default
|
|
78
|
+
* value. The default is: '
|
|
79
|
+
*/
|
|
80
|
+
strAroundDefaultValue?: string;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* The database field.
|
|
84
|
+
*/
|
|
85
|
+
export declare class MySQLSchemaField implements IMySQLSchemaField {
|
|
86
|
+
/**
|
|
87
|
+
* The name of the field.
|
|
88
|
+
*/
|
|
89
|
+
name: string;
|
|
90
|
+
/**
|
|
91
|
+
* The data type, be sure to include the length of the
|
|
92
|
+
* data type here as well.
|
|
93
|
+
*/
|
|
94
|
+
dataType: string;
|
|
95
|
+
/**
|
|
96
|
+
* Set as a primary key.
|
|
97
|
+
*/
|
|
98
|
+
primaryKey: boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Set as a not null.
|
|
101
|
+
*/
|
|
102
|
+
notNull: boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Set as a unique index.
|
|
105
|
+
*/
|
|
106
|
+
uniqueIndex: boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Set as a binary column.
|
|
109
|
+
*/
|
|
110
|
+
binaryColumn: boolean;
|
|
111
|
+
/**
|
|
112
|
+
* Set as an unsigned data type.
|
|
113
|
+
*/
|
|
114
|
+
unsignedDataType: boolean;
|
|
115
|
+
/**
|
|
116
|
+
* If this column is a number, fill with zeroes.
|
|
117
|
+
*/
|
|
118
|
+
fillZeroes: boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Set as an auto incrementing column.
|
|
121
|
+
*/
|
|
122
|
+
autoIncrement: boolean;
|
|
123
|
+
/**
|
|
124
|
+
* Set as a generated column.
|
|
125
|
+
*/
|
|
126
|
+
generatedColumn: boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Set the default value. If this is set to null, a
|
|
129
|
+
* MySQL NULL value will be used.
|
|
130
|
+
*/
|
|
131
|
+
defaultValue: string;
|
|
132
|
+
/**
|
|
133
|
+
* Set the string to be used when setting the default
|
|
134
|
+
* value. The default is: '
|
|
135
|
+
*/
|
|
136
|
+
strAroundDefaultValue: string;
|
|
137
|
+
constructor(name: string | IMySQLSchemaField, dataType?: string, defaultValue?: string, primaryKey?: boolean, notNull?: boolean, uniqueIndex?: boolean, binaryColumn?: boolean, unsignedDataType?: boolean, fillZeroes?: boolean, autoIncrement?: boolean, generatedColumn?: boolean, strAroundDefaultValue?: string);
|
|
138
|
+
/**
|
|
139
|
+
* Compare two different fields. This will iterate through all keys in each field. Any
|
|
140
|
+
* string values found will have stringFilter applied to it, removing everything that
|
|
141
|
+
* is in that stringFilter regex. Additionally for any empty strings found it will
|
|
142
|
+
* compare to any undefined/null on the other side, and treat them as the same.
|
|
143
|
+
*
|
|
144
|
+
* @param field1 The first field to compare.
|
|
145
|
+
* @param field2 The second field to compare.
|
|
146
|
+
* @param onlyKeys Only compare using the provided keys. If set to null, this will compare
|
|
147
|
+
* using all of the keys in these objects.
|
|
148
|
+
* @param stringFilter The regex to be used to help make any filters on any detected
|
|
149
|
+
* strings. The default regex provided will remove any whitespaces, single/doube quotes,
|
|
150
|
+
* back ticks, and parenthesis. If this is set to null, it will not be used.
|
|
151
|
+
*/
|
|
152
|
+
static compare(field1: MySQLSchemaField, field2: MySQLSchemaField, onlyKeys?: string[], stringFilter?: RegExp): boolean;
|
|
153
|
+
/**
|
|
154
|
+
* Parse a JSON object and get a MySQLSchemaField object from it.
|
|
155
|
+
* Warning! This is only partially implemented. This will not check
|
|
156
|
+
* the following fields:
|
|
157
|
+
* * Binary column
|
|
158
|
+
* * unique
|
|
159
|
+
* * zero-filled
|
|
160
|
+
* * generated column
|
|
161
|
+
*/
|
|
162
|
+
static parse(json: any): MySQLSchemaField;
|
|
163
|
+
/**
|
|
164
|
+
* Generate the db command.
|
|
165
|
+
*/
|
|
166
|
+
generate(): Promise<MySQLSchemaFieldResult>;
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=MySQLSchemaField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MySQLSchemaField.d.ts","sourceRoot":"","sources":["../../../../src/schemas/mysql/MySQLSchemaField.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,sBAAsB;IAEtC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAEjC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IAEzD;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,qBAAqB,EAAE,MAAM,CAAC;gBAEjB,IAAI,EAAE,MAAM,GAAG,iBAAiB,EAAE,QAAQ,GAAE,MAAW,EAAE,YAAY,GAAE,MAAW,EAC9F,UAAU,GAAE,OAAe,EAAE,OAAO,GAAE,OAAc,EAAE,WAAW,GAAE,OAAe,EAClF,YAAY,GAAE,OAAe,EAAE,gBAAgB,GAAE,OAAe,EAChE,UAAU,GAAE,OAAe,EAAE,aAAa,GAAE,OAAe,EAC3D,eAAe,GAAE,OAAe,EAAE,qBAAqB,GAAE,MAAY;IAsCtE;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,OAAO,CAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,GAAE,MAAM,EAAS,EAC5F,YAAY,GAAE,MAA6D,GAAG,OAAO;IAuDtF;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAE,IAAI,EAAE,GAAG,GAAG,gBAAgB;IAyD1C;;OAEG;IACG,QAAQ,IAAK,OAAO,CAAC,sBAAsB,CAAC;CAkFlD"}
|
|
@@ -0,0 +1,260 @@
|
|
|
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.MySQLSchemaField = void 0;
|
|
40
|
+
var HotStaq_1 = require("../../HotStaq");
|
|
41
|
+
/**
|
|
42
|
+
* The database field.
|
|
43
|
+
*/
|
|
44
|
+
var MySQLSchemaField = /** @class */ (function () {
|
|
45
|
+
function MySQLSchemaField(name, dataType, defaultValue, primaryKey, notNull, uniqueIndex, binaryColumn, unsignedDataType, fillZeroes, autoIncrement, generatedColumn, strAroundDefaultValue) {
|
|
46
|
+
if (dataType === void 0) { dataType = ""; }
|
|
47
|
+
if (defaultValue === void 0) { defaultValue = ""; }
|
|
48
|
+
if (primaryKey === void 0) { primaryKey = false; }
|
|
49
|
+
if (notNull === void 0) { notNull = true; }
|
|
50
|
+
if (uniqueIndex === void 0) { uniqueIndex = false; }
|
|
51
|
+
if (binaryColumn === void 0) { binaryColumn = false; }
|
|
52
|
+
if (unsignedDataType === void 0) { unsignedDataType = false; }
|
|
53
|
+
if (fillZeroes === void 0) { fillZeroes = false; }
|
|
54
|
+
if (autoIncrement === void 0) { autoIncrement = false; }
|
|
55
|
+
if (generatedColumn === void 0) { generatedColumn = false; }
|
|
56
|
+
if (strAroundDefaultValue === void 0) { strAroundDefaultValue = "'"; }
|
|
57
|
+
if (typeof (name) === "string") {
|
|
58
|
+
this.name = name;
|
|
59
|
+
this.dataType = dataType;
|
|
60
|
+
this.primaryKey = primaryKey;
|
|
61
|
+
this.notNull = notNull;
|
|
62
|
+
this.uniqueIndex = uniqueIndex;
|
|
63
|
+
this.binaryColumn = binaryColumn;
|
|
64
|
+
this.unsignedDataType = unsignedDataType;
|
|
65
|
+
this.fillZeroes = fillZeroes;
|
|
66
|
+
this.autoIncrement = autoIncrement;
|
|
67
|
+
this.generatedColumn = generatedColumn;
|
|
68
|
+
this.defaultValue = defaultValue;
|
|
69
|
+
this.strAroundDefaultValue = strAroundDefaultValue;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
this.name = name.name;
|
|
73
|
+
this.dataType = name.dataType;
|
|
74
|
+
this.primaryKey = name.primaryKey != null ? name.primaryKey : primaryKey;
|
|
75
|
+
this.notNull = name.notNull != null ? name.notNull : notNull;
|
|
76
|
+
this.uniqueIndex = name.uniqueIndex != null ? name.uniqueIndex : uniqueIndex;
|
|
77
|
+
this.binaryColumn = name.binaryColumn != null ? name.binaryColumn : binaryColumn;
|
|
78
|
+
this.unsignedDataType = name.unsignedDataType != null ? name.unsignedDataType : unsignedDataType;
|
|
79
|
+
this.fillZeroes = name.fillZeroes != null ? name.fillZeroes : fillZeroes;
|
|
80
|
+
this.autoIncrement = name.autoIncrement != null ? name.autoIncrement : autoIncrement;
|
|
81
|
+
this.generatedColumn = name.generatedColumn != null ? name.generatedColumn : generatedColumn;
|
|
82
|
+
this.defaultValue = name.defaultValue === undefined ? defaultValue : name.defaultValue;
|
|
83
|
+
this.strAroundDefaultValue =
|
|
84
|
+
name.strAroundDefaultValue === undefined ? strAroundDefaultValue : name.strAroundDefaultValue;
|
|
85
|
+
}
|
|
86
|
+
if (this.dataType == null)
|
|
87
|
+
throw new Error("No data type given for field ".concat(this.name));
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Compare two different fields. This will iterate through all keys in each field. Any
|
|
91
|
+
* string values found will have stringFilter applied to it, removing everything that
|
|
92
|
+
* is in that stringFilter regex. Additionally for any empty strings found it will
|
|
93
|
+
* compare to any undefined/null on the other side, and treat them as the same.
|
|
94
|
+
*
|
|
95
|
+
* @param field1 The first field to compare.
|
|
96
|
+
* @param field2 The second field to compare.
|
|
97
|
+
* @param onlyKeys Only compare using the provided keys. If set to null, this will compare
|
|
98
|
+
* using all of the keys in these objects.
|
|
99
|
+
* @param stringFilter The regex to be used to help make any filters on any detected
|
|
100
|
+
* strings. The default regex provided will remove any whitespaces, single/doube quotes,
|
|
101
|
+
* back ticks, and parenthesis. If this is set to null, it will not be used.
|
|
102
|
+
*/
|
|
103
|
+
MySQLSchemaField.compare = function (field1, field2, onlyKeys, stringFilter) {
|
|
104
|
+
if (onlyKeys === void 0) { onlyKeys = null; }
|
|
105
|
+
if (stringFilter === void 0) { stringFilter = new RegExp("(\\s+|\\'+|\\\"+|\\`+|\\(+|\\)+)", "g"); }
|
|
106
|
+
if (onlyKeys == null) {
|
|
107
|
+
onlyKeys = ["name", "dataType", "primaryKey", "notNull",
|
|
108
|
+
"uniqueIndex", "binaryColumn", "unsignedDataType",
|
|
109
|
+
"fillZeroes", "autoIncrement", "generatedColumn",
|
|
110
|
+
"defaultValue"];
|
|
111
|
+
}
|
|
112
|
+
// Go through each key in both fields and compare the values.
|
|
113
|
+
for (var iIdx = 0; iIdx < onlyKeys.length; iIdx++) {
|
|
114
|
+
var key = onlyKeys[iIdx];
|
|
115
|
+
// @ts-ignore
|
|
116
|
+
var field1Value = field1[key];
|
|
117
|
+
// @ts-ignore
|
|
118
|
+
var field2Value = field2[key];
|
|
119
|
+
if (stringFilter != null) {
|
|
120
|
+
// If the key is a string, make them lowercase, remove any
|
|
121
|
+
// spaces and compare.
|
|
122
|
+
if (typeof (field1Value) === "string") {
|
|
123
|
+
if ((field1Value != null) && (field2Value != null)) {
|
|
124
|
+
field1Value = field1Value.toLowerCase();
|
|
125
|
+
field2Value = field2Value.toLowerCase();
|
|
126
|
+
field1Value = field1Value.replace(stringFilter, "");
|
|
127
|
+
field2Value = field2Value.replace(stringFilter, "");
|
|
128
|
+
}
|
|
129
|
+
// Make exceptions here for when field1Value or field2Value is null
|
|
130
|
+
if (field1Value == "") {
|
|
131
|
+
if (field2Value == null)
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
if (field2Value == "") {
|
|
135
|
+
if (field1Value == null)
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if (field1Value !== field2Value)
|
|
141
|
+
return (false);
|
|
142
|
+
}
|
|
143
|
+
return (true);
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* Parse a JSON object and get a MySQLSchemaField object from it.
|
|
147
|
+
* Warning! This is only partially implemented. This will not check
|
|
148
|
+
* the following fields:
|
|
149
|
+
* * Binary column
|
|
150
|
+
* * unique
|
|
151
|
+
* * zero-filled
|
|
152
|
+
* * generated column
|
|
153
|
+
*/
|
|
154
|
+
MySQLSchemaField.parse = function (json) {
|
|
155
|
+
var result = new MySQLSchemaField("");
|
|
156
|
+
if (json["name"] != null)
|
|
157
|
+
result.name = json["name"];
|
|
158
|
+
if (json["Name"] != null)
|
|
159
|
+
result.name = json["Name"];
|
|
160
|
+
if (json["field"] != null)
|
|
161
|
+
result.name = json["field"];
|
|
162
|
+
if (json["Field"] != null)
|
|
163
|
+
result.name = json["Field"];
|
|
164
|
+
if (json["Type"] != null) {
|
|
165
|
+
result.dataType = json["Type"];
|
|
166
|
+
var pos = result.dataType.indexOf("unsigned");
|
|
167
|
+
if (pos > -1) {
|
|
168
|
+
result.dataType = result.dataType.substr(0, (pos - 1));
|
|
169
|
+
result.unsignedDataType = true;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (json["Null"] != null)
|
|
173
|
+
result.notNull = !HotStaq_1.HotStaq.parseBoolean(json["Null"]);
|
|
174
|
+
if (json["Key"] != null) {
|
|
175
|
+
var keyType = json["Key"];
|
|
176
|
+
keyType = keyType.toLowerCase();
|
|
177
|
+
if (keyType === "pri")
|
|
178
|
+
result.primaryKey = true;
|
|
179
|
+
}
|
|
180
|
+
if (json["Extra"] != null) {
|
|
181
|
+
var extraValue = json["Extra"];
|
|
182
|
+
extraValue = extraValue.toLowerCase();
|
|
183
|
+
if (extraValue === "auto_increment")
|
|
184
|
+
result.autoIncrement = true;
|
|
185
|
+
}
|
|
186
|
+
if (json["Default"] != null)
|
|
187
|
+
result.defaultValue = json["Default"];
|
|
188
|
+
return (result);
|
|
189
|
+
};
|
|
190
|
+
/**
|
|
191
|
+
* Generate the db command.
|
|
192
|
+
*/
|
|
193
|
+
MySQLSchemaField.prototype.generate = function () {
|
|
194
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
195
|
+
var result, additionalStr, defaultValue, lowerDataType, strAroundDefaultValue, defaultValueStr;
|
|
196
|
+
return __generator(this, function (_a) {
|
|
197
|
+
result = {
|
|
198
|
+
"field": "",
|
|
199
|
+
"constraint": "",
|
|
200
|
+
"foreignKey": "",
|
|
201
|
+
"primaryKey": "",
|
|
202
|
+
"key": ""
|
|
203
|
+
};
|
|
204
|
+
additionalStr = "";
|
|
205
|
+
defaultValue = this.defaultValue;
|
|
206
|
+
lowerDataType = this.dataType.toLowerCase();
|
|
207
|
+
strAroundDefaultValue = this.strAroundDefaultValue;
|
|
208
|
+
if ((lowerDataType.indexOf("int") > 0) ||
|
|
209
|
+
(lowerDataType.indexOf("float") > 0) ||
|
|
210
|
+
(lowerDataType.indexOf("decimal") > 0)) {
|
|
211
|
+
strAroundDefaultValue = "";
|
|
212
|
+
}
|
|
213
|
+
if ((lowerDataType.indexOf("date") > 0) ||
|
|
214
|
+
(lowerDataType.indexOf("time") > 0) ||
|
|
215
|
+
(lowerDataType.indexOf("year") > 0)) {
|
|
216
|
+
strAroundDefaultValue = "";
|
|
217
|
+
}
|
|
218
|
+
if (this.unsignedDataType === true)
|
|
219
|
+
additionalStr += "unsigned ";
|
|
220
|
+
if (this.notNull === true) {
|
|
221
|
+
additionalStr += "NOT NULL ";
|
|
222
|
+
if (defaultValue === null)
|
|
223
|
+
throw new Error("Field ".concat(this.name, " cannot have a default value of null when notNull is set to true."));
|
|
224
|
+
if (defaultValue !== "")
|
|
225
|
+
defaultValue = "".concat(strAroundDefaultValue).concat(defaultValue).concat(strAroundDefaultValue);
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
additionalStr += "NULL ";
|
|
229
|
+
if (defaultValue === null)
|
|
230
|
+
defaultValue = "NULL";
|
|
231
|
+
else
|
|
232
|
+
defaultValue = "".concat(strAroundDefaultValue).concat(defaultValue).concat(strAroundDefaultValue);
|
|
233
|
+
}
|
|
234
|
+
if (this.autoIncrement === true)
|
|
235
|
+
additionalStr += "AUTO_INCREMENT ";
|
|
236
|
+
if (defaultValue === "") {
|
|
237
|
+
if ((lowerDataType.indexOf("int") > 0) ||
|
|
238
|
+
(lowerDataType.indexOf("float") > 0) ||
|
|
239
|
+
(lowerDataType.indexOf("decimal") > 0)) {
|
|
240
|
+
defaultValue = "0";
|
|
241
|
+
}
|
|
242
|
+
else
|
|
243
|
+
defaultValue = "".concat(strAroundDefaultValue).concat(strAroundDefaultValue);
|
|
244
|
+
}
|
|
245
|
+
defaultValueStr = "";
|
|
246
|
+
if (this.autoIncrement === false)
|
|
247
|
+
defaultValueStr = " DEFAULT ".concat(defaultValue);
|
|
248
|
+
result.field = "`".concat(this.name, "` ").concat(this.dataType, " ").concat(additionalStr).concat(defaultValueStr);
|
|
249
|
+
if (this.primaryKey === true)
|
|
250
|
+
result.primaryKey = "".concat(this.name);
|
|
251
|
+
if (this.uniqueIndex === true)
|
|
252
|
+
result.key = "UNIQUE KEY `".concat(this.name, "_UNIQUE` (`").concat(this.name, "`)");
|
|
253
|
+
return [2 /*return*/, (result)];
|
|
254
|
+
});
|
|
255
|
+
});
|
|
256
|
+
};
|
|
257
|
+
return MySQLSchemaField;
|
|
258
|
+
}());
|
|
259
|
+
exports.MySQLSchemaField = MySQLSchemaField;
|
|
260
|
+
//# sourceMappingURL=MySQLSchemaField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MySQLSchemaField.js","sourceRoot":"","sources":["../../../../src/schemas/mysql/MySQLSchemaField.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { MySQLSchemaField } from "./MySQLSchemaField";
|
|
2
|
+
import { HotDBGenerationType } from "../HotDBSchema";
|
|
3
|
+
import { HotDBMySQL } from "../HotDBMySQL";
|
|
4
|
+
/**
|
|
5
|
+
* The database table.
|
|
6
|
+
*/
|
|
7
|
+
export declare class MySQLSchemaTable {
|
|
8
|
+
/**
|
|
9
|
+
* The name of the table.
|
|
10
|
+
*/
|
|
11
|
+
name: string;
|
|
12
|
+
/**
|
|
13
|
+
* The table's description.
|
|
14
|
+
*/
|
|
15
|
+
description: string;
|
|
16
|
+
/**
|
|
17
|
+
* The fields in the table.
|
|
18
|
+
*/
|
|
19
|
+
fields: MySQLSchemaField[];
|
|
20
|
+
/**
|
|
21
|
+
* The table's engine to use.
|
|
22
|
+
*/
|
|
23
|
+
engine: string;
|
|
24
|
+
/**
|
|
25
|
+
* The table's charset to use.
|
|
26
|
+
*/
|
|
27
|
+
charset: string;
|
|
28
|
+
constructor(name?: string, fields?: MySQLSchemaField[]);
|
|
29
|
+
/**
|
|
30
|
+
* Add a field.
|
|
31
|
+
*/
|
|
32
|
+
addField(field: MySQLSchemaField): void;
|
|
33
|
+
/**
|
|
34
|
+
* Add a field.
|
|
35
|
+
*/
|
|
36
|
+
addFields(fields: MySQLSchemaField[]): void;
|
|
37
|
+
/**
|
|
38
|
+
* Generate the db command. If type is set to modify, you must pass a db with an
|
|
39
|
+
* active connection. Since field parsing isn't completely implemented yet, not all
|
|
40
|
+
* fields will be modified correctly. Use modifiying with caution. This will
|
|
41
|
+
* skip checking for:
|
|
42
|
+
* * Binary columnexistingFields
|
|
43
|
+
* * unique
|
|
44
|
+
* * zero-filled
|
|
45
|
+
* * generated column
|
|
46
|
+
*/
|
|
47
|
+
generate(type?: HotDBGenerationType, db?: HotDBMySQL): Promise<string[]>;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=MySQLSchemaTable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MySQLSchemaTable.d.ts","sourceRoot":"","sources":["../../../../src/schemas/mysql/MySQLSchemaTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA0B,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;GAEG;AACH,qBAAa,gBAAgB;IAE5B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;gBAEH,IAAI,GAAE,MAAW,EAAE,MAAM,GAAE,gBAAgB,EAAO;IAS/D;;OAEG;IACH,QAAQ,CAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAKxC;;OAEG;IACH,SAAS,CAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAS5C;;;;;;;;;OASG;IACG,QAAQ,CAAE,IAAI,GAAE,mBAAgD,EAAE,EAAE,GAAE,UAAiB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CA2RjH"}
|