typesql-cli 0.21.0 → 0.21.2
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/cli.js +2 -1
- package/cli.js.map +1 -1
- package/codegen/code-generator.d.ts.map +1 -1
- package/codegen/code-generator.js +2 -1
- package/codegen/code-generator.js.map +1 -1
- package/codegen/mysql2.d.ts +2 -28
- package/codegen/mysql2.d.ts.map +1 -1
- package/codegen/mysql2.js +12 -71
- package/codegen/mysql2.js.map +1 -1
- package/codegen/pg.d.ts +0 -2
- package/codegen/pg.d.ts.map +1 -1
- package/codegen/pg.js +36 -89
- package/codegen/pg.js.map +1 -1
- package/codegen/shared/codegen-util.d.ts +47 -3
- package/codegen/shared/codegen-util.d.ts.map +1 -1
- package/codegen/shared/codegen-util.js +188 -4
- package/codegen/shared/codegen-util.js.map +1 -1
- package/codegen/sqlite.d.ts +2 -4
- package/codegen/sqlite.d.ts.map +1 -1
- package/codegen/sqlite.js +20 -99
- package/codegen/sqlite.js.map +1 -1
- package/dialects/postgres.js +1 -1
- package/dialects/postgres.js.map +1 -1
- package/drivers/sqlite.js +1 -1
- package/drivers/sqlite.js.map +1 -1
- package/mysql-query-analyzer/select-columns.d.ts.map +1 -1
- package/mysql-query-analyzer/select-columns.js +1 -1
- package/mysql-query-analyzer/select-columns.js.map +1 -1
- package/mysql-query-analyzer/types.d.ts +3 -0
- package/mysql-query-analyzer/types.d.ts.map +1 -1
- package/package.json +13 -12
- package/postgres-query-analyzer/describe.d.ts.map +1 -1
- package/postgres-query-analyzer/describe.js +9 -5
- package/postgres-query-analyzer/describe.js.map +1 -1
- package/postgres-query-analyzer/traverse.js +5 -5
- package/postgres-query-analyzer/traverse.js.map +1 -1
- package/postgres-query-analyzer/types.d.ts +1 -0
- package/postgres-query-analyzer/types.d.ts.map +1 -1
- package/sqlite-query-analyzer/parser.js +3 -0
- package/sqlite-query-analyzer/parser.js.map +1 -1
- package/sqlite-query-analyzer/sqlite-describe-nested-query.d.ts +1 -0
- package/sqlite-query-analyzer/sqlite-describe-nested-query.d.ts.map +1 -1
- package/sqlite-query-analyzer/sqlite-describe-nested-query.js.map +1 -1
- package/sqlite-query-analyzer/traverse.d.ts.map +1 -1
- package/sqlite-query-analyzer/traverse.js +5 -2
- package/sqlite-query-analyzer/traverse.js.map +1 -1
package/codegen/pg.js
CHANGED
@@ -1,20 +1,14 @@
|
|
1
1
|
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
3
|
exports.generateCode = generateCode;
|
7
|
-
exports.createCodeBlockWriter = createCodeBlockWriter;
|
8
4
|
exports.generateCrud = generateCrud;
|
9
|
-
const
|
10
|
-
const mysql2_1 = require("./mysql2");
|
5
|
+
const codegen_util_1 = require("./shared/codegen-util");
|
11
6
|
const describe_1 = require("../postgres-query-analyzer/describe");
|
12
7
|
const postgres_1 = require("../dialects/postgres");
|
13
8
|
const neverthrow_1 = require("neverthrow");
|
14
9
|
const sqlite_1 = require("./sqlite");
|
15
10
|
const ts_nested_descriptor_1 = require("../ts-nested-descriptor");
|
16
|
-
const
|
17
|
-
const codegen_util_1 = require("./shared/codegen-util");
|
11
|
+
const codegen_util_2 = require("./shared/codegen-util");
|
18
12
|
function generateCode(client, sql, queryName, schemaInfo) {
|
19
13
|
if (isEmptySql(sql)) {
|
20
14
|
return (0, neverthrow_1.okAsync)('');
|
@@ -32,34 +26,19 @@ function isEmptySql(sql) {
|
|
32
26
|
function _describeQuery(databaseClient, sql, dbSchema) {
|
33
27
|
return (0, describe_1.describeQuery)(databaseClient.client, sql, dbSchema);
|
34
28
|
}
|
35
|
-
function createCodeBlockWriter() {
|
36
|
-
const writer = new code_block_writer_1.default({
|
37
|
-
useTabs: true,
|
38
|
-
newLine: node_os_1.EOL
|
39
|
-
});
|
40
|
-
return writer;
|
41
|
-
}
|
42
29
|
function generateTsCode(queryName, schemaDef, client) {
|
43
30
|
const { sql } = schemaDef;
|
44
|
-
const writer = createCodeBlockWriter();
|
45
|
-
const camelCaseName = (0,
|
46
|
-
const capitalizedName = (0, mysql2_1.capitalize)(camelCaseName);
|
47
|
-
const dataTypeName = `${capitalizedName}Data`;
|
48
|
-
const resultTypeName = `${capitalizedName}Result`;
|
49
|
-
const paramsTypeName = `${capitalizedName}Params`;
|
50
|
-
const orderByTypeName = `${capitalizedName}OrderBy`;
|
51
|
-
const dynamicParamsTypeName = `${capitalizedName}DynamicParams`;
|
52
|
-
const selectColumnsTypeName = `${capitalizedName}Select`;
|
53
|
-
const whereTypeName = `${capitalizedName}Where`;
|
31
|
+
const writer = (0, codegen_util_1.createCodeBlockWriter)();
|
32
|
+
const { camelCaseName, capitalizedName, dataTypeName, resultTypeName, paramsTypeName, orderByTypeName, dynamicParamsTypeName, selectColumnsTypeName, whereTypeName } = (0, codegen_util_1.createTypeNames)(queryName);
|
54
33
|
const tsDescriptor = createTsDescriptor(capitalizedName, schemaDef);
|
55
|
-
const uniqueParams = (0,
|
34
|
+
const uniqueParams = (0, codegen_util_1.removeDuplicatedParameters2)(tsDescriptor.parameters);
|
56
35
|
const generateOrderBy = tsDescriptor.orderByColumns != null && tsDescriptor.orderByColumns.length > 0;
|
57
36
|
const codeWriter = getCodeWriter(client);
|
58
37
|
codeWriter.writeImports(writer, schemaDef.queryType);
|
59
38
|
if (tsDescriptor.dynamicQuery2) {
|
60
39
|
writer.writeLine(`import { EOL } from 'os';`);
|
61
40
|
}
|
62
|
-
const uniqueDataParams = (0,
|
41
|
+
const uniqueDataParams = (0, codegen_util_1.removeDuplicatedParameters2)(tsDescriptor.data || []);
|
63
42
|
if (uniqueDataParams.length > 0) {
|
64
43
|
writer.blankLine();
|
65
44
|
writeDataType(writer, dataTypeName, uniqueDataParams);
|
@@ -68,16 +47,7 @@ function generateTsCode(queryName, schemaDef, client) {
|
|
68
47
|
const orderByField = tsDescriptor.orderByColumns != null && tsDescriptor.orderByColumns.length > 0 ? 'orderBy' : '';
|
69
48
|
if (dynamicQueryInfo) {
|
70
49
|
writer.blankLine();
|
71
|
-
|
72
|
-
writer.writeLine(`select?: ${selectColumnsTypeName};`);
|
73
|
-
if (tsDescriptor.parameters.length > 0) {
|
74
|
-
writer.writeLine(`params: ${paramsTypeName};`);
|
75
|
-
}
|
76
|
-
writer.writeLine(`where?: ${whereTypeName}[];`);
|
77
|
-
if (orderByField) {
|
78
|
-
writer.writeLine(`${orderByField}: ${orderByTypeName}[];`);
|
79
|
-
}
|
80
|
-
});
|
50
|
+
(0, codegen_util_1.writeDynamicQueryParamType)(writer, queryName, uniqueParams.length > 0, orderByField);
|
81
51
|
}
|
82
52
|
if (uniqueParams.length > 0 || (orderByField && !dynamicQueryInfo)) {
|
83
53
|
writer.blankLine();
|
@@ -100,15 +70,9 @@ function generateTsCode(queryName, schemaDef, client) {
|
|
100
70
|
});
|
101
71
|
});
|
102
72
|
writer.blankLine();
|
103
|
-
|
104
|
-
dynamicQueryInfo.select.forEach((fragment, index) => {
|
105
|
-
const field = tsDescriptor.columns[index].name;
|
106
|
-
writer.writeLine(`${field}: \`${fragment.fragmentWitoutAlias}\`,`);
|
107
|
-
});
|
108
|
-
});
|
109
|
-
writer.write(' as const;');
|
73
|
+
(0, codegen_util_1.writeSelectFragements)(writer, dynamicQueryInfo.select, tsDescriptor.columns);
|
110
74
|
writer.blankLine();
|
111
|
-
(0,
|
75
|
+
(0, codegen_util_2.writeDynamicQueryOperators)(writer, whereTypeName, tsDescriptor.columns);
|
112
76
|
writer.blankLine();
|
113
77
|
let functionArguments = 'client: pg.Client | pg.Pool | pg.PoolClient';
|
114
78
|
// if (params.data.length > 0) {
|
@@ -123,17 +87,17 @@ function generateTsCode(queryName, schemaDef, client) {
|
|
123
87
|
writer.indent().write(`.then(res => res.rows.map(row => mapArrayTo${resultTypeName}(row, params?.select)));`);
|
124
88
|
});
|
125
89
|
writer.blankLine();
|
126
|
-
(0,
|
90
|
+
(0, codegen_util_2.writeBuildSqlFunction)(writer, {
|
127
91
|
dynamicParamsTypeName,
|
128
92
|
columns: tsDescriptor.columns,
|
129
93
|
parameters: tsDescriptor.parameters,
|
130
94
|
dynamicQueryInfo,
|
131
|
-
|
95
|
+
dialect: 'postgres',
|
132
96
|
hasOrderBy: tsDescriptor.orderByColumns != null,
|
133
97
|
toDrive: (variable, param) => `${variable}.${param.name}`
|
134
98
|
});
|
135
99
|
writer.blankLine();
|
136
|
-
(0,
|
100
|
+
(0, codegen_util_2.writeMapToResultFunction)(writer, {
|
137
101
|
columns: tsDescriptor.columns,
|
138
102
|
resultTypeName,
|
139
103
|
selectColumnsTypeName,
|
@@ -146,32 +110,17 @@ function generateTsCode(queryName, schemaDef, client) {
|
|
146
110
|
writer.writeLine('values: any[];');
|
147
111
|
});
|
148
112
|
writer.blankLine();
|
149
|
-
(0,
|
113
|
+
(0, codegen_util_2.writeWhereConditionFunction)(writer, whereTypeName, tsDescriptor.columns);
|
150
114
|
if (tsDescriptor.orderByColumns != null) {
|
151
115
|
writer.blankLine();
|
152
|
-
(0,
|
116
|
+
(0, codegen_util_2.writeOrderByToObjectFunction)(writer, dynamicParamsTypeName);
|
153
117
|
writer.blankLine();
|
154
|
-
(0,
|
118
|
+
(0, codegen_util_2.writeBuildOrderByBlock)(writer, tsDescriptor.orderByColumns, orderByTypeName);
|
155
119
|
}
|
156
120
|
}
|
157
121
|
if (tsDescriptor.nestedDescriptor2) {
|
158
|
-
const relations = tsDescriptor.nestedDescriptor2;
|
159
|
-
|
160
|
-
const relationType = (0, mysql2_1.generateRelationType)(capitalizedName, relation.name);
|
161
|
-
writer.blankLine();
|
162
|
-
writer.write(`export type ${relationType} = `).block(() => {
|
163
|
-
const uniqueNameFields = (0, mysql2_1.renameInvalidNames)(relation.fields.map((f) => f.name));
|
164
|
-
relation.fields.forEach((field, index) => {
|
165
|
-
const nullable = field.notNull ? '' : ' | null';
|
166
|
-
writer.writeLine(`${uniqueNameFields[index]}: ${field.tsType}${nullable};`);
|
167
|
-
});
|
168
|
-
relation.relations.forEach((field) => {
|
169
|
-
const nestedRelationType = (0, mysql2_1.generateRelationType)(capitalizedName, field.tsType);
|
170
|
-
const nullable = field.notNull ? '' : ' | null';
|
171
|
-
writer.writeLine(`${field.name}: ${nestedRelationType}${nullable};`);
|
172
|
-
});
|
173
|
-
});
|
174
|
-
});
|
122
|
+
const relations = tsDescriptor.nestedDescriptor2 || [];
|
123
|
+
(0, codegen_util_1.writeNestedTypes)(writer, relations, capitalizedName);
|
175
124
|
}
|
176
125
|
if (!dynamicQueryInfo) {
|
177
126
|
writer.blankLine();
|
@@ -197,19 +146,10 @@ function generateTsCode(queryName, schemaDef, client) {
|
|
197
146
|
if (tsDescriptor.nestedDescriptor2) {
|
198
147
|
const relations = tsDescriptor.nestedDescriptor2;
|
199
148
|
relations.forEach((relation) => {
|
200
|
-
(0,
|
149
|
+
(0, codegen_util_1.writeCollectFunction)(writer, relation, tsDescriptor.columns, capitalizedName, resultTypeName);
|
201
150
|
});
|
202
151
|
writer.blankLine();
|
203
|
-
|
204
|
-
writer
|
205
|
-
.write('return array.reduce((map, value, index, array) => ')
|
206
|
-
.inlineBlock(() => {
|
207
|
-
writer.writeLine('const key = predicate(value, index, array);');
|
208
|
-
writer.writeLine('map.get(key)?.push(value) ?? map.set(key, [value]);');
|
209
|
-
writer.writeLine('return map;');
|
210
|
-
})
|
211
|
-
.write(', new Map<Q, T[]>());');
|
212
|
-
});
|
152
|
+
(0, codegen_util_1.writeGroupByFunction)(writer);
|
213
153
|
}
|
214
154
|
return writer.toString();
|
215
155
|
}
|
@@ -275,7 +215,7 @@ function writeResultType(writer, resultTypeName, columns) {
|
|
275
215
|
});
|
276
216
|
}
|
277
217
|
function createJsonType(capitalizedName, columnName) {
|
278
|
-
const jsonType = (0,
|
218
|
+
const jsonType = (0, codegen_util_1.capitalize)((0, codegen_util_1.convertToCamelCaseName)(columnName));
|
279
219
|
const fullName = `${capitalizedName}${jsonType}`;
|
280
220
|
return fullName;
|
281
221
|
}
|
@@ -406,6 +346,8 @@ const postgresCodeWriter = {
|
|
406
346
|
};
|
407
347
|
function _writeCopyFunction(writer, params) {
|
408
348
|
const { functionName, paramsType } = params;
|
349
|
+
writer.writeLine(`const columns = [${params.parameters.map(param => `'${param.name}'`).join(', ')}] as const;`);
|
350
|
+
writer.blankLine();
|
409
351
|
let functionParams = `client: pg.Client | pg.PoolClient, values: ${paramsType}[]`;
|
410
352
|
writer.write(`export async function ${functionName}(${functionParams}): Promise<void>`).block(() => {
|
411
353
|
writeSql(writer, params.sql);
|
@@ -419,7 +361,7 @@ function _writeCopyFunction(writer, params) {
|
|
419
361
|
writer.write(`function jsonToCsv(values: ${paramsType}[]): string`).block(() => {
|
420
362
|
writer.writeLine('return values');
|
421
363
|
writer.indent().write('.map(value =>').newLine();
|
422
|
-
writer.indent(2).write('
|
364
|
+
writer.indent(2).write('columns.map(col => value[col])').newLine();
|
423
365
|
writer.indent(3).write('.map(val => escapeValue(val))').newLine();
|
424
366
|
writer.indent(3).write(`.join(',')`).newLine();
|
425
367
|
writer.indent().write(')').newLine();
|
@@ -427,7 +369,12 @@ function _writeCopyFunction(writer, params) {
|
|
427
369
|
});
|
428
370
|
writer.blankLine();
|
429
371
|
writer.write(`function escapeValue(val: any): string`).block(() => {
|
430
|
-
writer.
|
372
|
+
writer.write('if (val == null)').block(() => {
|
373
|
+
writer.writeLine(`return '';`);
|
374
|
+
});
|
375
|
+
writer.writeLine('const str = String(val);');
|
376
|
+
writer.writeLine(`const escaped = str.replace(/"/g, '""');`);
|
377
|
+
writer.writeLine('return `"${escaped}"`;');
|
431
378
|
});
|
432
379
|
}
|
433
380
|
function _writeExecFunction(writer, params) {
|
@@ -503,11 +450,11 @@ function _writeExecFunction(writer, params) {
|
|
503
450
|
});
|
504
451
|
if (orderByColumns.length > 0) {
|
505
452
|
writer.blankLine();
|
506
|
-
(0,
|
453
|
+
(0, codegen_util_2.writeBuildOrderByBlock)(writer, orderByColumns, orderByTypeName);
|
507
454
|
}
|
508
455
|
if (generateNested) {
|
509
456
|
writer.blankLine();
|
510
|
-
const relationType = (0,
|
457
|
+
const relationType = (0, codegen_util_1.generateRelationType)(functionName, nestedType);
|
511
458
|
writer.write(`export async function ${functionName}Nested(${functionParams}): Promise<${relationType}[]>`).block(() => {
|
512
459
|
const params = parameters.length > 0 ? ', params' : '';
|
513
460
|
writer.writeLine(`const selectResult = await ${functionName}(client${params});`);
|
@@ -529,7 +476,7 @@ function writeSql(writer, sql) {
|
|
529
476
|
function getColumnsForQuery(capitalizedName, schemaDef) {
|
530
477
|
if (schemaDef.queryType === 'Select' || schemaDef.returning) {
|
531
478
|
const columns = schemaDef.columns.map(col => mapColumnInfoToTsFieldDescriptor(capitalizedName, col, schemaDef.dynamicSqlQuery2 != null));
|
532
|
-
const escapedColumnsNames = (0,
|
479
|
+
const escapedColumnsNames = (0, codegen_util_1.renameInvalidNames)(schemaDef.columns.map((col) => col.name));
|
533
480
|
return columns.map((col, index) => (Object.assign(Object.assign({}, col), { name: escapedColumnsNames[index] })));
|
534
481
|
}
|
535
482
|
if (schemaDef.queryType === 'Copy') {
|
@@ -567,12 +514,12 @@ function isList(param) {
|
|
567
514
|
}
|
568
515
|
function generateCrud(queryType, tableName, dbSchema) {
|
569
516
|
const queryName = (0, sqlite_1.getQueryName)(queryType, tableName);
|
570
|
-
const camelCaseName = (0,
|
571
|
-
const capitalizedName = (0,
|
517
|
+
const camelCaseName = (0, codegen_util_1.convertToCamelCaseName)(queryName);
|
518
|
+
const capitalizedName = (0, codegen_util_1.capitalize)(camelCaseName);
|
572
519
|
const dataTypeName = `${capitalizedName}Data`;
|
573
520
|
const resultTypeName = `${capitalizedName}Result`;
|
574
521
|
const paramsTypeName = `${capitalizedName}Params`;
|
575
|
-
const writer = createCodeBlockWriter();
|
522
|
+
const writer = (0, codegen_util_1.createCodeBlockWriter)();
|
576
523
|
const allColumns = dbSchema.filter((col) => col.table === tableName);
|
577
524
|
const keyColumns = allColumns.filter((col) => col.column_key === 'PRI');
|
578
525
|
if (keyColumns.length === 0) {
|
@@ -745,7 +692,7 @@ function mapPostgrsFieldToTsField(columns, field) {
|
|
745
692
|
name: field.name,
|
746
693
|
index: field.index,
|
747
694
|
tsType: postgres_1.mapper.mapColumnType(columns[field.index].type),
|
748
|
-
notNull: columns[field.index].
|
695
|
+
notNull: columns[field.index].intrinsicNotNull
|
749
696
|
};
|
750
697
|
return tsField;
|
751
698
|
}
|
package/codegen/pg.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pg.js","sourceRoot":"","sources":["../../../src/codegen/pg.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"pg.js","sourceRoot":"","sources":["../../../src/codegen/pg.ts"],"names":[],"mappings":"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"}
|
@@ -1,8 +1,49 @@
|
|
1
1
|
import CodeBlockWriter from 'code-block-writer';
|
2
|
-
import { TsFieldDescriptor, TsParameterDescriptor } from '../../types';
|
3
|
-
import { DynamicSqlInfoResult2 } from '../../mysql-query-analyzer/types';
|
2
|
+
import { CamelCaseName, QueryType, TsFieldDescriptor, TsParameterDescriptor } from '../../types';
|
3
|
+
import { DynamicSqlInfoResult, DynamicSqlInfoResult2, SelectFragmentResult } from '../../mysql-query-analyzer/types';
|
4
|
+
import { NestedTsDescriptor, RelationType2 } from '../../ts-nested-descriptor';
|
5
|
+
export type TsDescriptor = {
|
6
|
+
sql: string;
|
7
|
+
queryType: QueryType;
|
8
|
+
returning?: true;
|
9
|
+
multipleRowsResult: boolean;
|
10
|
+
columns: TsFieldDescriptor[];
|
11
|
+
parameterNames: ParamInfo[];
|
12
|
+
parameters: TsParameterDescriptor[];
|
13
|
+
data?: TsParameterDescriptor[];
|
14
|
+
orderByColumns?: string[];
|
15
|
+
nestedDescriptor?: NestedTsDescriptor;
|
16
|
+
nestedDescriptor2?: RelationType2[];
|
17
|
+
dynamicQuery?: DynamicSqlInfoResult;
|
18
|
+
dynamicQuery2?: DynamicSqlInfoResult2;
|
19
|
+
};
|
20
|
+
export type ParamInfo = {
|
21
|
+
name: string;
|
22
|
+
isList: boolean;
|
23
|
+
};
|
24
|
+
export type TypeNames = {
|
25
|
+
camelCaseName: string;
|
26
|
+
capitalizedName: string;
|
27
|
+
dataTypeName: string;
|
28
|
+
resultTypeName: string;
|
29
|
+
paramsTypeName: string;
|
30
|
+
orderByTypeName: string;
|
31
|
+
dynamicParamsTypeName: string;
|
32
|
+
selectColumnsTypeName: string;
|
33
|
+
whereTypeName: string;
|
34
|
+
};
|
35
|
+
export declare function createCodeBlockWriter(): CodeBlockWriter;
|
36
|
+
export declare function capitalize(name: CamelCaseName): string;
|
37
|
+
export declare function convertToCamelCaseName(name: string): CamelCaseName;
|
38
|
+
export declare function createTypeNames(queryName: string): TypeNames;
|
39
|
+
export declare function generateRelationType(functionName: string, relationName: string): string;
|
40
|
+
export declare function removeDuplicatedParameters2(parameters: TsFieldDescriptor[]): TsFieldDescriptor[];
|
41
|
+
export declare function renameInvalidNames(columnNames: string[]): string[];
|
42
|
+
export declare function escapeInvalidTsField(columnName: string): string;
|
4
43
|
export declare function hasStringColumn(columns: TsFieldDescriptor[]): boolean;
|
5
44
|
export declare function writeBuildOrderByBlock(writer: CodeBlockWriter, orderByColumns: string[], orderByTypeName: string): void;
|
45
|
+
export declare function writeDynamicQueryParamType(writer: CodeBlockWriter, queryName: string, hasParams: boolean, orderByField: string | undefined): void;
|
46
|
+
export declare function writeSelectFragements(writer: CodeBlockWriter, selectFragements: SelectFragmentResult[], columns: TsFieldDescriptor[]): void;
|
6
47
|
export declare function writeDynamicQueryOperators(writer: CodeBlockWriter, whereTypeName: string, columns: TsFieldDescriptor[]): void;
|
7
48
|
export declare function writeWhereConditionFunction(writer: CodeBlockWriter, whereTypeName: string, columns: TsFieldDescriptor[]): void;
|
8
49
|
export declare function writeWhereConditionsToObjectFunction(writer: CodeBlockWriter, whereTypeName: string): void;
|
@@ -11,7 +52,7 @@ export type BuildSqlFunction = {
|
|
11
52
|
dynamicQueryInfo: DynamicSqlInfoResult2;
|
12
53
|
columns: TsFieldDescriptor[];
|
13
54
|
parameters: TsParameterDescriptor[];
|
14
|
-
|
55
|
+
dialect: 'sqlite' | 'postgres';
|
15
56
|
hasOrderBy: boolean;
|
16
57
|
toDrive: (variable: string, param: TsParameterDescriptor) => string;
|
17
58
|
};
|
@@ -24,5 +65,8 @@ type MapToResultParameters = {
|
|
24
65
|
};
|
25
66
|
export declare function writeMapToResultFunction(writer: CodeBlockWriter, params: MapToResultParameters): void;
|
26
67
|
export declare function writeOrderByToObjectFunction(writer: CodeBlockWriter, dynamicParamsTypeName: string): void;
|
68
|
+
export declare function writeNestedTypes(writer: CodeBlockWriter, relations: RelationType2[], captalizedName: string): void;
|
69
|
+
export declare function writeCollectFunction(writer: CodeBlockWriter, relation: RelationType2, columns: TsFieldDescriptor[], capitalizedName: string, resultTypeName: string): void;
|
70
|
+
export declare function writeGroupByFunction(writer: CodeBlockWriter): void;
|
27
71
|
export {};
|
28
72
|
//# sourceMappingURL=codegen-util.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"codegen-util.d.ts","sourceRoot":"","sources":["../../../../src/codegen/shared/codegen-util.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;
|
1
|
+
{"version":3,"file":"codegen-util.d.ts","sourceRoot":"","sources":["../../../../src/codegen/shared/codegen-util.ts"],"names":[],"mappings":"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"}
|