@mrnafisia/type-query 4.0.5 → 4.0.7

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 (46) hide show
  1. package/package.json +1 -1
  2. package/dist/prd.tsconfig.tsbuildinfo +0 -1
  3. package/dist/src/Table.d.ts +0 -150
  4. package/dist/src/Table.d.ts.map +0 -1
  5. package/dist/src/Table.js +0 -6
  6. package/dist/src/Table.js.map +0 -1
  7. package/dist/src/context.d.ts +0 -90
  8. package/dist/src/context.d.ts.map +0 -1
  9. package/dist/src/context.js +0 -84
  10. package/dist/src/context.js.map +0 -1
  11. package/dist/src/createModelParser.d.ts +0 -47
  12. package/dist/src/createModelParser.d.ts.map +0 -1
  13. package/dist/src/createModelParser.js +0 -339
  14. package/dist/src/createModelParser.js.map +0 -1
  15. package/dist/src/ddl.d.ts +0 -22
  16. package/dist/src/ddl.d.ts.map +0 -1
  17. package/dist/src/ddl.js +0 -92
  18. package/dist/src/ddl.js.map +0 -1
  19. package/dist/src/entity.d.ts +0 -114
  20. package/dist/src/entity.d.ts.map +0 -1
  21. package/dist/src/entity.js +0 -543
  22. package/dist/src/entity.js.map +0 -1
  23. package/dist/src/index.d.ts +0 -10
  24. package/dist/src/index.d.ts.map +0 -1
  25. package/dist/src/index.js +0 -70
  26. package/dist/src/index.js.map +0 -1
  27. package/dist/src/keywords.d.ts +0 -158
  28. package/dist/src/keywords.d.ts.map +0 -1
  29. package/dist/src/keywords.js +0 -187
  30. package/dist/src/keywords.js.map +0 -1
  31. package/dist/src/resolve.d.ts +0 -15
  32. package/dist/src/resolve.d.ts.map +0 -1
  33. package/dist/src/resolve.js +0 -599
  34. package/dist/src/resolve.js.map +0 -1
  35. package/dist/src/testTransaction.d.ts +0 -23
  36. package/dist/src/testTransaction.d.ts.map +0 -1
  37. package/dist/src/testTransaction.js +0 -115
  38. package/dist/src/testTransaction.js.map +0 -1
  39. package/dist/src/transaction.d.ts +0 -6
  40. package/dist/src/transaction.d.ts.map +0 -1
  41. package/dist/src/transaction.js +0 -28
  42. package/dist/src/transaction.js.map +0 -1
  43. package/dist/src/utils.d.ts +0 -62
  44. package/dist/src/utils.d.ts.map +0 -1
  45. package/dist/src/utils.js +0 -86
  46. package/dist/src/utils.js.map +0 -1
@@ -1,339 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"createModelParser.js","sourceRoot":"","sources":["../../src/createModelParser.ts"],"names":[],"mappings":"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"}
package/dist/src/ddl.d.ts DELETED
@@ -1,22 +0,0 @@
1
- import { Table, Schema } from './Table';
2
- declare const generateCreateSequencesSQL: (table: Table<Schema>, { applyIfNotExist, owner }?: {
3
- applyIfNotExist?: boolean;
4
- owner?: string;
5
- }) => string[];
6
- declare const generateDropSequencesSQL: (table: Table<Schema>, { applyIfExist }?: {
7
- applyIfExist?: boolean;
8
- }) => string[];
9
- declare const generateCreateTableSQL: (table: Table<Schema>, { applyIfNotExist, isTemp, owner }?: {
10
- applyIfNotExist?: boolean;
11
- isTemp?: boolean;
12
- owner?: string;
13
- }) => string;
14
- declare const generateDropTableSQL: (table: Table<Schema>, { 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
@@ -1 +0,0 @@
1
- {"version":3,"file":"ddl.d.ts","sourceRoot":"","sources":["../../src/ddl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAqB,MAAM,EAAE,MAAM,SAAS,CAAC;AAE3D,QAAA,MAAM,0BAA0B,UACrB,KAAK,CAAC,MAAM,CAAC,+BAIjB;IAAE,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,aAmCnD,CAAC;AAEF,QAAA,MAAM,wBAAwB,UACnB,KAAK,CAAC,MAAM,CAAC,qBACM;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,aAgBvD,CAAC;AAEF,QAAA,MAAM,sBAAsB,UACjB,KAAK,CAAC,MAAM,CAAC,uCAKjB;IAAE,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,WA8ErE,CAAC;AAEF,QAAA,MAAM,oBAAoB,UACf,KAAK,CAAC,MAAM,CAAC,qBACM;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,WAEqC,CAAC;AAE9F,QAAA,MAAM,eAAe,eACL,MAAM,aACP,MAAM,aACN,MAAM,UACT;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 DELETED
@@ -1,92 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"ddl.js","sourceRoot":"","sources":["../../src/ddl.ts"],"names":[],"mappings":";;;AAAA,yCAAwC;AAGxC,MAAM,0BAA0B,GAAG,CAC/B,KAAoB,EACpB,EACI,eAAe,GAAG,KAAK,EACvB,KAAK,KAC0C,EAAE,EACvD,EAAE;IACA,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,IACK,MAAgE;aAC5D,YAAY,EAAE,CAAC,CAAC,CAAC,KAAK,gBAAgB,EAC7C,CAAC;YACC,SAAS;QACb,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACnC,IAAI,eAAe,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,CAAC,IAAI,CACP,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,CAClE,CAAC;QAEF,QAAQ,MAAM,CAAC,IAAuB,EAAE,CAAC;YACrC,KAAK,MAAM;gBACP,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC3B,MAAM;YACV,KAAK,MAAM;gBACP,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC1B,MAAM;QACd,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAiIE,gEAA0B;AA/H9B,MAAM,wBAAwB,GAAG,CAC7B,KAAoB,EACpB,EAAE,YAAY,GAAG,KAAK,KAAiC,EAAE,EAC3D,EAAE;IACA,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,IACK,MAAgE;aAC5D,YAAY,EAAE,CAAC,CAAC,CAAC,KAAK,gBAAgB,EAC7C,CAAC;YACC,SAAS;QACb,CAAC;QAED,OAAO,CAAC,IAAI,CACR,QAAQ,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,CACxH,CAAC;IACN,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AA8GE,4DAAwB;AA5G5B,MAAM,sBAAsB,GAAG,CAC3B,KAAoB,EACpB,EACI,eAAe,GAAG,KAAK,EACvB,MAAM,GAAG,KAAK,EACd,KAAK,KAC4D,EAAE,EACzE,EAAE;IAEA,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE;QACnD,MAAM,MAAM,GAAG;YACX,IAAI,MAAM,CAAC,KAAK,IAAI,GAAG,IAAI;gBACvB,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC3D,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CACjB,SAAS,CAAC,MAAM,EAChB,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CACzB;oBACH,CAAC,CAAC,qBAAU,CAAC,YAAY,CACnB,MAAM,CAAC,IAA4C,CACtD,CAAC;SACf,CAAC;QAGF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,YAAY,GACd,MAQH,CAAC,YAAY,CAAC;YACf,QAAQ,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtB,KAAK,gBAAgB;oBACjB,MAAM,CAAC,IAAI,CACP,oBAAoB,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,cAAc,CACpG,CAAC;oBACF,MAAM;gBACV,KAAK,KAAK;oBACN,MAAM,CAAC,IAAI,CAAC,WAAW,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC1C,MAAM;YACd,CAAC;QACL,CAAC;QAGD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAGnD,MAAM,SAAS,GAAG,MAAM,CAAC,SAA6C,CAAC;QACvE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CACP,eAAe,SAAS,CAAC,KAAK,CAAC,UAAU,MAAM,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG;gBACvE,KACI,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK;oBAC/C,SAAS,CAAC,MACd,KAAK;gBACL,aACI,qBAAU,CAAC,eAAe,CACtB,SAAS,CAAC,QAAQ,IAAI,WAAW,CAEzC,cAAc,qBAAU,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,IAAI,WAAW,CAAC,EAAE,CACpF,CAAC;QACN,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAGH,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CACvC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CACrD,CAAC;IACF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,WAAW,CAAC,IAAI,CACZ,eAAe,KAAK,CAAC,SAAS,oBAAoB,WAAW;aACxD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,IAAI,GAAG,GAAG,CAAC;aAClD,IAAI,CAAC,IAAI,CAAC,GAAG,CACrB,CAAC;IACN,CAAC;IAED,OAAO,UAAU,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,UAAU,MAAM,KAAK,CAAC,SAAS,KAAK,CAAC,GAAG,OAAO,EAAE,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACzO,CAAC,CAAC;AAyBE,wDAAsB;AAvB1B,MAAM,oBAAoB,GAAG,CACzB,KAAoB,EACpB,EAAE,YAAY,GAAG,KAAK,KAAiC,EAAE,EAC3D,EAAE,CACA,cAAc,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,UAAU,MAAM,KAAK,CAAC,SAAS,GAAG,CAAC;AAoB1F,oDAAoB;AAlBxB,MAAM,eAAe,GAAG,CACpB,UAAkB,EAClB,SAAiB,EACjB,SAAiB,EACjB,MAGC,EACH,EAAE,CACA,IAAI,UAAU,KAAK;IACnB,CAAC,MAAM,CAAC,aAAa;QACjB,SAAS,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC,GAAG,MAAM,CAAC;IAC3D,GAAG,CAAC;AAOJ,0CAAe"}
@@ -1,114 +0,0 @@
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<Schema>;
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/entity.ts"],"names":[],"mappings":"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"}