@mrnafisia/type-query 1.0.0

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 (66) hide show
  1. package/README.md +2 -0
  2. package/dist/U.d.ts +3 -0
  3. package/dist/U.d.ts.map +1 -0
  4. package/dist/U.js +28 -0
  5. package/dist/U.js.map +1 -0
  6. package/dist/context.d.ts +6 -0
  7. package/dist/context.d.ts.map +1 -0
  8. package/dist/context.js +86 -0
  9. package/dist/context.js.map +1 -0
  10. package/dist/dictionary.d.ts +13 -0
  11. package/dist/dictionary.d.ts.map +1 -0
  12. package/dist/dictionary.js +178 -0
  13. package/dist/dictionary.js.map +1 -0
  14. package/dist/entity.d.ts +21165 -0
  15. package/dist/entity.d.ts.map +1 -0
  16. package/dist/entity.js +970 -0
  17. package/dist/entity.js.map +1 -0
  18. package/dist/error.d.ts +5 -0
  19. package/dist/error.d.ts.map +1 -0
  20. package/dist/error.js +7 -0
  21. package/dist/error.js.map +1 -0
  22. package/dist/index.d.ts +15 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +29 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/pool.d.ts +5 -0
  27. package/dist/pool.d.ts.map +1 -0
  28. package/dist/pool.js +95 -0
  29. package/dist/pool.js.map +1 -0
  30. package/dist/schema.d.ts +26 -0
  31. package/dist/schema.d.ts.map +1 -0
  32. package/dist/schema.js +396 -0
  33. package/dist/schema.js.map +1 -0
  34. package/dist/types/context.d.ts +56 -0
  35. package/dist/types/context.d.ts.map +1 -0
  36. package/dist/types/context.js +3 -0
  37. package/dist/types/context.js.map +1 -0
  38. package/dist/types/entity.d.ts +68 -0
  39. package/dist/types/entity.d.ts.map +1 -0
  40. package/dist/types/entity.js +3 -0
  41. package/dist/types/entity.js.map +1 -0
  42. package/dist/types/json.d.ts +9 -0
  43. package/dist/types/json.d.ts.map +1 -0
  44. package/dist/types/json.js +3 -0
  45. package/dist/types/json.js.map +1 -0
  46. package/dist/types/model.d.ts +12 -0
  47. package/dist/types/model.d.ts.map +1 -0
  48. package/dist/types/model.js +3 -0
  49. package/dist/types/model.js.map +1 -0
  50. package/dist/types/pool.d.ts +9 -0
  51. package/dist/types/pool.d.ts.map +1 -0
  52. package/dist/types/pool.js +3 -0
  53. package/dist/types/pool.js.map +1 -0
  54. package/dist/types/postgres.d.ts +10 -0
  55. package/dist/types/postgres.d.ts.map +1 -0
  56. package/dist/types/postgres.js +3 -0
  57. package/dist/types/postgres.js.map +1 -0
  58. package/dist/types/table.d.ts +238 -0
  59. package/dist/types/table.d.ts.map +1 -0
  60. package/dist/types/table.js +3 -0
  61. package/dist/types/table.js.map +1 -0
  62. package/dist/utils.d.ts +68 -0
  63. package/dist/utils.d.ts.map +1 -0
  64. package/dist/utils.js +227 -0
  65. package/dist/utils.js.map +1 -0
  66. package/package.json +37 -0
package/dist/schema.js ADDED
@@ -0,0 +1,396 @@
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
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
39
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
40
+ if (ar || !(i in from)) {
41
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
42
+ ar[i] = from[i];
43
+ }
44
+ }
45
+ return to.concat(ar || Array.prototype.slice.call(from));
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.getSequenceName = exports.dropTableSQL = exports.createTableSQL = exports.dropSequencesSQL = exports.createSequencesSQL = exports.getAllTablesAndDependencies = exports.resolveTablesDependency = exports.dropTables = exports.createTables = void 0;
49
+ var never_catch_1 = require("never-catch");
50
+ var dictionary_1 = require("./dictionary");
51
+ var createTables = function (client, tables, resolve) {
52
+ if (resolve === void 0) { resolve = true; }
53
+ return __awaiter(void 0, void 0, void 0, function () {
54
+ var dependencyResult, _i, tables_1, table, sequencesSQL, _loop_1, _a, sequencesSQL_1, sequenceSQL, state_1, _loop_2, _b, tables_2, table, state_2;
55
+ return __generator(this, function (_c) {
56
+ switch (_c.label) {
57
+ case 0:
58
+ // resolve
59
+ if (resolve) {
60
+ dependencyResult = resolveTablesDependency(tables);
61
+ if (!dependencyResult.ok) {
62
+ return [2 /*return*/, (0, never_catch_1.err)("<create-tables> -> resolve dependency -> ".concat(dependencyResult.error))];
63
+ }
64
+ tables = dependencyResult.value;
65
+ }
66
+ _i = 0, tables_1 = tables;
67
+ _c.label = 1;
68
+ case 1:
69
+ if (!(_i < tables_1.length)) return [3 /*break*/, 6];
70
+ table = tables_1[_i];
71
+ sequencesSQL = createSequencesSQL(table);
72
+ _loop_1 = function (sequenceSQL) {
73
+ var result;
74
+ return __generator(this, function (_d) {
75
+ switch (_d.label) {
76
+ case 0: return [4 /*yield*/, client.query(sequenceSQL)
77
+ .then(function () { return true; }).catch(function (e) { return ({ db: e, query: sequenceSQL }); })];
78
+ case 1:
79
+ result = _d.sent();
80
+ if (result !== true) {
81
+ return [2 /*return*/, { value: (0, never_catch_1.err)(result) }];
82
+ }
83
+ return [2 /*return*/];
84
+ }
85
+ });
86
+ };
87
+ _a = 0, sequencesSQL_1 = sequencesSQL;
88
+ _c.label = 2;
89
+ case 2:
90
+ if (!(_a < sequencesSQL_1.length)) return [3 /*break*/, 5];
91
+ sequenceSQL = sequencesSQL_1[_a];
92
+ return [5 /*yield**/, _loop_1(sequenceSQL)];
93
+ case 3:
94
+ state_1 = _c.sent();
95
+ if (typeof state_1 === "object")
96
+ return [2 /*return*/, state_1.value];
97
+ _c.label = 4;
98
+ case 4:
99
+ _a++;
100
+ return [3 /*break*/, 2];
101
+ case 5:
102
+ _i++;
103
+ return [3 /*break*/, 1];
104
+ case 6:
105
+ _loop_2 = function (table) {
106
+ var tableSQL, result;
107
+ return __generator(this, function (_e) {
108
+ switch (_e.label) {
109
+ case 0:
110
+ tableSQL = createTableSQL(table);
111
+ return [4 /*yield*/, client.query(tableSQL)
112
+ .then(function () { return true; }).catch(function (e) { return ({ db: e, query: tableSQL }); })];
113
+ case 1:
114
+ result = _e.sent();
115
+ if (result !== true) {
116
+ return [2 /*return*/, { value: (0, never_catch_1.err)(result) }];
117
+ }
118
+ return [2 /*return*/];
119
+ }
120
+ });
121
+ };
122
+ _b = 0, tables_2 = tables;
123
+ _c.label = 7;
124
+ case 7:
125
+ if (!(_b < tables_2.length)) return [3 /*break*/, 10];
126
+ table = tables_2[_b];
127
+ return [5 /*yield**/, _loop_2(table)];
128
+ case 8:
129
+ state_2 = _c.sent();
130
+ if (typeof state_2 === "object")
131
+ return [2 /*return*/, state_2.value];
132
+ _c.label = 9;
133
+ case 9:
134
+ _b++;
135
+ return [3 /*break*/, 7];
136
+ case 10: return [2 /*return*/, Promise.resolve((0, never_catch_1.ok)(undefined))];
137
+ }
138
+ });
139
+ });
140
+ };
141
+ exports.createTables = createTables;
142
+ var dropTables = function (client, tables, resolve) {
143
+ if (resolve === void 0) { resolve = true; }
144
+ return __awaiter(void 0, void 0, void 0, function () {
145
+ var dependencyResult, _loop_3, _i, tables_3, table, state_3, _a, tables_4, table, sequencesSQL, _loop_4, _b, sequencesSQL_2, sequenceSQL, state_4;
146
+ return __generator(this, function (_c) {
147
+ switch (_c.label) {
148
+ case 0:
149
+ // resolve
150
+ if (resolve) {
151
+ dependencyResult = resolveTablesDependency(tables);
152
+ if (!dependencyResult.ok) {
153
+ return [2 /*return*/, (0, never_catch_1.err)("<drop-tables> -> resolve dependency -> ".concat(dependencyResult.error))];
154
+ }
155
+ tables = dependencyResult.value.reverse();
156
+ }
157
+ _loop_3 = function (table) {
158
+ var tableSQL, result;
159
+ return __generator(this, function (_d) {
160
+ switch (_d.label) {
161
+ case 0:
162
+ tableSQL = dropTableSQL(table);
163
+ return [4 /*yield*/, client.query(tableSQL)
164
+ .then(function () { return true; }).catch(function (e) { return ({ db: e, query: tableSQL }); })];
165
+ case 1:
166
+ result = _d.sent();
167
+ if (result !== true) {
168
+ return [2 /*return*/, { value: (0, never_catch_1.err)(result) }];
169
+ }
170
+ return [2 /*return*/];
171
+ }
172
+ });
173
+ };
174
+ _i = 0, tables_3 = tables;
175
+ _c.label = 1;
176
+ case 1:
177
+ if (!(_i < tables_3.length)) return [3 /*break*/, 4];
178
+ table = tables_3[_i];
179
+ return [5 /*yield**/, _loop_3(table)];
180
+ case 2:
181
+ state_3 = _c.sent();
182
+ if (typeof state_3 === "object")
183
+ return [2 /*return*/, state_3.value];
184
+ _c.label = 3;
185
+ case 3:
186
+ _i++;
187
+ return [3 /*break*/, 1];
188
+ case 4:
189
+ _a = 0, tables_4 = tables;
190
+ _c.label = 5;
191
+ case 5:
192
+ if (!(_a < tables_4.length)) return [3 /*break*/, 10];
193
+ table = tables_4[_a];
194
+ sequencesSQL = dropSequencesSQL(table);
195
+ _loop_4 = function (sequenceSQL) {
196
+ var result;
197
+ return __generator(this, function (_e) {
198
+ switch (_e.label) {
199
+ case 0: return [4 /*yield*/, client.query(sequenceSQL)
200
+ .then(function () { return true; }).catch(function (e) { return ({ db: e, query: sequenceSQL }); })];
201
+ case 1:
202
+ result = _e.sent();
203
+ if (result !== true) {
204
+ return [2 /*return*/, { value: (0, never_catch_1.err)(result) }];
205
+ }
206
+ return [2 /*return*/];
207
+ }
208
+ });
209
+ };
210
+ _b = 0, sequencesSQL_2 = sequencesSQL;
211
+ _c.label = 6;
212
+ case 6:
213
+ if (!(_b < sequencesSQL_2.length)) return [3 /*break*/, 9];
214
+ sequenceSQL = sequencesSQL_2[_b];
215
+ return [5 /*yield**/, _loop_4(sequenceSQL)];
216
+ case 7:
217
+ state_4 = _c.sent();
218
+ if (typeof state_4 === "object")
219
+ return [2 /*return*/, state_4.value];
220
+ _c.label = 8;
221
+ case 8:
222
+ _b++;
223
+ return [3 /*break*/, 6];
224
+ case 9:
225
+ _a++;
226
+ return [3 /*break*/, 5];
227
+ case 10: return [2 /*return*/, Promise.resolve((0, never_catch_1.ok)(undefined))];
228
+ }
229
+ });
230
+ });
231
+ };
232
+ exports.dropTables = dropTables;
233
+ var resolveTablesDependency = function (tables) {
234
+ var allTablesAndDependenciesResult = getAllTablesAndDependencies(tables);
235
+ if (!allTablesAndDependenciesResult.ok) {
236
+ return allTablesAndDependenciesResult;
237
+ }
238
+ var _a = allTablesAndDependenciesResult.value, allTables = _a[0], dependencies = _a[1];
239
+ var result = [];
240
+ var _loop_5 = function () {
241
+ // find all independent tables
242
+ var independentTables = [];
243
+ var _loop_6 = function (table) {
244
+ if (dependencies.find(function (v) { return v.parent === table; }) === undefined) {
245
+ independentTables.push(table);
246
+ }
247
+ };
248
+ for (var _i = 0, allTables_1 = allTables; _i < allTables_1.length; _i++) {
249
+ var table = allTables_1[_i];
250
+ _loop_6(table);
251
+ }
252
+ // remove founded tables from all tables and add them to the result
253
+ for (var _b = 0, independentTables_1 = independentTables; _b < independentTables_1.length; _b++) {
254
+ var independentTable = independentTables_1[_b];
255
+ allTables.splice(allTables.indexOf(independentTable), 1);
256
+ }
257
+ result.push.apply(result, independentTables);
258
+ // remove dependencies depend on founded tables
259
+ dependencies = dependencies.filter(function (v) { return !independentTables.includes(v.child); });
260
+ };
261
+ while (allTables.length !== 0) {
262
+ _loop_5();
263
+ }
264
+ return (0, never_catch_1.ok)(result);
265
+ };
266
+ exports.resolveTablesDependency = resolveTablesDependency;
267
+ var getAllTablesAndDependencies = function (tables) {
268
+ var allTables = __spreadArray([], tables, true);
269
+ var dependencies = [];
270
+ var _loop_7 = function (table) {
271
+ var _loop_8 = function (_, column) {
272
+ // skip independent tables
273
+ if (column.reference === undefined) {
274
+ return "continue";
275
+ }
276
+ // skip repeated tables
277
+ if (!allTables.includes(column.reference.table)) {
278
+ allTables.push(column.reference.table);
279
+ }
280
+ // add new dependency if it is not repeated
281
+ if (dependencies.find(function (v) { var _a; return v.parent === table && v.child === ((_a = column.reference) === null || _a === void 0 ? void 0 : _a.table); }) === undefined) {
282
+ dependencies.push({ parent: table, child: column.reference.table });
283
+ }
284
+ // check bidirectional dependency
285
+ for (var _d = 0, dependencies_1 = dependencies; _d < dependencies_1.length; _d++) {
286
+ var dependency = dependencies_1[_d];
287
+ if (dependency.parent === column.reference.table && dependency.child === table) {
288
+ return { value: (0, never_catch_1.err)("bidirectional dependency detected \"".concat(table.schema, "\".\"").concat(table.title, "\" and \"").concat(column.reference.table.schema, "\".\"").concat(column.reference.table.title, "\"")) };
289
+ }
290
+ }
291
+ };
292
+ for (var _a = 0, _b = Object.entries(table.columns); _a < _b.length; _a++) {
293
+ var _c = _b[_a], _ = _c[0], column = _c[1];
294
+ var state_6 = _loop_8(_, column);
295
+ if (typeof state_6 === "object")
296
+ return state_6;
297
+ }
298
+ };
299
+ for (var _i = 0, allTables_2 = allTables; _i < allTables_2.length; _i++) {
300
+ var table = allTables_2[_i];
301
+ var state_5 = _loop_7(table);
302
+ if (typeof state_5 === "object")
303
+ return state_5.value;
304
+ }
305
+ return (0, never_catch_1.ok)([allTables, dependencies]);
306
+ };
307
+ exports.getAllTablesAndDependencies = getAllTablesAndDependencies;
308
+ var createSequencesSQL = function (table) {
309
+ var queries = [];
310
+ for (var _i = 0, _a = Object.entries(table.columns); _i < _a.length; _i++) {
311
+ var _b = _a[_i], key = _b[0], column = _b[1];
312
+ // skip tables without sequences
313
+ if (column.default !== 'auto-increment') {
314
+ continue;
315
+ }
316
+ // build query
317
+ var tokens = ["CREATE SEQUENCE ".concat(getSequenceName(table.title, key, column))];
318
+ if (column.type === 'smallint') {
319
+ tokens.push('as smallint');
320
+ }
321
+ else if (column.type === 'integer') {
322
+ tokens.push('as integer');
323
+ }
324
+ tokens.push(';');
325
+ // add query to the result
326
+ queries.push(tokens.join(' '));
327
+ }
328
+ return queries;
329
+ };
330
+ exports.createSequencesSQL = createSequencesSQL;
331
+ var dropSequencesSQL = function (table) {
332
+ var queries = [];
333
+ for (var _i = 0, _a = Object.entries(table.columns); _i < _a.length; _i++) {
334
+ var _b = _a[_i], key = _b[0], column = _b[1];
335
+ // skip tables without sequences
336
+ if (column.default !== 'auto-increment') {
337
+ continue;
338
+ }
339
+ // add query to the result
340
+ queries.push("DROP SEQUENCE ".concat(getSequenceName(table.title, key, column), " ;"));
341
+ }
342
+ return queries;
343
+ };
344
+ exports.dropSequencesSQL = dropSequencesSQL;
345
+ var createTableSQL = function (table) {
346
+ var tokens = ["CREATE TABLE \"".concat(table.schema, "\".\"").concat(table.title, "\"(")];
347
+ // columns clause
348
+ var columnsAsEntries = Object.entries(table.columns);
349
+ var columns = columnsAsEntries.map(function (_a) {
350
+ var _b, _c, _d, _e;
351
+ var key = _a[0], column = _a[1];
352
+ var tokens = ["\"".concat((_b = column.title) !== null && _b !== void 0 ? _b : key, "\" ").concat((0, dictionary_1.toPostgresType)(column.type))];
353
+ // add default clause
354
+ if (column.default === 'auto-increment') {
355
+ tokens.push("DEFAULT nextVal( '".concat(getSequenceName(table.title, key, column), "'::regClass )"));
356
+ }
357
+ else if (column.default === true) {
358
+ tokens.push("DEFAULT ".concat(column.value));
359
+ }
360
+ // add not null-null clause
361
+ tokens.push(column.nullable ? 'NULL' : 'NOT NULL');
362
+ // add referencing clause
363
+ if (column.reference !== undefined) {
364
+ tokens.push("REFERENCES \"".concat(column.reference.table.schema, "\".\"").concat(column.reference.table.title, "\"") +
365
+ "( \"".concat((_c = column.reference.table.columns[column.reference.column].title) !== null && _c !== void 0 ? _c : column.reference.column, "\" ) ") +
366
+ "ON UPDATE ".concat((0, dictionary_1.toReferenceAction)((_d = column.reference.onUpdate) !== null && _d !== void 0 ? _d : 'no-action'), " ON DELETE ").concat((0, dictionary_1.toReferenceAction)((_e = column.reference.onDelete) !== null && _e !== void 0 ? _e : 'no-action')));
367
+ }
368
+ return tokens.join(' ');
369
+ });
370
+ // constraints clause
371
+ var constraints = [];
372
+ var primaryKeys = columnsAsEntries.filter(function (_a) {
373
+ var _ = _a[0], column = _a[1];
374
+ return !column.nullable && column.primary;
375
+ });
376
+ if (primaryKeys.length !== 0) {
377
+ constraints.push("CONSTRAINT \"".concat(table.title, "_pk\" PRIMARY KEY( ").concat(primaryKeys.map(function (_a) {
378
+ var _b;
379
+ var key = _a[0], column = _a[1];
380
+ return "\"".concat((_b = column.title) !== null && _b !== void 0 ? _b : key, "\"");
381
+ }).join(', '), " )"));
382
+ }
383
+ // add columns and constrains union
384
+ var columnsAndConstraints = __spreadArray(__spreadArray([], columns, true), constraints, true);
385
+ if (columnsAndConstraints.length !== 0) {
386
+ tokens.push(columnsAndConstraints.join(', '));
387
+ }
388
+ tokens.push(') ;');
389
+ return tokens.join(' ');
390
+ };
391
+ exports.createTableSQL = createTableSQL;
392
+ var dropTableSQL = function (table) { return "DROP TABLE \"".concat(table.schema, "\".\"").concat(table.title, "\" ;"); };
393
+ exports.dropTableSQL = dropTableSQL;
394
+ var getSequenceName = function (tableTitle, columnKey, column) { var _a, _b; return (_a = column.seqTitle) !== null && _a !== void 0 ? _a : (tableTitle + '_' + ((_b = column.title) !== null && _b !== void 0 ? _b : columnKey) + '_seq'); };
395
+ exports.getSequenceName = getSequenceName;
396
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import Decimal from 'decimal.js';
2
+ import type Table from './table';
3
+ import type { JSON } from './json';
4
+ import type { ColumnTypeByColumns } from './postgres';
5
+ import type { Expression, ValueExpression } from './entity';
6
+ declare type Context<Columns extends Table['columns']> = {
7
+ col: <columnKey extends keyof Columns & string>(column: columnKey, alias?: string) => ValueExpression<ColumnTypeByColumns<Columns, columnKey>>;
8
+ colNull: <columnKey extends keyof Columns & string>(column: columnKey, op: null extends ColumnTypeByColumns<Columns, columnKey> ? NullOperator : never, alias?: string) => ValueExpression<boolean>;
9
+ colBool: <columnKey extends keyof Columns & string>(column: columnKey, op: boolean extends ColumnTypeByColumns<Columns, columnKey> ? BooleanOperator : never, alias?: string) => ValueExpression<boolean>;
10
+ colCmp: <columnKey extends keyof Columns & string>(column: columnKey, op: CompareOperatorCompatible<ColumnTypeByColumns<Columns, columnKey>, CompareOperator, never>, v: Expression<ColumnTypeByColumns<Columns, columnKey>>, alias?: string) => ValueExpression<boolean>;
11
+ colList: <columnKey extends keyof Columns & string>(column: columnKey, op: ListOperatorCompatible<ColumnTypeByColumns<Columns, columnKey>, ListOperator, never>, v: Expression<ColumnTypeByColumns<Columns, columnKey>>[] | undefined, alias?: string) => ValueExpression<boolean>;
12
+ colLike: <columnKey extends keyof Columns & string, Op extends (string extends ColumnTypeByColumns<Columns, columnKey> ? LikeOperator : never)>(column: columnKey, op: Op, v: Op extends 'like' ? Expression<ColumnTypeByColumns<Columns, columnKey>> : Expression<ColumnTypeByColumns<Columns, columnKey>>[] | undefined, alias?: string) => ValueExpression<boolean>;
13
+ colJson: <columnKey extends keyof Columns & string, Op extends (JSON extends ColumnTypeByColumns<Columns, columnKey> ? JsonOperator : never)>(column: columnKey, op: Op, v: Op extends '@>' | '<@' ? Expression<ColumnTypeByColumns<Columns, columnKey>> : Op extends '?' ? Expression<string> : Op extends '?&' | '?|' ? Expression<string>[] | undefined : never, alias?: string) => ValueExpression<boolean>;
14
+ colsAnd: ContextScope<Columns>;
15
+ colsOr: ContextScope<Columns>;
16
+ };
17
+ declare type ContextScope<Columns extends Table['columns']> = (rules: {
18
+ [columnKey in keyof Columns]?: [
19
+ op: null extends ColumnTypeByColumns<Columns, columnKey> ? NullOperator : never
20
+ ] | [
21
+ op: ColumnTypeByColumns<Columns, columnKey> extends boolean ? BooleanOperator : never
22
+ ] | [
23
+ op: CompareOperatorCompatible<ColumnTypeByColumns<Columns, columnKey>, CompareOperator, never>,
24
+ v: Expression<ColumnTypeByColumns<Columns, columnKey>>
25
+ ] | [
26
+ op: ListOperatorCompatible<ColumnTypeByColumns<Columns, columnKey>, ListOperator, never>,
27
+ v: Expression<ColumnTypeByColumns<Columns, columnKey>>[] | undefined
28
+ ] | [
29
+ op: Extract<LikeOperator, 'like'>,
30
+ v: ColumnTypeByColumns<Columns, columnKey> extends string ? Expression<ColumnTypeByColumns<Columns, columnKey>> : never
31
+ ] | [
32
+ op: Extract<LikeOperator, 'like some' | 'like all'>,
33
+ v: ColumnTypeByColumns<Columns, columnKey> extends string ? Expression<ColumnTypeByColumns<Columns, columnKey>>[] | undefined : never
34
+ ] | [
35
+ op: Extract<JsonOperator, '@>' | '<@'>,
36
+ v: ColumnTypeByColumns<Columns, columnKey> extends JSON ? Expression<ColumnTypeByColumns<Columns, columnKey>> : never
37
+ ] | [
38
+ op: Extract<JsonOperator, '?'>,
39
+ v: ColumnTypeByColumns<Columns, columnKey> extends JSON ? Expression<string> : never
40
+ ] | [
41
+ op: Extract<JsonOperator, '?&' | '?|'>,
42
+ v: ColumnTypeByColumns<Columns, columnKey> extends JSON ? Expression<string>[] | undefined : never
43
+ ];
44
+ }, alias?: string) => ValueExpression<boolean>;
45
+ declare type CompareOperatorCompatible<T, True, False> = number extends T ? True : bigint extends T ? True : Decimal extends T ? True : string extends T ? True : Date extends T ? True : False;
46
+ declare type ListOperatorCompatible<T, True, False> = number extends T ? True : bigint extends T ? True : Decimal extends T ? True : string extends T ? True : Date extends T ? True : False;
47
+ declare type ArithmeticOperator = '+' | '-' | '*' | '/' | '**';
48
+ declare type NullOperator = '= null' | '!= null';
49
+ declare type BooleanOperator = '= true' | '= false';
50
+ declare type CompareOperator = '=' | '!=' | '>' | '>=' | '<' | '<=';
51
+ declare type ListOperator = 'in' | 'not in';
52
+ declare type LikeOperator = 'like' | 'like all' | 'like some';
53
+ declare type JsonOperator = '?' | '@>' | '<@' | '?|' | '?&';
54
+ export type { Context, CompareOperatorCompatible, ListOperatorCompatible, ContextScope };
55
+ export type { ArithmeticOperator, NullOperator, BooleanOperator, CompareOperator, ListOperator, LikeOperator, JsonOperator };
56
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/types/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/types/context.ts"],"names":[],"mappings":""}
@@ -0,0 +1,68 @@
1
+ import { JSON } from './json';
2
+ import Decimal from 'decimal.js';
3
+ import type Table from './table';
4
+ import type { PoolClient } from 'pg';
5
+ import type { Result } from 'never-catch';
6
+ import type { ColumnTypeByColumns } from './postgres';
7
+ import { Context } from "./context";
8
+ declare type JoinType = 'inner' | 'left' | 'right' | 'full';
9
+ declare type Param = number | bigint | string;
10
+ declare type QueryData = {
11
+ sql: string;
12
+ params: Param[];
13
+ };
14
+ declare type TableData = {
15
+ table: Table;
16
+ alias: string;
17
+ };
18
+ declare type JoinData = {
19
+ joinType: JoinType;
20
+ on: Expression<boolean> | ((contexts: {
21
+ [k: string]: Context<Table['columns']>;
22
+ }) => Expression<boolean>);
23
+ };
24
+ declare type Mode = [] | ['count', number] | ['get', 'one' | number];
25
+ declare type CustomColumn<Exp extends Expression<ExpressionTypes>, As extends string> = {
26
+ exp: Exp;
27
+ as: As;
28
+ };
29
+ declare type NullableAndDefaultColumns<Columns extends Table['columns']> = {
30
+ [columnKey in keyof Columns as true extends Columns[columnKey]['nullable'] ? columnKey : false extends Columns[columnKey]['default'] ? never : columnKey]: true extends Columns[columnKey]['nullable'] ? Columns[columnKey] : false extends Columns[columnKey]['default'] ? never : Columns[columnKey];
31
+ };
32
+ declare type TablesColumnsKeys<Tables extends {
33
+ [key: string]: Table;
34
+ }> = {
35
+ [tableKey in keyof Tables & string]: `${tableKey}_${keyof Tables[tableKey]['columns'] & string}`;
36
+ }[keyof {
37
+ [tableKey in keyof Tables & string]: undefined;
38
+ }];
39
+ declare type ExpressionTypes = null | boolean | number | bigint | Decimal | string | Date | JSON;
40
+ declare type Expression<ExpType extends ExpressionTypes> = ExpType | undefined | ValueExpression<ExpType> | QueryExpression<ExpType>;
41
+ declare type ValueExpression<ExpType extends ExpressionTypes> = ['val', ExpType | undefined];
42
+ declare type QueryExpression<ExpType extends ExpressionTypes> = ['qry', ExpType];
43
+ declare type InsertValue<Columns extends Table['columns'], NullableAndDefaultCols extends readonly (keyof NullableAndDefaultColumns<Columns>)[]> = {
44
+ [columnKey in Exclude<keyof Columns, keyof NullableAndDefaultColumns<Columns>>]: Expression<ColumnTypeByColumns<Columns, columnKey>>;
45
+ } & {
46
+ [columnKey in Exclude<keyof NullableAndDefaultCols, keyof unknown[]> as NullableAndDefaultCols[columnKey] & string]?: Expression<ColumnTypeByColumns<Columns, NullableAndDefaultCols[columnKey] & string>>;
47
+ };
48
+ declare type UpdateSets<Columns extends Table['columns']> = {
49
+ [columnKey in keyof Columns & string]?: Expression<ColumnTypeByColumns<Columns, columnKey>>;
50
+ };
51
+ declare type Query<Columns extends Table['columns'], Returning extends readonly (keyof Columns | CustomColumn<Expression<ExpressionTypes>, string>)[]> = {
52
+ getData: (params?: Param[]) => Result<QueryData, string>;
53
+ exec: <M extends Mode>(client: PoolClient, mode: M, params?: Param[]) => Promise<Result<QueryResult<Columns, Returning, M>, unknown>>;
54
+ };
55
+ declare type QueryResult<Columns extends Table['columns'], Returning extends readonly (keyof Columns | CustomColumn<Expression<ExpressionTypes>, string>)[], M extends Mode> = M extends ['get', 'one'] ? QueryResultRow<Columns, Returning> : M extends ['get', number] | [] ? QueryResultRow<Columns, Returning>[] : M extends ['count', number] ? boolean : never;
56
+ declare type QueryResultRow<Columns extends Table['columns'], Returning extends readonly (keyof Columns | CustomColumn<Expression<ExpressionTypes>, string>)[]> = {
57
+ [key in Exclude<keyof Returning, keyof unknown[]> as Returning[key] extends CustomColumn<Expression<ExpressionTypes>, infer As> ? As : Returning[key] & string]: Returning[key] extends CustomColumn<infer Exp, string> ? Exp extends Expression<infer ExpType> ? ExpType : Exp : ColumnTypeByColumns<Columns, Returning[key] & keyof Columns>;
58
+ };
59
+ declare type PartialQuery = {
60
+ text: string;
61
+ params: Param[];
62
+ };
63
+ export type { JoinType, Param, QueryData, TableData, JoinData, Mode };
64
+ export type { CustomColumn, NullableAndDefaultColumns, TablesColumnsKeys };
65
+ export type { ExpressionTypes, Expression, ValueExpression, QueryExpression };
66
+ export type { InsertValue, UpdateSets };
67
+ export type { Query, QueryResult, QueryResultRow, PartialQuery };
68
+ //# sourceMappingURL=entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/types/entity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/types/entity.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import Decimal from 'decimal.js';
2
+ declare type JSON = JsonObject | JsonArray;
3
+ declare type JsonObject = {
4
+ [key: string]: BaseJsonValue;
5
+ };
6
+ declare type JsonArray = BaseJsonValue[];
7
+ declare type BaseJsonValue = null | boolean | number | bigint | Decimal | string | Date | JsonObject | JsonArray;
8
+ export type { JSON, JsonObject, JsonArray, BaseJsonValue };
9
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/types/json.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,aAAK,IAAI,GAAG,UAAU,GAAG,SAAS,CAAC;AACnC,aAAK,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAA;CAAE,CAAC;AACnD,aAAK,SAAS,GAAG,aAAa,EAAE,CAAC;AACjC,aAAK,aAAa,GAAG,IAAI,GACnB,OAAO,GACP,MAAM,GACN,MAAM,GACN,OAAO,GACP,MAAM,GACN,IAAI,GACJ,UAAU,GACV,SAAS,CAAC;AAEhB,YAAY,EACR,IAAI,EACJ,UAAU,EACV,SAAS,EACT,aAAa,EAChB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/types/json.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import type Table from './table';
2
+ import type { ColumnTypeByColumns, ColumnTypeByTable } from './postgres';
3
+ declare type SimpleModel<T extends Table> = {
4
+ [col in keyof T['columns'] & string]: ColumnTypeByTable<T, col>;
5
+ };
6
+ declare type Model<Columns extends Table['columns'], Requires extends readonly (keyof Columns)[], Optionals extends readonly (keyof Columns)[]> = {
7
+ [key in Exclude<keyof Requires, keyof unknown[]> as Requires[key] & string]: ColumnTypeByColumns<Columns, Requires[key] & keyof Columns>;
8
+ } & {
9
+ [key in Exclude<keyof Optionals, keyof unknown[]> as Optionals[key] & string]?: ColumnTypeByColumns<Columns, Optionals[key] & keyof Columns>;
10
+ };
11
+ export type { SimpleModel, Model };
12
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/types/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,EAAC,mBAAmB,EAAE,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAEvE,aAAK,WAAW,CAAC,CAAC,SAAS,KAAK,IAAI;KAAG,GAAG,IAAI,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,MAAM,GAAG,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC;CAAG,CAAC;AAEzG,aAAK,KAAK,CAAC,OAAO,SAAS,KAAK,CAAC,SAAS,CAAC,EAAE,QAAQ,SAAS,SAAS,CAAC,MAAM,OAAO,CAAC,EAAE,EAAE,SAAS,SAAS,SAAS,CAAC,MAAM,OAAO,CAAC,EAAE,IAClI;KACK,GAAG,IAAI,OAAO,CAAC,MAAM,QAAQ,EAAE,MAAM,OAAO,EAAE,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,GAC1E,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC;CAC9D,GACD;KACK,GAAG,IAAI,OAAO,CAAC,MAAM,SAAS,EAAE,MAAM,OAAO,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,EAC9E,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC;CAC/D,CAAC;AAEN,YAAY,EACR,WAAW,EACX,KAAK,EACR,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/types/model.ts"],"names":[],"mappings":""}