@klapeks/micro-db-utils 0.0.12 → 0.0.14

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 (51) hide show
  1. package/dist/connections/cloud/s3.js +1 -1
  2. package/dist/connections/index.d.ts +0 -1
  3. package/dist/connections/index.js +2 -2
  4. package/dist/connections/kafka/kafka.js +1 -1
  5. package/dist/connections/nosql/mongo.js +1 -1
  6. package/dist/connections/nosql/redis.js +1 -1
  7. package/dist/index.d.ts +3 -1
  8. package/dist/index.js +3 -1
  9. package/dist/micro.sql.d.ts +11 -0
  10. package/dist/micro.sql.js +87 -0
  11. package/dist/migrations/index.d.ts +1 -0
  12. package/dist/migrations/index.js +1 -0
  13. package/dist/migrations/mysql.migrations.d.ts +0 -2
  14. package/dist/migrations/mysql.migrations.js +6 -201
  15. package/dist/migrations/super.migrations.d.ts +13 -0
  16. package/dist/migrations/super.migrations.js +312 -0
  17. package/dist/selectors/raw-mysql.select.handler.d.ts +2 -2
  18. package/dist/sql/column.type.parser.d.ts +14 -0
  19. package/dist/sql/column.type.parser.js +92 -0
  20. package/dist/sql/commands/abstract.sql.command.d.ts +21 -0
  21. package/dist/sql/commands/abstract.sql.command.js +30 -0
  22. package/dist/sql/commands/alter.commands.d.ts +10 -0
  23. package/dist/sql/commands/alter.commands.js +39 -0
  24. package/dist/sql/commands/edit-data.commands.d.ts +7 -0
  25. package/dist/sql/commands/edit-data.commands.js +80 -0
  26. package/dist/sql/commands/index.d.ts +6 -0
  27. package/dist/sql/commands/index.js +22 -0
  28. package/dist/sql/commands/select.commands.d.ts +6 -0
  29. package/dist/sql/commands/select.commands.js +17 -0
  30. package/dist/sql/commands/tables.commands.d.ts +10 -0
  31. package/dist/sql/commands/tables.commands.js +75 -0
  32. package/dist/sql/commands/time.commands.d.ts +8 -0
  33. package/dist/sql/commands/time.commands.js +31 -0
  34. package/dist/sql/connections/abstract.connection.d.ts +22 -0
  35. package/dist/sql/connections/abstract.connection.js +127 -0
  36. package/dist/sql/connections/index.d.ts +11 -0
  37. package/dist/sql/connections/index.js +35 -0
  38. package/dist/sql/connections/mssql.connection.d.ts +15 -0
  39. package/dist/sql/connections/mssql.connection.js +171 -0
  40. package/dist/{connections → sql/connections}/mysql.connection.d.ts +5 -4
  41. package/dist/{connections → sql/connections}/mysql.connection.js +46 -27
  42. package/dist/sql/index.d.ts +4 -0
  43. package/dist/sql/index.js +20 -0
  44. package/dist/sql/raw.where.utils.d.ts +2 -0
  45. package/dist/sql/raw.where.utils.js +35 -0
  46. package/dist/utils/columns.types.d.ts +12 -97
  47. package/dist/utils/where.utils.d.ts +1 -0
  48. package/dist/utils/where.utils.js +6 -6
  49. package/package.json +4 -2
  50. /package/dist/{connections → utils}/quiet.require.d.ts +0 -0
  51. /package/dist/{connections → utils}/quiet.require.js +0 -0
@@ -1,4 +1,19 @@
1
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
+ })();
2
17
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
18
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
19
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -39,13 +54,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
39
54
  return (mod && mod.__esModule) ? mod : { "default": mod };
40
55
  };
41
56
  Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.RawMySQLConnection = void 0;
57
+ exports.MySQLConnection = void 0;
43
58
  var mysql2_1 = __importDefault(require("mysql2"));
44
59
  var utils_1 = require("@klapeks/utils");
60
+ var abstract_connection_1 = require("./abstract.connection");
45
61
  var logger = new utils_1.Logger('MySQL');
46
- var RawMySQLConnection = /** @class */ (function () {
47
- function RawMySQLConnection(options) {
48
- this.poolOptions = {
62
+ var MySQLConnection = /** @class */ (function (_super) {
63
+ __extends(MySQLConnection, _super);
64
+ function MySQLConnection(options) {
65
+ var _this = _super.call(this, options, 'toMySQL') || this;
66
+ _this.poolOptions = {
49
67
  user: options.username,
50
68
  password: options.password,
51
69
  host: options.host,
@@ -53,15 +71,28 @@ var RawMySQLConnection = /** @class */ (function () {
53
71
  database: options.database,
54
72
  charset: options.charset,
55
73
  };
74
+ return _this;
56
75
  }
57
- Object.defineProperty(RawMySQLConnection.prototype, "pool", {
76
+ MySQLConnection.prototype.initConnection = function () {
77
+ return __awaiter(this, void 0, void 0, function () {
78
+ return __generator(this, function (_a) {
79
+ switch (_a.label) {
80
+ case 0: return [4 /*yield*/, this.takePool()];
81
+ case 1:
82
+ _a.sent();
83
+ return [2 /*return*/];
84
+ }
85
+ });
86
+ });
87
+ };
88
+ Object.defineProperty(MySQLConnection.prototype, "pool", {
58
89
  get: function () {
59
90
  return this._pool;
60
91
  },
61
92
  enumerable: false,
62
93
  configurable: true
63
94
  });
64
- RawMySQLConnection.prototype.takePool = function () {
95
+ MySQLConnection.prototype.takePool = function () {
65
96
  return __awaiter(this, void 0, void 0, function () {
66
97
  var _this = this;
67
98
  return __generator(this, function (_a) {
@@ -82,7 +113,7 @@ var RawMySQLConnection = /** @class */ (function () {
82
113
  });
83
114
  });
84
115
  };
85
- RawMySQLConnection.prototype.destroyConnection = function () {
116
+ MySQLConnection.prototype.destroyConnection = function () {
86
117
  return __awaiter(this, void 0, void 0, function () {
87
118
  var _this = this;
88
119
  return __generator(this, function (_a) {
@@ -100,7 +131,7 @@ var RawMySQLConnection = /** @class */ (function () {
100
131
  });
101
132
  });
102
133
  };
103
- RawMySQLConnection.prototype.getConnection = function () {
134
+ MySQLConnection.prototype.getPoolConnection = function () {
104
135
  return __awaiter(this, void 0, void 0, function () {
105
136
  var _a;
106
137
  var _this = this;
@@ -126,16 +157,17 @@ var RawMySQLConnection = /** @class */ (function () {
126
157
  });
127
158
  });
128
159
  };
129
- RawMySQLConnection.prototype.runSQL = function (query, params) {
160
+ MySQLConnection.prototype.sendSQL = function (query, params) {
130
161
  return __awaiter(this, void 0, void 0, function () {
131
162
  var connection;
163
+ var _this = this;
132
164
  return __generator(this, function (_a) {
133
165
  switch (_a.label) {
134
- case 0: return [4 /*yield*/, this.getConnection()];
166
+ case 0: return [4 /*yield*/, this.getPoolConnection()];
135
167
  case 1:
136
168
  connection = _a.sent();
137
169
  return [2 /*return*/, new Promise(function (resolve, reject) {
138
- // logger.debug("SQL query: ", query, '| params:', params||[])
170
+ _this.debugQuery(query, params);
139
171
  connection.query(query, params || [], function (err, result) {
140
172
  connection.release();
141
173
  if (err)
@@ -147,19 +179,6 @@ var RawMySQLConnection = /** @class */ (function () {
147
179
  });
148
180
  });
149
181
  };
150
- RawMySQLConnection.prototype.runSQL_One = function (query, params) {
151
- return __awaiter(this, void 0, void 0, function () {
152
- var res;
153
- return __generator(this, function (_a) {
154
- switch (_a.label) {
155
- case 0: return [4 /*yield*/, this.runSQL(query, params)];
156
- case 1:
157
- res = _a.sent();
158
- return [2 /*return*/, res.length ? (res[0] || res) : null];
159
- }
160
- });
161
- });
162
- };
163
- return RawMySQLConnection;
164
- }());
165
- exports.RawMySQLConnection = RawMySQLConnection;
182
+ return MySQLConnection;
183
+ }(abstract_connection_1.AbstractSQLConnection));
184
+ exports.MySQLConnection = MySQLConnection;
@@ -0,0 +1,4 @@
1
+ export * from './commands';
2
+ export * from './connections';
3
+ export * from './raw.where.utils';
4
+ export * from './column.type.parser';
@@ -0,0 +1,20 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./commands"), exports);
18
+ __exportStar(require("./connections"), exports);
19
+ __exportStar(require("./raw.where.utils"), exports);
20
+ __exportStar(require("./column.type.parser"), exports);
@@ -0,0 +1,2 @@
1
+ import { DatabaseOptions } from "@klapeks/utils";
2
+ export declare function converWhereQuery(dbType: DatabaseOptions['type'], key: string, value: any, keyAlias?: string): string;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.converWhereQuery = void 0;
4
+ var typeorm_1 = require("typeorm");
5
+ function sqlQuoteKey(dbType, str) {
6
+ if (dbType === 'mysql')
7
+ return "`".concat(str, "`");
8
+ if (dbType === 'mssql')
9
+ return "[".concat(str, "]");
10
+ return str;
11
+ }
12
+ function converWhereQuery(dbType, key, value, keyAlias) {
13
+ var _a;
14
+ if (value instanceof typeorm_1.FindOperator) {
15
+ if (value.type === 'isNull') {
16
+ return sqlQuoteKey(dbType, key) + ' IS NULL';
17
+ }
18
+ if (value.type === 'not') {
19
+ if (((_a = value.child) === null || _a === void 0 ? void 0 : _a.type) === 'isNull') {
20
+ return sqlQuoteKey(dbType, key) + ' IS NOT NULL';
21
+ }
22
+ }
23
+ }
24
+ if (value === null) {
25
+ return sqlQuoteKey(dbType, key) + ' IS NULL';
26
+ }
27
+ if (keyAlias === '?' || dbType === 'mysql') {
28
+ return sqlQuoteKey(dbType, key) + " = ?";
29
+ }
30
+ if (dbType === 'mssql') {
31
+ return "[".concat(key, "] = @").concat(keyAlias || key);
32
+ }
33
+ return sqlQuoteKey(dbType, key) + " = :".concat(keyAlias || key);
34
+ }
35
+ exports.converWhereQuery = converWhereQuery;
@@ -1,5 +1,6 @@
1
1
  import mongoose from "mongoose";
2
- import { EntitySchemaColumnOptions, EntitySchemaOptions } from "typeorm";
2
+ import { EntitySchemaOptions } from "typeorm";
3
+ import { MicroColumnTypeObject } from "../sql/column.type.parser";
3
4
  export type RequiredColumns<T> = Required<EntitySchemaOptions<T>['columns']>;
4
5
  export type RequiredMongoColumns<T> = Required<mongoose.Schema<T>>;
5
6
  export declare function createRelation(target: string, type: "one-to-many" | "one-to-one", inverseSide: string, cascade?: boolean): {
@@ -9,100 +10,14 @@ export declare function createRelation(target: string, type: "one-to-many" | "on
9
10
  inverseSide: string;
10
11
  };
11
12
  export declare const MULTISQL_COLUMNS_TYPES: {
12
- dbtype: "mysql" | "sqlite" | "postgres" | "mssql";
13
- enum: "enum" | "simple-enum";
14
- datetime: "timestamp" | "datetime" | "datetime2";
15
- float32: "double" | "float";
16
- float64: "double" | "float";
17
- json: "json" | "simple-json";
18
- };
19
- export declare const FloatingColumn: EntitySchemaColumnOptions;
20
- export declare const NullableFloatingColumn: {
21
- default: null;
22
- nullable: boolean;
23
- primary?: boolean | undefined;
24
- objectId?: boolean | undefined;
25
- createDate?: boolean | undefined;
26
- updateDate?: boolean | undefined;
27
- deleteDate?: boolean | undefined;
28
- version?: boolean | undefined;
29
- treeChildrenCount?: boolean | undefined;
30
- treeLevel?: boolean | undefined;
31
- virtualProperty?: boolean | undefined;
32
- type: import("typeorm").ColumnType;
33
- name?: string | undefined;
34
- length?: string | number | undefined;
35
- width?: number | undefined;
36
- readonly?: boolean | undefined;
37
- update?: boolean | undefined;
38
- select?: boolean | undefined;
39
- insert?: boolean | undefined;
40
- generated?: true | "uuid" | "increment" | "rowid" | undefined;
41
- unique?: boolean | undefined;
42
- columnDefinition?: string | undefined;
43
- comment?: string | undefined;
44
- onUpdate?: string | undefined;
45
- precision?: number | undefined;
46
- scale?: number | undefined;
47
- zerofill?: boolean | undefined;
48
- unsigned?: boolean | undefined;
49
- charset?: string | undefined;
50
- collation?: string | undefined;
51
- enum?: Object | any[] | undefined;
52
- enumName?: string | undefined;
53
- asExpression?: string | undefined;
54
- generatedType?: "VIRTUAL" | "STORED" | undefined;
55
- hstoreType?: "string" | "object" | undefined;
56
- array?: boolean | undefined;
57
- transformer?: import("typeorm").ValueTransformer | import("typeorm").ValueTransformer[] | undefined;
58
- primaryKeyConstraintName?: string | undefined;
59
- foreignKey?: import("typeorm/entity-schema/EntitySchemaColumnForeignKeyOptions").EntitySchemaColumnForeignKeyOptions | undefined;
60
- query?: ((alias: string) => string) | undefined;
61
- spatialFeatureType?: "Point" | "LineString" | "Polygon" | "MultiPoint" | "MultiLineString" | "MultiPolygon" | "GeometryCollection" | undefined;
62
- srid?: number | undefined;
63
- };
64
- export declare const Float64Column: EntitySchemaColumnOptions;
65
- export declare const NullableFloat64Column: {
66
- default: null;
67
- nullable: boolean;
68
- primary?: boolean | undefined;
69
- objectId?: boolean | undefined;
70
- createDate?: boolean | undefined;
71
- updateDate?: boolean | undefined;
72
- deleteDate?: boolean | undefined;
73
- version?: boolean | undefined;
74
- treeChildrenCount?: boolean | undefined;
75
- treeLevel?: boolean | undefined;
76
- virtualProperty?: boolean | undefined;
77
- type: import("typeorm").ColumnType;
78
- name?: string | undefined;
79
- length?: string | number | undefined;
80
- width?: number | undefined;
81
- readonly?: boolean | undefined;
82
- update?: boolean | undefined;
83
- select?: boolean | undefined;
84
- insert?: boolean | undefined;
85
- generated?: true | "uuid" | "increment" | "rowid" | undefined;
86
- unique?: boolean | undefined;
87
- columnDefinition?: string | undefined;
88
- comment?: string | undefined;
89
- onUpdate?: string | undefined;
90
- precision?: number | undefined;
91
- scale?: number | undefined;
92
- zerofill?: boolean | undefined;
93
- unsigned?: boolean | undefined;
94
- charset?: string | undefined;
95
- collation?: string | undefined;
96
- enum?: Object | any[] | undefined;
97
- enumName?: string | undefined;
98
- asExpression?: string | undefined;
99
- generatedType?: "VIRTUAL" | "STORED" | undefined;
100
- hstoreType?: "string" | "object" | undefined;
101
- array?: boolean | undefined;
102
- transformer?: import("typeorm").ValueTransformer | import("typeorm").ValueTransformer[] | undefined;
103
- primaryKeyConstraintName?: string | undefined;
104
- foreignKey?: import("typeorm/entity-schema/EntitySchemaColumnForeignKeyOptions").EntitySchemaColumnForeignKeyOptions | undefined;
105
- query?: ((alias: string) => string) | undefined;
106
- spatialFeatureType?: "Point" | "LineString" | "Polygon" | "MultiPoint" | "MultiLineString" | "MultiPolygon" | "GeometryCollection" | undefined;
107
- srid?: number | undefined;
13
+ dbtype: "sqlite" | "mysql" | "postgres" | "mssql";
14
+ enum: "simple-enum" | "enum";
15
+ datetime: "datetime" | "datetime2" | "timestamp";
16
+ float32: "float" | "double";
17
+ float64: "float" | "double";
18
+ json: "simple-json" | "json";
108
19
  };
20
+ export declare const FloatingColumn: MicroColumnTypeObject;
21
+ export declare const NullableFloatingColumn: MicroColumnTypeObject;
22
+ export declare const Float64Column: MicroColumnTypeObject;
23
+ export declare const NullableFloat64Column: MicroColumnTypeObject;
@@ -1,3 +1,4 @@
1
1
  import { ObjectLiteral, SelectQueryBuilder } from "typeorm";
2
2
  export declare function addTimedWhere<T extends ObjectLiteral>(builder: SelectQueryBuilder<T>, dateAlias: string, from: Date, to?: Date): SelectQueryBuilder<T>;
3
+ /** @deprecated use MicroSQL.timeExpressions(dbType).dateFromToWhere(...) */
3
4
  export declare function rawTimedWhere(dateAlias: string, from: Date, to?: Date): string;
@@ -2,21 +2,21 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.rawTimedWhere = exports.addTimedWhere = void 0;
4
4
  var iso_date_time_1 = require("./iso.date.time");
5
+ var micro_sql_1 = require("../micro.sql");
5
6
  function addTimedWhere(builder, dateAlias, from, to) {
6
- builder.where("date(" + dateAlias + ") >= date(:from)", {
7
+ var expr = micro_sql_1.MicroSQL.timeExpressions(builder.connection.options.type);
8
+ builder.andWhere(expr.date(dateAlias) + ' >= ' + expr.date(':from'), {
7
9
  from: (0, iso_date_time_1.toISODate)(from, "yyyy-mm-dd")
8
10
  });
9
11
  if (to)
10
- builder.andWhere("date(" + dateAlias + ") <= date(:to)", {
12
+ builder.andWhere(expr.date(dateAlias) + ' <= ' + expr.date(':to'), {
11
13
  to: (0, iso_date_time_1.toISODate)(to, "yyyy-mm-dd")
12
14
  });
13
15
  return builder;
14
16
  }
15
17
  exports.addTimedWhere = addTimedWhere;
18
+ /** @deprecated use MicroSQL.timeExpressions(dbType).dateFromToWhere(...) */
16
19
  function rawTimedWhere(dateAlias, from, to) {
17
- var sql = "date(" + dateAlias + ") >= date('" + (0, iso_date_time_1.toISODate)(from, "yyyy-mm-dd") + "') ";
18
- if (to)
19
- sql += "AND date(" + dateAlias + ") <= date('" + (0, iso_date_time_1.toISODate)(to, "yyyy-mm-dd") + "')";
20
- return sql;
20
+ return micro_sql_1.MicroSQL.timeExpressions('mysql').dateFromToWhere(dateAlias, from, to);
21
21
  }
22
22
  exports.rawTimedWhere = rawTimedWhere;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@klapeks/micro-db-utils",
3
3
  "description": "klapeks utils for db and other storages",
4
- "version": "0.0.12",
4
+ "version": "0.0.14",
5
5
  "type": "commonjs",
6
6
  "author": "Klapeks",
7
7
  "license": "ISC",
@@ -22,12 +22,14 @@
22
22
  "@aws-sdk/client-s3": "^3.842.0",
23
23
  "@aws-sdk/s3-request-presigner": "^3.844.0",
24
24
  "@klapeks/api-creation-tools": "^0.0.7",
25
- "@klapeks/utils": "^0.1.4",
25
+ "@klapeks/utils": "^0.1.6",
26
+ "@types/mssql": "^12.3.0",
26
27
  "@types/node": "^18.11.18",
27
28
  "axios": "^1.7.7",
28
29
  "ioredis": "^5.6.1",
29
30
  "kafkajs": "^2.2.4",
30
31
  "mongoose": "^8.16.1",
32
+ "mssql": "^11.0.1",
31
33
  "mysql2": "^3.11.3",
32
34
  "redis": "^4.7.0",
33
35
  "sqlite3": "^5.1.7",
File without changes
File without changes