@mrnafisia/type-query 4.0.7 → 4.0.9
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/dist/prd.tsconfig.tsbuildinfo +1 -0
- package/dist/src/Table.d.ts +158 -0
- package/dist/src/Table.d.ts.map +1 -0
- package/dist/src/Table.js +6 -0
- package/dist/src/Table.js.map +1 -0
- package/dist/src/context.d.ts +90 -0
- package/dist/src/context.d.ts.map +1 -0
- package/dist/src/context.js +84 -0
- package/dist/src/context.js.map +1 -0
- package/dist/src/createModelParser.d.ts +47 -0
- package/dist/src/createModelParser.d.ts.map +1 -0
- package/dist/src/createModelParser.js +339 -0
- package/dist/src/createModelParser.js.map +1 -0
- package/dist/src/ddl.d.ts +22 -0
- package/dist/src/ddl.d.ts.map +1 -0
- package/dist/src/ddl.js +92 -0
- package/dist/src/ddl.js.map +1 -0
- package/dist/src/entity.d.ts +114 -0
- package/dist/src/entity.d.ts.map +1 -0
- package/dist/src/entity.js +543 -0
- package/dist/src/entity.js.map +1 -0
- package/dist/src/index.d.ts +10 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +70 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/keywords.d.ts +158 -0
- package/dist/src/keywords.d.ts.map +1 -0
- package/dist/src/keywords.js +187 -0
- package/dist/src/keywords.js.map +1 -0
- package/dist/src/resolve.d.ts +15 -0
- package/dist/src/resolve.d.ts.map +1 -0
- package/dist/src/resolve.js +599 -0
- package/dist/src/resolve.js.map +1 -0
- package/dist/src/testTransaction.d.ts +23 -0
- package/dist/src/testTransaction.d.ts.map +1 -0
- package/dist/src/testTransaction.js +115 -0
- package/dist/src/testTransaction.js.map +1 -0
- package/dist/src/transaction.d.ts +6 -0
- package/dist/src/transaction.d.ts.map +1 -0
- package/dist/src/transaction.js +28 -0
- package/dist/src/transaction.js.map +1 -0
- package/dist/src/utils.d.ts +62 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +86 -0
- package/dist/src/utils.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createModelParser = exports.Parser = exports.Int8Range = exports.Int4Range = exports.Int2Range = void 0;
|
|
7
|
+
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
8
|
+
const never_catch_1 = require("never-catch");
|
|
9
|
+
const Int2Range = {
|
|
10
|
+
min: -32768,
|
|
11
|
+
max: 32767
|
|
12
|
+
};
|
|
13
|
+
exports.Int2Range = Int2Range;
|
|
14
|
+
const Int4Range = {
|
|
15
|
+
min: -2147483648,
|
|
16
|
+
max: 2147483647
|
|
17
|
+
};
|
|
18
|
+
exports.Int4Range = Int4Range;
|
|
19
|
+
const Int8Range = {
|
|
20
|
+
min: BigInt('-9223372036854775808'),
|
|
21
|
+
max: BigInt('9223372036854775807')
|
|
22
|
+
};
|
|
23
|
+
exports.Int8Range = Int8Range;
|
|
24
|
+
const Parser = {
|
|
25
|
+
boolean: (v, nullable = false) => {
|
|
26
|
+
if (nullable &&
|
|
27
|
+
(v === null ||
|
|
28
|
+
(typeof v === 'string' && v.toLowerCase() === 'null'))) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
switch (typeof v) {
|
|
32
|
+
case 'boolean':
|
|
33
|
+
return v;
|
|
34
|
+
case 'string':
|
|
35
|
+
switch (v) {
|
|
36
|
+
case 't':
|
|
37
|
+
case 'true':
|
|
38
|
+
return true;
|
|
39
|
+
case 'f':
|
|
40
|
+
case 'false':
|
|
41
|
+
return false;
|
|
42
|
+
default:
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
default:
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
number: (v, nullable = false) => {
|
|
50
|
+
if (nullable &&
|
|
51
|
+
(v === null ||
|
|
52
|
+
(typeof v === 'string' && v.toLowerCase() === 'null'))) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
if (typeof v === 'number') {
|
|
56
|
+
return v;
|
|
57
|
+
}
|
|
58
|
+
else if (typeof v === 'string') {
|
|
59
|
+
const _v = Number(v);
|
|
60
|
+
return Number.isNaN(_v) ? undefined : _v;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
integer: (v, nullable = false) => {
|
|
67
|
+
const _v = Parser.number(v, nullable);
|
|
68
|
+
return typeof _v === 'number' ? Math.trunc(_v) : _v;
|
|
69
|
+
},
|
|
70
|
+
bigInt: (v, nullable = false) => {
|
|
71
|
+
if (nullable &&
|
|
72
|
+
(v === null ||
|
|
73
|
+
(typeof v === 'string' && v.toLowerCase() === 'null'))) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
switch (typeof v) {
|
|
77
|
+
case 'bigint':
|
|
78
|
+
return v;
|
|
79
|
+
case 'number':
|
|
80
|
+
return BigInt(v);
|
|
81
|
+
case 'string':
|
|
82
|
+
try {
|
|
83
|
+
return BigInt(v);
|
|
84
|
+
}
|
|
85
|
+
catch (_) {
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
default:
|
|
89
|
+
return undefined;
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
decimal: (v, nullable = false) => {
|
|
93
|
+
if (nullable &&
|
|
94
|
+
(v === null ||
|
|
95
|
+
(typeof v === 'string' && v.toLowerCase() === 'null'))) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
if (decimal_js_1.default.isDecimal(v)) {
|
|
99
|
+
return v;
|
|
100
|
+
}
|
|
101
|
+
switch (typeof v) {
|
|
102
|
+
case 'number':
|
|
103
|
+
return new decimal_js_1.default(v);
|
|
104
|
+
case 'string':
|
|
105
|
+
try {
|
|
106
|
+
return new decimal_js_1.default(v);
|
|
107
|
+
}
|
|
108
|
+
catch (_) {
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
default:
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
string: (v, nullable = false) => {
|
|
116
|
+
if (nullable &&
|
|
117
|
+
(v === null ||
|
|
118
|
+
(typeof v === 'string' && v.toLowerCase() === 'null'))) {
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
switch (typeof v) {
|
|
122
|
+
case 'boolean':
|
|
123
|
+
case 'number':
|
|
124
|
+
case 'bigint':
|
|
125
|
+
return `${v}`;
|
|
126
|
+
case 'string':
|
|
127
|
+
return v;
|
|
128
|
+
default:
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
dateTime: (v, nullable = false) => {
|
|
133
|
+
if (nullable &&
|
|
134
|
+
(v === null ||
|
|
135
|
+
(typeof v === 'string' && v.toLowerCase() === 'null'))) {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
if (v instanceof Date && `${v}` !== 'Invalid Date') {
|
|
139
|
+
return v;
|
|
140
|
+
}
|
|
141
|
+
if (typeof v === 'number' || typeof v === 'string') {
|
|
142
|
+
const _v = new Date(v);
|
|
143
|
+
return `${_v}` === 'Invalid Date' ? undefined : _v;
|
|
144
|
+
}
|
|
145
|
+
return undefined;
|
|
146
|
+
},
|
|
147
|
+
date: (v, nullable = false) => {
|
|
148
|
+
const _v = Parser.dateTime(v, nullable);
|
|
149
|
+
if (_v instanceof Date &&
|
|
150
|
+
_v.toISOString().split('T')[1] !== '00:00:00.000Z') {
|
|
151
|
+
return undefined;
|
|
152
|
+
}
|
|
153
|
+
return _v;
|
|
154
|
+
},
|
|
155
|
+
json: (v, nullable = false) => {
|
|
156
|
+
if (nullable &&
|
|
157
|
+
(v === null ||
|
|
158
|
+
(typeof v === 'string' && v.toLowerCase() === 'null'))) {
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
const _v = typeof v !== 'string' ? JSON.stringify(v) : v;
|
|
162
|
+
try {
|
|
163
|
+
const parsedV = JSON.parse(_v);
|
|
164
|
+
if (typeof parsedV !== 'object' || parsedV === null) {
|
|
165
|
+
return undefined;
|
|
166
|
+
}
|
|
167
|
+
return parsedV;
|
|
168
|
+
}
|
|
169
|
+
catch (_) {
|
|
170
|
+
return undefined;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
exports.Parser = Parser;
|
|
175
|
+
const createModelParser = ({ columns }, { parsers, errorsMap } = {}) => {
|
|
176
|
+
const columnsParser = Object.fromEntries(Object.entries(columns).map(([key, column]) => {
|
|
177
|
+
let defaultParser;
|
|
178
|
+
switch (column.type) {
|
|
179
|
+
case 'boolean':
|
|
180
|
+
defaultParser = Parser.boolean;
|
|
181
|
+
break;
|
|
182
|
+
case 'int2':
|
|
183
|
+
defaultParser = (v, nullable) => {
|
|
184
|
+
const _v = Parser.integer(v, nullable);
|
|
185
|
+
if (_v === null) {
|
|
186
|
+
return null;
|
|
187
|
+
}
|
|
188
|
+
if (_v !== undefined &&
|
|
189
|
+
(column.min ?? Int2Range.min) <= _v &&
|
|
190
|
+
(column.max ?? Int2Range.max) >= _v) {
|
|
191
|
+
return _v;
|
|
192
|
+
}
|
|
193
|
+
return undefined;
|
|
194
|
+
};
|
|
195
|
+
break;
|
|
196
|
+
case 'int4':
|
|
197
|
+
defaultParser = (v, nullable) => {
|
|
198
|
+
const _v = Parser.integer(v, nullable);
|
|
199
|
+
if (_v === null) {
|
|
200
|
+
return null;
|
|
201
|
+
}
|
|
202
|
+
if (_v !== undefined &&
|
|
203
|
+
(column.min ?? Int4Range.min) <= _v &&
|
|
204
|
+
(column.max ?? Int4Range.max) >= _v) {
|
|
205
|
+
return _v;
|
|
206
|
+
}
|
|
207
|
+
return undefined;
|
|
208
|
+
};
|
|
209
|
+
break;
|
|
210
|
+
case 'int8':
|
|
211
|
+
defaultParser = (v, nullable) => {
|
|
212
|
+
const _v = Parser.bigInt(v, nullable);
|
|
213
|
+
if (_v === null) {
|
|
214
|
+
return null;
|
|
215
|
+
}
|
|
216
|
+
if (_v !== undefined &&
|
|
217
|
+
(column.min ?? Int8Range.min) <= _v &&
|
|
218
|
+
(column.max ?? Int8Range.max) >= _v) {
|
|
219
|
+
return _v;
|
|
220
|
+
}
|
|
221
|
+
return undefined;
|
|
222
|
+
};
|
|
223
|
+
break;
|
|
224
|
+
case 'float4':
|
|
225
|
+
case 'float8':
|
|
226
|
+
defaultParser = (v, nullable) => {
|
|
227
|
+
const _v = Parser.number(v, nullable);
|
|
228
|
+
if (_v === null) {
|
|
229
|
+
return null;
|
|
230
|
+
}
|
|
231
|
+
if (_v !== undefined &&
|
|
232
|
+
(column.min === undefined ||
|
|
233
|
+
column.min <= _v) &&
|
|
234
|
+
(column.max === undefined || column.max >= _v)) {
|
|
235
|
+
return _v;
|
|
236
|
+
}
|
|
237
|
+
return undefined;
|
|
238
|
+
};
|
|
239
|
+
break;
|
|
240
|
+
case 'decimal':
|
|
241
|
+
defaultParser = (v, nullable) => {
|
|
242
|
+
const _v = Parser.decimal(v, nullable);
|
|
243
|
+
if (_v === null) {
|
|
244
|
+
return null;
|
|
245
|
+
}
|
|
246
|
+
if (_v !== undefined &&
|
|
247
|
+
(column.min === undefined ||
|
|
248
|
+
_v.comparedTo(column.min) >= 0) &&
|
|
249
|
+
(column.max === undefined ||
|
|
250
|
+
_v.comparedTo(column.max) <= 0) &&
|
|
251
|
+
_v.decimalPlaces() <= column.scale &&
|
|
252
|
+
_v.precision() - _v.decimalPlaces() <=
|
|
253
|
+
column.precision) {
|
|
254
|
+
return _v;
|
|
255
|
+
}
|
|
256
|
+
return undefined;
|
|
257
|
+
};
|
|
258
|
+
break;
|
|
259
|
+
case 'char':
|
|
260
|
+
case 'varchar':
|
|
261
|
+
case 'text':
|
|
262
|
+
case 'uuid':
|
|
263
|
+
defaultParser = (v, nullable) => {
|
|
264
|
+
const _v = Parser.string(v, nullable);
|
|
265
|
+
if (_v === null) {
|
|
266
|
+
return null;
|
|
267
|
+
}
|
|
268
|
+
if (_v !== undefined &&
|
|
269
|
+
(column.minLength === undefined ||
|
|
270
|
+
column.minLength <= _v.length) &&
|
|
271
|
+
(column.maxLength === undefined ||
|
|
272
|
+
column.maxLength >= _v.length) &&
|
|
273
|
+
(column.regex === undefined ||
|
|
274
|
+
column.regex.test(_v))) {
|
|
275
|
+
return _v;
|
|
276
|
+
}
|
|
277
|
+
return undefined;
|
|
278
|
+
};
|
|
279
|
+
break;
|
|
280
|
+
case 'date':
|
|
281
|
+
defaultParser = Parser.date;
|
|
282
|
+
break;
|
|
283
|
+
case 'timestamp':
|
|
284
|
+
case 'timestamptz':
|
|
285
|
+
defaultParser = Parser.dateTime;
|
|
286
|
+
break;
|
|
287
|
+
case 'json':
|
|
288
|
+
case 'jsonb':
|
|
289
|
+
defaultParser = Parser.json;
|
|
290
|
+
break;
|
|
291
|
+
default:
|
|
292
|
+
defaultParser = (v) => v;
|
|
293
|
+
}
|
|
294
|
+
const customParser = parsers?.[key];
|
|
295
|
+
return [
|
|
296
|
+
key,
|
|
297
|
+
customParser !== undefined
|
|
298
|
+
? (v) => {
|
|
299
|
+
const _v = defaultParser(v, columns[key].nullable);
|
|
300
|
+
if (_v === undefined) {
|
|
301
|
+
return undefined;
|
|
302
|
+
}
|
|
303
|
+
return customParser(_v);
|
|
304
|
+
}
|
|
305
|
+
: (v) => defaultParser(v, columns[key].nullable)
|
|
306
|
+
];
|
|
307
|
+
}));
|
|
308
|
+
return {
|
|
309
|
+
Parse: (data, requires, optionals, notNulls = []) => {
|
|
310
|
+
const result = {};
|
|
311
|
+
for (const key of requires) {
|
|
312
|
+
if (data[key] === undefined) {
|
|
313
|
+
return (0, never_catch_1.err)(errorsMap?.[key] ?? key);
|
|
314
|
+
}
|
|
315
|
+
result[key] = columnsParser[key](data[key]);
|
|
316
|
+
if (result[key] === undefined ||
|
|
317
|
+
(result[key] === null &&
|
|
318
|
+
notNulls.includes(key))) {
|
|
319
|
+
return (0, never_catch_1.err)(errorsMap?.[key] ?? key);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
for (const key of optionals) {
|
|
323
|
+
if (data[key] === undefined) {
|
|
324
|
+
continue;
|
|
325
|
+
}
|
|
326
|
+
result[key] = columnsParser[key](data[key]);
|
|
327
|
+
if (result[key] === undefined ||
|
|
328
|
+
(result[key] === null &&
|
|
329
|
+
notNulls.includes(key))) {
|
|
330
|
+
return (0, never_catch_1.err)(errorsMap?.[key] ?? key);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
return (0, never_catch_1.ok)(result);
|
|
334
|
+
},
|
|
335
|
+
...columnsParser
|
|
336
|
+
};
|
|
337
|
+
};
|
|
338
|
+
exports.createModelParser = createModelParser;
|
|
339
|
+
//# sourceMappingURL=createModelParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createModelParser.js","sourceRoot":"","sources":["../../src/createModelParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Table } from './Table';
|
|
2
|
+
declare const generateCreateSequencesSQL: (table: Table, { applyIfNotExist, owner }?: {
|
|
3
|
+
applyIfNotExist?: boolean;
|
|
4
|
+
owner?: string;
|
|
5
|
+
}) => string[];
|
|
6
|
+
declare const generateDropSequencesSQL: (table: Table, { applyIfExist }?: {
|
|
7
|
+
applyIfExist?: boolean;
|
|
8
|
+
}) => string[];
|
|
9
|
+
declare const generateCreateTableSQL: (table: Table, { applyIfNotExist, isTemp, owner }?: {
|
|
10
|
+
applyIfNotExist?: boolean;
|
|
11
|
+
isTemp?: boolean;
|
|
12
|
+
owner?: string;
|
|
13
|
+
}) => string;
|
|
14
|
+
declare const generateDropTableSQL: (table: Table, { applyIfExist }?: {
|
|
15
|
+
applyIfExist?: boolean;
|
|
16
|
+
}) => string;
|
|
17
|
+
declare const getSequenceName: (schemaName: string, tableName: string, columnKey: string, column: {
|
|
18
|
+
title?: string;
|
|
19
|
+
sequenceTitle?: string;
|
|
20
|
+
}) => string;
|
|
21
|
+
export { generateCreateSequencesSQL, generateDropSequencesSQL, generateCreateTableSQL, generateDropTableSQL, getSequenceName };
|
|
22
|
+
//# sourceMappingURL=ddl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ddl.d.ts","sourceRoot":"","sources":["../../src/ddl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAqB,MAAM,SAAS,CAAC;AAEnD,QAAA,MAAM,0BAA0B,GAC5B,OAAO,KAAK,EACZ,6BAGG;IAAE,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,aAmCxD,CAAC;AAEF,QAAA,MAAM,wBAAwB,GAC1B,OAAO,KAAK,EACZ,mBAA0B;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,aAgB5D,CAAC;AAEF,QAAA,MAAM,sBAAsB,GACxB,OAAO,KAAK,EACZ,qCAIG;IAAE,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,WA8E1E,CAAC;AAEF,QAAA,MAAM,oBAAoB,GACtB,OAAO,KAAK,EACZ,mBAA0B;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,WAEgC,CAAC;AAE9F,QAAA,MAAM,eAAe,GACjB,YAAY,MAAM,EAClB,WAAW,MAAM,EACjB,WAAW,MAAM,EACjB,QAAQ;IACJ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B,WAKE,CAAC;AAER,OAAO,EACH,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EAClB,CAAC"}
|
package/dist/src/ddl.js
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSequenceName = exports.generateDropTableSQL = exports.generateCreateTableSQL = exports.generateDropSequencesSQL = exports.generateCreateSequencesSQL = void 0;
|
|
4
|
+
const keywords_1 = require("./keywords");
|
|
5
|
+
const generateCreateSequencesSQL = (table, { applyIfNotExist = false, owner } = {}) => {
|
|
6
|
+
const queries = [];
|
|
7
|
+
for (const [key, column] of Object.entries(table.columns)) {
|
|
8
|
+
if (column
|
|
9
|
+
.defaultValue?.[0] !== 'auto-increment') {
|
|
10
|
+
continue;
|
|
11
|
+
}
|
|
12
|
+
const tokens = ['CREATE SEQUENCE'];
|
|
13
|
+
if (applyIfNotExist) {
|
|
14
|
+
tokens.push('IF NOT EXISTS');
|
|
15
|
+
}
|
|
16
|
+
tokens.push(getSequenceName(table.schemaName, table.tableName, key, column));
|
|
17
|
+
switch (column.type) {
|
|
18
|
+
case 'int2':
|
|
19
|
+
tokens.push('AS SMALLINT');
|
|
20
|
+
break;
|
|
21
|
+
case 'int4':
|
|
22
|
+
tokens.push('AS INTEGER');
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
if (owner !== undefined) {
|
|
26
|
+
tokens.push(`OWNER TO ${owner}`);
|
|
27
|
+
}
|
|
28
|
+
queries.push(tokens.join(' '));
|
|
29
|
+
}
|
|
30
|
+
return queries;
|
|
31
|
+
};
|
|
32
|
+
exports.generateCreateSequencesSQL = generateCreateSequencesSQL;
|
|
33
|
+
const generateDropSequencesSQL = (table, { applyIfExist = false } = {}) => {
|
|
34
|
+
const queries = [];
|
|
35
|
+
for (const [key, column] of Object.entries(table.columns)) {
|
|
36
|
+
if (column
|
|
37
|
+
.defaultValue?.[0] !== 'auto-increment') {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
queries.push(`DROP ${applyIfExist ? 'IF EXISTS ' : ''}SEQUENCE ${getSequenceName(table.schemaName, table.tableName, key, column)}`);
|
|
41
|
+
}
|
|
42
|
+
return queries;
|
|
43
|
+
};
|
|
44
|
+
exports.generateDropSequencesSQL = generateDropSequencesSQL;
|
|
45
|
+
const generateCreateTableSQL = (table, { applyIfNotExist = false, isTemp = false, owner } = {}) => {
|
|
46
|
+
const columnsAsEntries = Object.entries(table.columns);
|
|
47
|
+
const columns = columnsAsEntries.map(([key, column]) => {
|
|
48
|
+
const tokens = [
|
|
49
|
+
`"${column.title ?? key}" ` +
|
|
50
|
+
(column.type.startsWith('custom(') && column.type.endsWith(')')
|
|
51
|
+
? column.type.substring('custom('.length, column.type.length - 1)
|
|
52
|
+
: keywords_1.Dictionary.PostgresType[column.type])
|
|
53
|
+
];
|
|
54
|
+
if (column.default) {
|
|
55
|
+
const defaultValue = column.defaultValue;
|
|
56
|
+
switch (defaultValue[0]) {
|
|
57
|
+
case 'auto-increment':
|
|
58
|
+
tokens.push(`DEFAULT NEXTVAL('${getSequenceName(table.schemaName, table.tableName, key, column)}'::REGCLASS)`);
|
|
59
|
+
break;
|
|
60
|
+
case 'sql':
|
|
61
|
+
tokens.push(`DEFAULT ${defaultValue[1]}`);
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
tokens.push(column.nullable ? 'NULL' : 'NOT NULL');
|
|
66
|
+
const reference = column.reference;
|
|
67
|
+
if (reference !== undefined) {
|
|
68
|
+
tokens.push(`REFERENCES "${reference.table.schemaName}"."${reference.table.tableName}"` +
|
|
69
|
+
`("${reference.table.columns[reference.column].title ??
|
|
70
|
+
reference.column}") ` +
|
|
71
|
+
`ON UPDATE ${keywords_1.Dictionary.ReferenceAction[reference.onUpdate ?? 'no-action']} ON DELETE ${keywords_1.Dictionary.ReferenceAction[reference.onDelete ?? 'no-action']}`);
|
|
72
|
+
}
|
|
73
|
+
return tokens.join(' ');
|
|
74
|
+
});
|
|
75
|
+
const constraints = [];
|
|
76
|
+
const primaryKeys = columnsAsEntries.filter(([, column]) => !column.nullable && column.primary);
|
|
77
|
+
if (primaryKeys.length !== 0) {
|
|
78
|
+
constraints.push(`CONSTRAINT "${table.tableName}_pk" PRIMARY KEY(${primaryKeys
|
|
79
|
+
.map(([key, column]) => `"${column.title ?? key}"`)
|
|
80
|
+
.join(', ')})`);
|
|
81
|
+
}
|
|
82
|
+
return `CREATE ${isTemp ? 'TEMPORARY ' : ''}TABLE ${applyIfNotExist ? 'IF NOT EXIST ' : ''}"${table.schemaName}"."${table.tableName}"(${[...columns, ...constraints].join(', ')})${owner !== undefined ? ` OWNER TO ${owner}` : ''}`;
|
|
83
|
+
};
|
|
84
|
+
exports.generateCreateTableSQL = generateCreateTableSQL;
|
|
85
|
+
const generateDropTableSQL = (table, { applyIfExist = false } = {}) => `DROP TABLE ${applyIfExist ? 'IF EXIST ' : ''}"${table.schemaName}"."${table.tableName}"`;
|
|
86
|
+
exports.generateDropTableSQL = generateDropTableSQL;
|
|
87
|
+
const getSequenceName = (schemaName, tableName, columnKey, column) => `"${schemaName}"."` +
|
|
88
|
+
(column.sequenceTitle ??
|
|
89
|
+
tableName + '_' + (column.title ?? columnKey) + '_seq') +
|
|
90
|
+
'"';
|
|
91
|
+
exports.getSequenceName = getSequenceName;
|
|
92
|
+
//# sourceMappingURL=ddl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ddl.js","sourceRoot":"","sources":["../../src/ddl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { ClientBase } from 'pg';
|
|
2
|
+
import { Result } from 'never-catch';
|
|
3
|
+
import { Context } from './context';
|
|
4
|
+
import { GetColumnType, NullableType, Schema, Table } from './Table';
|
|
5
|
+
declare const createEntity: <S extends Schema>(table: Table<S>) => {
|
|
6
|
+
table: Table<S>;
|
|
7
|
+
context: Context<S>;
|
|
8
|
+
select: <const R extends (keyof S & string) | CustomColumn<unknown, string>>(returning: R[] | ((context: Context<S>) => R[]), where: (null | boolean) | ((context: Context<S>) => null | boolean), options?: SelectOptions<S>) => Query<S, R>;
|
|
9
|
+
insert: <const R extends (keyof S & string) | CustomColumn<unknown, string>, N extends NullableAndDefaultColumns<S> = never>(rows: InsertingRow<S, N>[] | ((context: Context<S>) => InsertingRow<S, N>[]), returning: R[] | ((context: Context<S>) => R[]), options?: InsertOptions<S, N>) => Query<S, R>;
|
|
10
|
+
update: <const R extends (keyof S & string) | CustomColumn<unknown, string>>(sets: UpdateSets<S> | ((context: Context<S>) => UpdateSets<S>), where: (null | boolean) | ((context: Context<S>) => null | boolean), returning: R[] | ((context: Context<S>) => R[])) => Query<S, R>;
|
|
11
|
+
delete: <const R extends (keyof S & string) | CustomColumn<unknown, string>>(where: (null | boolean) | ((context: Context<S>) => null | boolean), returning: R[] | ((context: Context<S>) => R[])) => Query<S, R>;
|
|
12
|
+
join: <MA extends string, JS extends Schema, JA extends string>(mainAlias: MA, joinType: JoinType, joinTable: Table<JS>, joinAlias: JA, on: boolean | ((contexts: SchemaMapContexts<Record<MA, S> & Record<JA, JS>>) => boolean)) => JoinEntity<Record<MA, S> & Record<JA, JS>, PrefixAliasOnSchema<S, MA> & PrefixAliasOnSchema<JS, JA>>;
|
|
13
|
+
};
|
|
14
|
+
type By<S extends Schema> = (keyof S & string) | {
|
|
15
|
+
expression: unknown;
|
|
16
|
+
};
|
|
17
|
+
type Order<S extends Schema> = {
|
|
18
|
+
by: By<S>;
|
|
19
|
+
direction: OrderDirection;
|
|
20
|
+
nullPosition?: 'first' | 'last';
|
|
21
|
+
};
|
|
22
|
+
type CustomQueryBuilder = (parts: Record<`${'distinct' | 'returning' | 'from' | 'where' | 'groupBy' | 'orders' | 'pagination'}Part`, string>, params: string[]) => QueryData;
|
|
23
|
+
type SelectOptions<S extends Schema> = {
|
|
24
|
+
distinct?: (true | By<S>[]) | ((context: Context<S>) => true | By<S>[]);
|
|
25
|
+
groupBy?: By<S>[] | ((context: Context<S>) => By<S>[]);
|
|
26
|
+
orders?: Order<S>[] | ((context: Context<S>) => Order<S>[]);
|
|
27
|
+
start?: bigint;
|
|
28
|
+
step?: number;
|
|
29
|
+
customQueryBuilder?: CustomQueryBuilder;
|
|
30
|
+
};
|
|
31
|
+
declare const defaultCustomQueryBuilder: CustomQueryBuilder;
|
|
32
|
+
declare const createSelectQuery: <S extends Schema>(context: Context<S>, table: Table<S>, returning: ReturningRow[] | ((context: Context<S>) => ReturningRow[]), where: (null | boolean) | ((context: Context<S>) => null | boolean), options: SelectOptions<S>, params: string[]) => Result<QueryData, string>;
|
|
33
|
+
type InsertOptions<S extends Schema, N extends NullableAndDefaultColumns<S>> = {
|
|
34
|
+
nullableDefaultColumns?: N[];
|
|
35
|
+
};
|
|
36
|
+
type InsertingRow<S extends Schema, N extends NullableAndDefaultColumns<S>> = {
|
|
37
|
+
[key in keyof S & string as key extends NullableAndDefaultColumns<S> ? never : key]: key extends NullableAndDefaultColumns<S> ? never : GetColumnType<S[key & string]>;
|
|
38
|
+
} & {
|
|
39
|
+
[key in N]?: NullableType<GetColumnType<S[key & string]>, S[key & string]['nullable']>;
|
|
40
|
+
};
|
|
41
|
+
declare const createInsertQuery: <S extends Schema>(context: Context<S>, table: Table<S>, rows: Record<string, unknown>[] | ((context: Context<S>) => Record<string, unknown>[]), returning: ReturningRow[] | ((context: Context<S>) => ReturningRow[]), options: InsertOptions<S, NullableAndDefaultColumns<S>>, params: string[]) => Result<QueryData, string>;
|
|
42
|
+
type UpdateSets<S extends Schema> = {
|
|
43
|
+
[key in keyof S]?: NullableType<GetColumnType<S[key]>, S[key]['nullable']>;
|
|
44
|
+
};
|
|
45
|
+
declare const createUpdateQuery: <S extends Schema>(context: Context<S>, table: Table<S>, sets: UpdateSets<S> | ((context: Context<S>) => UpdateSets<S>), where: (null | boolean) | ((context: Context<S>) => null | boolean), returning: ReturningRow[] | ((context: Context<S>) => ReturningRow[]), params: string[]) => Result<QueryData, string>;
|
|
46
|
+
declare const createDeleteQuery: <S extends Schema>(context: Context<S>, table: Table<S>, returning: ReturningRow[] | ((context: Context<S>) => ReturningRow[]), where: (null | boolean) | ((context: Context<S>) => null | boolean), params: string[]) => Result<QueryData, string>;
|
|
47
|
+
type JoinType = 'inner' | 'left' | 'right' | 'full';
|
|
48
|
+
type TableWithAlias = {
|
|
49
|
+
table: Table;
|
|
50
|
+
alias: string;
|
|
51
|
+
};
|
|
52
|
+
type JoinData<SMap extends Record<string, Schema>> = {
|
|
53
|
+
joinType: JoinType;
|
|
54
|
+
on: boolean | ((contexts: SchemaMapContexts<SMap>) => boolean);
|
|
55
|
+
};
|
|
56
|
+
type SchemaMapKeys<SMap extends Record<string, Schema>> = {
|
|
57
|
+
[key in keyof SMap & string]: `${key}_${keyof SMap[key] & string}`;
|
|
58
|
+
}[keyof SMap & string];
|
|
59
|
+
type SchemaMapContexts<SMap extends Record<string, Schema>> = {
|
|
60
|
+
[key in keyof SMap & string as `${key}Context`]: Context<SMap[key]>;
|
|
61
|
+
};
|
|
62
|
+
type PrefixAliasOnSchema<S extends Schema, A extends string> = {
|
|
63
|
+
[key in keyof S as `${A}_${key & string}`]: S[key];
|
|
64
|
+
};
|
|
65
|
+
type JoinEntity<SMap extends Record<string, Schema>, AllS extends Schema> = {
|
|
66
|
+
contexts: SchemaMapContexts<SMap>;
|
|
67
|
+
select: <const R extends (keyof AllS & string) | CustomColumn<unknown, string>>(returning: R[] | ((contexts: SchemaMapContexts<SMap>) => R[]), where: (null | boolean) | ((contexts: SchemaMapContexts<SMap>) => null | boolean), options?: JoinSelectOptions<SMap>) => Query<AllS, R>;
|
|
68
|
+
join: <JS extends Schema, JA extends string>(joinType: JoinType, joinTable: Table<JS>, joinAlias: JA, on: boolean | ((contexts: SchemaMapContexts<SMap & Record<JA, JS>>) => boolean)) => JoinEntity<SMap & Record<JA, JS>, AllS & PrefixAliasOnSchema<JS, JA>>;
|
|
69
|
+
};
|
|
70
|
+
type JoinSelectOptions<SMap extends Record<string, Schema>> = {
|
|
71
|
+
distinct?: (true | JoinBy<SMap>[]) | ((contexts: SchemaMapContexts<SMap>) => true | JoinBy<SMap>[]);
|
|
72
|
+
groupBy?: JoinBy<SMap>[] | ((contexts: SchemaMapContexts<SMap>) => JoinBy<SMap>[]);
|
|
73
|
+
orders?: JoinOrder<SMap>[] | ((contexts: SchemaMapContexts<SMap>) => JoinOrder<SMap>[]);
|
|
74
|
+
start?: bigint;
|
|
75
|
+
step?: number;
|
|
76
|
+
customQueryBuilder?: (parts: Record<`${'distinct' | 'returning' | 'from' | 'where' | 'groupBy' | 'orders' | 'pagination'}Part`, string>, params: string[]) => QueryData;
|
|
77
|
+
};
|
|
78
|
+
type JoinBy<SMap extends Record<string, Schema>> = SchemaMapKeys<SMap> | {
|
|
79
|
+
expression: unknown;
|
|
80
|
+
};
|
|
81
|
+
type JoinOrder<SMap extends Record<string, Schema>> = {
|
|
82
|
+
by: JoinBy<SMap>;
|
|
83
|
+
direction: OrderDirection;
|
|
84
|
+
nullPosition?: 'first' | 'last';
|
|
85
|
+
};
|
|
86
|
+
declare const createJoinSelectEntity: <SMap extends Record<string, Schema>, AllS extends Schema>(main: TableWithAlias, joinTables: (TableWithAlias & JoinData<SMap>)[], contexts: SchemaMapContexts<SMap>) => JoinEntity<SMap, AllS>;
|
|
87
|
+
declare const createJoinSelectQuery: <SMap extends Record<string, Schema>>(contexts: SchemaMapContexts<SMap>, main: TableWithAlias, joinTables: (TableWithAlias & JoinData<SMap>)[], returning: ReturningRow[] | ((contexts: SchemaMapContexts<SMap>) => ReturningRow[]), where: (null | boolean) | ((contexts: SchemaMapContexts<SMap>) => null | boolean), options: JoinSelectOptions<SMap>, params: string[]) => Result<QueryData, string>;
|
|
88
|
+
declare const getTableDataOfJoinSelectColumn: (tablesData: TableWithAlias[], column: string) => TableWithAlias;
|
|
89
|
+
type OrderDirection = 'asc' | 'desc';
|
|
90
|
+
type Mode = [] | ['count', number] | ['get', 'one' | number];
|
|
91
|
+
type CustomColumn<T, N extends string> = {
|
|
92
|
+
expression: T;
|
|
93
|
+
name: N;
|
|
94
|
+
};
|
|
95
|
+
type NullableAndDefaultColumns<S extends Schema> = keyof {
|
|
96
|
+
[key in keyof S as true extends S[key]['nullable'] ? key : true extends S[key]['default'] ? key : never]: undefined;
|
|
97
|
+
} & string;
|
|
98
|
+
type Query<S extends Schema, R extends keyof S | CustomColumn<unknown, string>> = {
|
|
99
|
+
getData: (params?: string[]) => Result<QueryData, string>;
|
|
100
|
+
execute: <M extends Mode>(client: ClientBase, mode: M, params?: string[]) => Promise<Result<QueryResult<S, R, M>, unknown>>;
|
|
101
|
+
};
|
|
102
|
+
type QueryData = {
|
|
103
|
+
sql: string;
|
|
104
|
+
params: string[];
|
|
105
|
+
};
|
|
106
|
+
type QueryResult<S extends Schema, R extends keyof S | CustomColumn<unknown, string>, M extends Mode> = M extends ['get', 'one'] ? QueryResultRow<S, R> : M extends ['get', number] | [] ? QueryResultRow<S, R>[] : M extends ['count', number] ? undefined : never;
|
|
107
|
+
type QueryResultRow<S extends Schema, R extends keyof S | CustomColumn<unknown, string>> = {
|
|
108
|
+
[key in R as key extends CustomColumn<unknown, infer T> ? T : key]: key extends CustomColumn<infer T, string> ? T : NullableType<GetColumnType<S[key & string]>, S[key & string]['nullable']>;
|
|
109
|
+
};
|
|
110
|
+
type ReturningRow = string | CustomColumn<unknown, string>;
|
|
111
|
+
declare const createQuery: <S extends Schema, const R extends keyof S | CustomColumn<unknown, string>>(createQueryData: (params: string[]) => Result<QueryData, string>) => Query<S, R>;
|
|
112
|
+
export { createEntity, defaultCustomQueryBuilder, createSelectQuery, createInsertQuery, createUpdateQuery, createDeleteQuery, createJoinSelectEntity, createJoinSelectQuery, getTableDataOfJoinSelectColumn, createQuery };
|
|
113
|
+
export type { By, Order, CustomQueryBuilder, SelectOptions, InsertOptions, InsertingRow, UpdateSets, JoinType, TableWithAlias, JoinData, SchemaMapKeys, SchemaMapContexts, PrefixAliasOnSchema, JoinEntity, JoinSelectOptions, JoinBy, JoinOrder, OrderDirection, Mode, CustomColumn, NullableAndDefaultColumns, Query, QueryData, QueryResult, QueryResultRow, ReturningRow };
|
|
114
|
+
//# sourceMappingURL=entity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/entity.ts"],"names":[],"mappings":"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"}
|