@klapeks/micro-db-utils 0.0.21 → 0.0.23

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.
@@ -167,7 +167,6 @@ var SuperMigrations = /** @class */ (function () {
167
167
  migration = todoMigrations_1[_i];
168
168
  if (migration.table != table)
169
169
  return [3 /*break*/, 19];
170
- logger;
171
170
  if (lastRealMigration && lastRealMigration.getTime() >= migration.date.getTime()) {
172
171
  return [3 /*break*/, 19];
173
172
  }
@@ -5,6 +5,7 @@ import { DatabaseOptions } from '@klapeks/utils';
5
5
  export type TypeormSelectEntityHandlerOptions<T extends ObjectLiteral, K extends string> = SelectEntityHandlerOptions<T, K> & {
6
6
  schema: EntitySchema<T>;
7
7
  dataSource: DataSource;
8
+ typeormHydrateValue?: boolean;
8
9
  beforeGetMany?: (builder: SelectQueryBuilder<T>, options: SelectOptions<T>) => Promise<void> | void;
9
10
  };
10
11
  export declare class SelectEntityHandler<T extends ObjectLiteral, K extends string> extends AbstractSelectHandler<T, K, TypeormSelectEntityHandlerOptions<T, K>> {
@@ -95,12 +95,13 @@ var SelectEntityHandler = /** @class */ (function (_super) {
95
95
  });
96
96
  };
97
97
  SelectEntityHandler.prototype.rawSelect = function (options) {
98
+ var _a, _b;
98
99
  return __awaiter(this, void 0, void 0, function () {
99
- var builder, addOrderBy, i, multipleWheres_1, result;
100
- var _a;
100
+ var builder, addOrderBy, i, multipleWheres_1, result, $columns, _i, result_1, row, _c, $columns_1, column;
101
+ var _d;
101
102
  var _this = this;
102
- return __generator(this, function (_b) {
103
- switch (_b.label) {
103
+ return __generator(this, function (_e) {
104
+ switch (_e.label) {
104
105
  case 0:
105
106
  builder = this.repo.createQueryBuilder(this.schema.options.name);
106
107
  builder.select(this.schema.options.name + '.*');
@@ -163,24 +164,36 @@ var SelectEntityHandler = /** @class */ (function (_super) {
163
164
  if (!this.options.beforeGetMany) return [3 /*break*/, 2];
164
165
  return [4 /*yield*/, this.options.beforeGetMany(builder, options)];
165
166
  case 1:
166
- _b.sent();
167
- _b.label = 2;
167
+ _e.sent();
168
+ _e.label = 2;
168
169
  case 2:
169
170
  builder.limit(options.limit);
170
171
  if (options.offset)
171
172
  builder.offset(options.offset);
172
173
  return [4 /*yield*/, builder.getRawMany()];
173
174
  case 3:
174
- result = _b.sent();
175
+ result = _e.sent();
176
+ if (this.options.typeormHydrateValue) {
177
+ $columns = (_b = (_a = builder.expressionMap.mainAlias) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.columns;
178
+ if ($columns)
179
+ for (_i = 0, result_1 = result; _i < result_1.length; _i++) {
180
+ row = result_1[_i];
181
+ for (_c = 0, $columns_1 = $columns; _c < $columns_1.length; _c++) {
182
+ column = $columns_1[_c];
183
+ row[column.databaseName] = this.dataSource
184
+ .driver.prepareHydratedValue(row[column.databaseName], column);
185
+ }
186
+ }
187
+ }
175
188
  if (!this.options.afterSelect) return [3 /*break*/, 5];
176
189
  return [4 /*yield*/, this.options.afterSelect(result, options)];
177
190
  case 4:
178
- result = _b.sent();
179
- _b.label = 5;
191
+ result = _e.sent();
192
+ _e.label = 5;
180
193
  case 5:
181
- _a = { objects: result };
194
+ _d = { objects: result };
182
195
  return [4 /*yield*/, builder.getCount()];
183
- case 6: return [2 /*return*/, (_a.total = _b.sent(), _a)];
196
+ case 6: return [2 /*return*/, (_d.total = _e.sent(), _d)];
184
197
  }
185
198
  });
186
199
  });
@@ -83,8 +83,10 @@ var SQLAlterCommand = /** @class */ (function () {
83
83
  return [4 /*yield*/, ctx.runAdditionalSQL("\n SELECT sql FROM sqlite_master WHERE type = \"table\" AND name = \"".concat(this.table, "\";\n "))];
84
84
  case 1:
85
85
  tableCreateOld = (_b = (_a = (_c.sent())) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.sql;
86
- if (!tableCreateOld)
87
- throw "Table ".concat(this.table, " not exists");
86
+ if (!tableCreateOld) {
87
+ utils_1.logger.warn("SQLite: Table for column type migration doesn't exist:", this.table);
88
+ return [2 /*return*/, "SELECT 1"];
89
+ }
88
90
  return [4 /*yield*/, ctx.runAdditionalSQL("\n SELECT sql FROM sqlite_master WHERE type = \"index\"\n AND tbl_name = \"".concat(this.table, "\" AND sql IS NOT NULL;\n "))];
89
91
  case 2:
90
92
  indexesToRecreate = (_c.sent()).map(function (s) { return s.sql || s; }).filter(Boolean).join("; ") + ';';
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.21",
4
+ "version": "0.0.23",
5
5
  "type": "commonjs",
6
6
  "author": "Klapeks",
7
7
  "license": "ISC",