typesql-cli 0.21.0 → 0.21.1

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 (42) hide show
  1. package/cli.js +2 -1
  2. package/cli.js.map +1 -1
  3. package/codegen/code-generator.d.ts.map +1 -1
  4. package/codegen/code-generator.js +2 -1
  5. package/codegen/code-generator.js.map +1 -1
  6. package/codegen/mysql2.d.ts +2 -28
  7. package/codegen/mysql2.d.ts.map +1 -1
  8. package/codegen/mysql2.js +12 -71
  9. package/codegen/mysql2.js.map +1 -1
  10. package/codegen/pg.d.ts +0 -2
  11. package/codegen/pg.d.ts.map +1 -1
  12. package/codegen/pg.js +36 -89
  13. package/codegen/pg.js.map +1 -1
  14. package/codegen/shared/codegen-util.d.ts +47 -3
  15. package/codegen/shared/codegen-util.d.ts.map +1 -1
  16. package/codegen/shared/codegen-util.js +188 -4
  17. package/codegen/shared/codegen-util.js.map +1 -1
  18. package/codegen/sqlite.d.ts +2 -4
  19. package/codegen/sqlite.d.ts.map +1 -1
  20. package/codegen/sqlite.js +19 -98
  21. package/codegen/sqlite.js.map +1 -1
  22. package/mysql-query-analyzer/select-columns.d.ts.map +1 -1
  23. package/mysql-query-analyzer/select-columns.js +1 -1
  24. package/mysql-query-analyzer/select-columns.js.map +1 -1
  25. package/mysql-query-analyzer/types.d.ts +3 -0
  26. package/mysql-query-analyzer/types.d.ts.map +1 -1
  27. package/package.json +12 -11
  28. package/postgres-query-analyzer/describe.d.ts.map +1 -1
  29. package/postgres-query-analyzer/describe.js +9 -5
  30. package/postgres-query-analyzer/describe.js.map +1 -1
  31. package/postgres-query-analyzer/traverse.js +5 -5
  32. package/postgres-query-analyzer/traverse.js.map +1 -1
  33. package/postgres-query-analyzer/types.d.ts +1 -0
  34. package/postgres-query-analyzer/types.d.ts.map +1 -1
  35. package/sqlite-query-analyzer/parser.js +3 -0
  36. package/sqlite-query-analyzer/parser.js.map +1 -1
  37. package/sqlite-query-analyzer/sqlite-describe-nested-query.d.ts +1 -0
  38. package/sqlite-query-analyzer/sqlite-describe-nested-query.d.ts.map +1 -1
  39. package/sqlite-query-analyzer/sqlite-describe-nested-query.js.map +1 -1
  40. package/sqlite-query-analyzer/traverse.d.ts.map +1 -1
  41. package/sqlite-query-analyzer/traverse.js +5 -2
  42. package/sqlite-query-analyzer/traverse.js.map +1 -1
@@ -1,14 +1,114 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createCodeBlockWriter = createCodeBlockWriter;
7
+ exports.capitalize = capitalize;
8
+ exports.convertToCamelCaseName = convertToCamelCaseName;
9
+ exports.createTypeNames = createTypeNames;
10
+ exports.generateRelationType = generateRelationType;
11
+ exports.removeDuplicatedParameters2 = removeDuplicatedParameters2;
12
+ exports.renameInvalidNames = renameInvalidNames;
13
+ exports.escapeInvalidTsField = escapeInvalidTsField;
3
14
  exports.hasStringColumn = hasStringColumn;
4
15
  exports.writeBuildOrderByBlock = writeBuildOrderByBlock;
16
+ exports.writeDynamicQueryParamType = writeDynamicQueryParamType;
17
+ exports.writeSelectFragements = writeSelectFragements;
5
18
  exports.writeDynamicQueryOperators = writeDynamicQueryOperators;
6
19
  exports.writeWhereConditionFunction = writeWhereConditionFunction;
7
20
  exports.writeWhereConditionsToObjectFunction = writeWhereConditionsToObjectFunction;
8
21
  exports.writeBuildSqlFunction = writeBuildSqlFunction;
9
22
  exports.writeMapToResultFunction = writeMapToResultFunction;
10
23
  exports.writeOrderByToObjectFunction = writeOrderByToObjectFunction;
24
+ exports.writeNestedTypes = writeNestedTypes;
25
+ exports.writeCollectFunction = writeCollectFunction;
26
+ exports.writeGroupByFunction = writeGroupByFunction;
27
+ const code_block_writer_1 = __importDefault(require("code-block-writer"));
11
28
  const os_1 = require("os");
29
+ const camelcase_1 = __importDefault(require("camelcase"));
30
+ function createCodeBlockWriter() {
31
+ const writer = new code_block_writer_1.default({
32
+ useTabs: true,
33
+ newLine: os_1.EOL
34
+ });
35
+ return writer;
36
+ }
37
+ function capitalize(name) {
38
+ return capitalizeStr(name);
39
+ }
40
+ function convertToCamelCaseName(name) {
41
+ const camelCaseStr = (0, camelcase_1.default)(name);
42
+ return camelCaseStr;
43
+ }
44
+ function createTypeNames(queryName) {
45
+ const camelCaseName = convertToCamelCaseName(queryName);
46
+ const capitalizedName = 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`;
54
+ return {
55
+ camelCaseName,
56
+ capitalizedName,
57
+ dataTypeName,
58
+ resultTypeName,
59
+ paramsTypeName,
60
+ orderByTypeName,
61
+ dynamicParamsTypeName,
62
+ selectColumnsTypeName,
63
+ whereTypeName
64
+ };
65
+ }
66
+ function generateRelationType(functionName, relationName) {
67
+ return `${capitalizeStr(functionName)}Nested${capitalizeStr(relationName)}`;
68
+ }
69
+ function capitalizeStr(name) {
70
+ if (name.length === 0)
71
+ return name;
72
+ return name.charAt(0).toUpperCase() + name.slice(1);
73
+ }
74
+ //TODO - remove duplicated code
75
+ function removeDuplicatedParameters2(parameters) {
76
+ const columnsCount = new Map();
77
+ parameters.forEach((param) => {
78
+ const dupParam = columnsCount.get(param.name);
79
+ if (dupParam != null) {
80
+ //duplicated - two parameter null and notNull, resturn the null param (notNull == false)
81
+ if (param.notNull === false) {
82
+ columnsCount.set(param.name, param);
83
+ }
84
+ // return param;
85
+ }
86
+ else {
87
+ columnsCount.set(param.name, param);
88
+ }
89
+ });
90
+ return [...columnsCount.values()];
91
+ }
92
+ function renameInvalidNames(columnNames) {
93
+ const columnsCount = new Map();
94
+ return columnNames.map((columnName) => {
95
+ if (columnsCount.has(columnName)) {
96
+ const count = columnsCount.get(columnName) + 1;
97
+ columnsCount.set(columnName, count);
98
+ const newName = `${columnName}_${count}`;
99
+ return escapeInvalidTsField(newName);
100
+ }
101
+ columnsCount.set(columnName, 1);
102
+ return escapeInvalidTsField(columnName);
103
+ });
104
+ }
105
+ function escapeInvalidTsField(columnName) {
106
+ const validPattern = /^[a-zA-Z0-9_$]+$/g;
107
+ if (!validPattern.test(columnName)) {
108
+ return `"${columnName}"`;
109
+ }
110
+ return columnName;
111
+ }
12
112
  function hasStringColumn(columns) {
13
113
  return columns.some((c) => c.tsType === 'string');
14
114
  }
@@ -39,6 +139,28 @@ function writeBuildOrderByBlock(writer, orderByColumns, orderByTypeName) {
39
139
  writer.indent().write(`.join(', ');`).newLine();
40
140
  });
41
141
  }
142
+ function writeDynamicQueryParamType(writer, queryName, hasParams, orderByField) {
143
+ const { dynamicParamsTypeName, selectColumnsTypeName, paramsTypeName, whereTypeName, orderByTypeName } = createTypeNames(queryName);
144
+ writer.write(`export type ${dynamicParamsTypeName} = `).block(() => {
145
+ writer.writeLine(`select?: ${selectColumnsTypeName};`);
146
+ if (hasParams) {
147
+ writer.writeLine(`params: ${paramsTypeName};`);
148
+ }
149
+ writer.writeLine(`where?: ${whereTypeName}[];`);
150
+ if (orderByField) {
151
+ writer.writeLine(`${orderByField}: ${orderByTypeName}[];`);
152
+ }
153
+ });
154
+ }
155
+ function writeSelectFragements(writer, selectFragements, columns) {
156
+ writer.write('const selectFragments = ').inlineBlock(() => {
157
+ selectFragements.forEach((fragment, index) => {
158
+ const field = columns[index].name;
159
+ writer.writeLine(`${field}: \`${fragment.fragmentWitoutAlias}\`,`);
160
+ });
161
+ });
162
+ writer.write(' as const;');
163
+ }
42
164
  function writeDynamicQueryOperators(writer, whereTypeName, columns) {
43
165
  writer.writeLine(`const NumericOperatorList = ['=', '<>', '>', '<', '>=', '<='] as const;`);
44
166
  writer.writeLine('type NumericOperator = typeof NumericOperatorList[number];');
@@ -117,7 +239,7 @@ function writeWhereConditionsToObjectFunction(writer, whereTypeName) {
117
239
  });
118
240
  }
119
241
  function writeBuildSqlFunction(writer, params) {
120
- const { dynamicParamsTypeName, dynamicQueryInfo, columns, parameters, placeHolderType, hasOrderBy, toDrive } = params;
242
+ const { dynamicParamsTypeName, dynamicQueryInfo, columns, parameters, dialect, hasOrderBy, toDrive } = params;
121
243
  const optional = hasOrderBy ? '' : '?';
122
244
  const paramsVar = parameters.length > 0 ? ', params' : '';
123
245
  writer.write(`function buildSql(queryParams${optional}: ${dynamicParamsTypeName})`).block(() => {
@@ -212,10 +334,16 @@ function writeBuildSqlFunction(writer, params) {
212
334
  writer.writeLine(`paramsValues.push(${paramValues});`);
213
335
  });
214
336
  });
215
- if (placeHolderType === 'questionMark') {
337
+ if (dialect === 'postgres' && (dynamicQueryInfo === null || dynamicQueryInfo === void 0 ? void 0 : dynamicQueryInfo.limitOffset)) {
338
+ dynamicQueryInfo === null || dynamicQueryInfo === void 0 ? void 0 : dynamicQueryInfo.limitOffset.parameters.forEach((param) => {
339
+ writer.writeLine(`paramsValues.push(params?.${param} ?? null);`);
340
+ });
341
+ writer.blankLine();
342
+ }
343
+ if (dialect === 'sqlite') {
216
344
  writer.writeLine(`const placeholder = () => '?';`);
217
345
  }
218
- else if (placeHolderType === 'numbered') {
346
+ else if (dialect === 'postgres') {
219
347
  writer.writeLine(`let currentIndex = paramsValues.length;`);
220
348
  writer.writeLine('const placeholder = () => `$${++currentIndex}`;');
221
349
  }
@@ -266,7 +394,7 @@ function writeBuildSqlFunction(writer, params) {
266
394
  writer.indent().write(`${limitOffset.fragment}`);
267
395
  }
268
396
  writer.write('`;');
269
- if (dynamicQueryInfo === null || dynamicQueryInfo === void 0 ? void 0 : dynamicQueryInfo.limitOffset) {
397
+ if (dialect === 'sqlite' && (dynamicQueryInfo === null || dynamicQueryInfo === void 0 ? void 0 : dynamicQueryInfo.limitOffset)) {
270
398
  writer.blankLine();
271
399
  dynamicQueryInfo === null || dynamicQueryInfo === void 0 ? void 0 : dynamicQueryInfo.limitOffset.parameters.forEach((param) => {
272
400
  writer.writeLine(`paramsValues.push(params?.${param} ?? null);`);
@@ -300,4 +428,60 @@ function writeOrderByToObjectFunction(writer, dynamicParamsTypeName) {
300
428
  writer.writeLine('return obj;');
301
429
  });
302
430
  }
431
+ function writeNestedTypes(writer, relations, captalizedName) {
432
+ relations.forEach((relation) => {
433
+ const relationType = generateRelationType(captalizedName, relation.name);
434
+ writer.blankLine();
435
+ writer.write(`export type ${relationType} = `).block(() => {
436
+ const uniqueNameFields = renameInvalidNames(relation.fields.map((f) => f.name));
437
+ relation.fields.forEach((field, index) => {
438
+ const nullable = field.notNull ? '' : ' | null';
439
+ writer.writeLine(`${uniqueNameFields[index]}: ${field.tsType}${nullable};`);
440
+ });
441
+ relation.relations.forEach((field) => {
442
+ const nestedRelationType = generateRelationType(captalizedName, field.tsType);
443
+ const nullable = field.notNull ? '' : ' | null';
444
+ writer.writeLine(`${field.name}: ${nestedRelationType}${nullable};`);
445
+ });
446
+ });
447
+ });
448
+ }
449
+ function writeCollectFunction(writer, relation, columns, capitalizedName, resultTypeName) {
450
+ const relationType = generateRelationType(capitalizedName, relation.name);
451
+ const collectFunctionName = `collect${relationType}`;
452
+ writer.blankLine();
453
+ writer.write(`function ${collectFunctionName}(selectResult: ${resultTypeName}[]): ${relationType}[]`).block(() => {
454
+ const groupBy = columns[relation.groupIndex].name;
455
+ writer.writeLine(`const grouped = groupBy(selectResult.filter(r => r.${groupBy} != null), r => r.${groupBy});`);
456
+ writer
457
+ .write('return [...grouped.values()].map(row => (')
458
+ .inlineBlock(() => {
459
+ relation.fields.forEach((field, index) => {
460
+ const uniqueNameFields = renameInvalidNames(relation.fields.map((f) => f.name));
461
+ const separator = ',';
462
+ const fieldName = columns[field.index].name;
463
+ writer.writeLine(`${uniqueNameFields[index]}: row[0].${fieldName}!${separator}`);
464
+ });
465
+ relation.relations.forEach((fieldRelation) => {
466
+ const relationType = generateRelationType(capitalizedName, fieldRelation.name);
467
+ const orNull = fieldRelation.notNull ? '' : ' ?? null';
468
+ const cardinality = fieldRelation.list ? '' : `[0]${orNull}`;
469
+ writer.writeLine(`${fieldRelation.name}: collect${relationType}(row)${cardinality},`);
470
+ });
471
+ })
472
+ .write('))');
473
+ });
474
+ }
475
+ function writeGroupByFunction(writer) {
476
+ writer.write('const groupBy = <T, Q>(array: T[], predicate: (value: T, index: number, array: T[]) => Q) =>').block(() => {
477
+ writer
478
+ .write('return array.reduce((map, value, index, array) => ')
479
+ .inlineBlock(() => {
480
+ writer.writeLine('const key = predicate(value, index, array);');
481
+ writer.writeLine('map.get(key)?.push(value) ?? map.set(key, [value]);');
482
+ writer.writeLine('return map;');
483
+ })
484
+ .write(', new Map<Q, T[]>());');
485
+ });
486
+ }
303
487
  //# sourceMappingURL=codegen-util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codegen-util.js","sourceRoot":"","sources":["../../../../src/codegen/shared/codegen-util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codegen-util.js","sourceRoot":"","sources":["../../../../src/codegen/shared/codegen-util.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,11 @@
1
1
  import { type Either } from 'fp-ts/lib/Either';
2
2
  import type { ColumnInfo, ColumnSchema } from '../mysql-query-analyzer/types';
3
- import CodeBlockWriter from 'code-block-writer';
4
- import type { BunDialect, CrudQueryType, D1Dialect, LibSqlClient, SQLiteClient, SQLiteDialect, TsFieldDescriptor, TypeSqlError } from '../types';
3
+ import type { BunDialect, CrudQueryType, D1Dialect, LibSqlClient, SQLiteClient, SQLiteDialect, TypeSqlError } from '../types';
5
4
  import type { Field2 } from '../sqlite-query-analyzer/sqlite-describe-nested-query';
6
- import { type RelationType2, type TsField2 } from '../ts-nested-descriptor';
5
+ import { type TsField2 } from '../ts-nested-descriptor';
7
6
  export declare function validateAndGenerateCode(client: SQLiteDialect | LibSqlClient | BunDialect | D1Dialect, sql: string, queryName: string, sqliteDbSchema: ColumnSchema[], isCrud?: boolean): Either<TypeSqlError, string>;
8
7
  export declare function generateCrud(client: SQLiteClient, queryType: CrudQueryType, tableName: string, dbSchema: ColumnSchema[]): string;
9
8
  export declare function getQueryName(queryType: CrudQueryType, tableName: string): string;
10
9
  export declare function generateTsCode(sql: string, queryName: string, sqliteDbSchema: ColumnSchema[], client: SQLiteClient, isCrud?: boolean): Either<TypeSqlError, string>;
11
10
  export declare function mapFieldToTsField(columns: ColumnInfo[], field: Field2, client: SQLiteClient): TsField2;
12
- export declare function writeCollectFunction(writer: CodeBlockWriter, relation: RelationType2, columns: TsFieldDescriptor[], capitalizedName: string, resultTypeName: string): void;
13
11
  //# sourceMappingURL=sqlite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../src/codegen/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAuB,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAa9E,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EACX,UAAU,EACV,aAAa,EACb,SAAS,EACT,YAAY,EAGZ,YAAY,EACZ,aAAa,EAEb,iBAAiB,EAEjB,YAAY,EACZ,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uDAAuD,CAAC;AACpF,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAoB,MAAM,yBAAyB,CAAC;AA4B9F,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,aAAa,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,EAC7D,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,YAAY,EAAE,EAC9B,MAAM,UAAQ,GACZ,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAW9B;AAcD,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,UA2BvH;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,UAavE;AAED,wBAAgB,cAAc,CAC7B,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,YAAY,EAAE,EAC9B,MAAM,EAAE,YAAY,EACpB,MAAM,UAAQ,GACZ,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAQ9B;AA+FD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,QAAQ,CAQtG;AAuiBD,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,iBAAiB,EAAE,EAC5B,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,MAAM,QAyBtB"}
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../src/codegen/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAuB,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAI9E,OAAO,KAAK,EACX,UAAU,EACV,aAAa,EACb,SAAS,EACT,YAAY,EAGZ,YAAY,EACZ,aAAa,EAIb,YAAY,EACZ,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uDAAuD,CAAC;AACpF,OAAO,EAAsB,KAAK,QAAQ,EAAoB,MAAM,yBAAyB,CAAC;AA4B9F,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,aAAa,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,EAC7D,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,YAAY,EAAE,EAC9B,MAAM,UAAQ,GACZ,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAW9B;AAcD,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,UA2BvH;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,UAavE;AAED,wBAAgB,cAAc,CAC7B,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,YAAY,EAAE,EAC9B,MAAM,EAAE,YAAY,EACpB,MAAM,UAAQ,GACZ,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAQ9B;AA+FD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,QAAQ,CAQtG"}
package/codegen/sqlite.js CHANGED
@@ -1,18 +1,13 @@
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.validateAndGenerateCode = validateAndGenerateCode;
7
4
  exports.generateCrud = generateCrud;
8
5
  exports.getQueryName = getQueryName;
9
6
  exports.generateTsCode = generateTsCode;
10
7
  exports.mapFieldToTsField = mapFieldToTsField;
11
- exports.writeCollectFunction = writeCollectFunction;
12
8
  const Either_1 = require("fp-ts/lib/Either");
13
9
  const parser_1 = require("../sqlite-query-analyzer/parser");
14
10
  const mysql2_1 = require("./mysql2");
15
- const code_block_writer_1 = __importDefault(require("code-block-writer"));
16
11
  const ts_nested_descriptor_1 = require("../ts-nested-descriptor");
17
12
  const describe_query_1 = require("../describe-query");
18
13
  const query_executor_1 = require("../sqlite-query-analyzer/query-executor");
@@ -66,8 +61,8 @@ function generateCrud(client, queryType, tableName, dbSchema) {
66
61
  return code;
67
62
  }
68
63
  function getQueryName(queryType, tableName) {
69
- const camelCaseName = (0, mysql2_1.convertToCamelCaseName)(tableName);
70
- const captitalizedName = (0, mysql2_1.capitalize)(camelCaseName);
64
+ const camelCaseName = (0, codegen_util_1.convertToCamelCaseName)(tableName);
65
+ const captitalizedName = (0, codegen_util_1.capitalize)(camelCaseName);
71
66
  switch (queryType) {
72
67
  case 'Select':
73
68
  return `selectFrom${captitalizedName}`;
@@ -124,7 +119,7 @@ function mapColumns(client, queryType, columns, returning = false) {
124
119
  if (queryType === 'Update' || queryType === 'Delete') {
125
120
  return [resultColumns[0]];
126
121
  }
127
- const escapedColumnsNames = (0, mysql2_1.renameInvalidNames)(columns.map((col) => col.name));
122
+ const escapedColumnsNames = (0, codegen_util_1.renameInvalidNames)(columns.map((col) => col.name));
128
123
  return columns.map((col, index) => mapColumnToTsFieldDescriptor(Object.assign(Object.assign({}, col), { name: escapedColumnsNames[index] }), client));
129
124
  }
130
125
  function getInsertUpdateResult(client) {
@@ -179,7 +174,7 @@ function mapFieldToTsField(columns, field, client) {
179
174
  name: field.name,
180
175
  index: field.index,
181
176
  tsType: sqlite_1.mapper.mapColumnType(columns[field.index].type, client),
182
- notNull: columns[field.index].notNull
177
+ notNull: columns[field.index].intrinsicNotNull
183
178
  };
184
179
  return tsField;
185
180
  }
@@ -233,25 +228,15 @@ function mapColumnToTsParameterDescriptor(col, client) {
233
228
  }
234
229
  function generateCodeFromTsDescriptor(client, queryName, tsDescriptor, isCrud = false, tableName = '') {
235
230
  var _a, _b, _c;
236
- const writer = new code_block_writer_1.default({
237
- useTabs: true
238
- });
239
- const camelCaseName = (0, mysql2_1.convertToCamelCaseName)(queryName);
240
- const capitalizedName = (0, mysql2_1.capitalize)(camelCaseName);
231
+ const writer = (0, codegen_util_1.createCodeBlockWriter)();
232
+ const { camelCaseName, capitalizedName, dataTypeName, resultTypeName, paramsTypeName, orderByTypeName, dynamicParamsTypeName, selectColumnsTypeName, whereTypeName } = (0, codegen_util_1.createTypeNames)(queryName);
241
233
  const queryType = tsDescriptor.queryType;
242
234
  const sql = tsDescriptor.sql;
243
- const dataTypeName = `${capitalizedName}Data`;
244
- const paramsTypeName = `${capitalizedName}Params`;
245
- const resultTypeName = `${capitalizedName}Result`;
246
- const dynamicParamsTypeName = `${capitalizedName}DynamicParams`;
247
- const selectColumnsTypeName = `${capitalizedName}Select`;
248
- const whereTypeName = `${capitalizedName}Where`;
249
- const orderByTypeName = `${capitalizedName}OrderBy`;
250
235
  const generateOrderBy = tsDescriptor.orderByColumns != null && tsDescriptor.orderByColumns.length > 0;
251
- const uniqueParams = (0, mysql2_1.removeDuplicatedParameters2)(tsDescriptor.parameters);
252
- const uniqueUpdateParams = (0, mysql2_1.removeDuplicatedParameters2)(tsDescriptor.data || []);
253
- const orderByField = generateOrderBy ? `orderBy: ${orderByTypeName}[]` : undefined;
254
- const paramsTypes = (0, mysql2_1.removeDuplicatedParameters2)(tsDescriptor.dynamicQuery2 == null ? tsDescriptor.parameters : (0, ts_dynamic_query_descriptor_1.mapToDynamicParams)(tsDescriptor.parameters));
236
+ const uniqueParams = (0, codegen_util_1.removeDuplicatedParameters2)(tsDescriptor.parameters);
237
+ const uniqueUpdateParams = (0, codegen_util_1.removeDuplicatedParameters2)(tsDescriptor.data || []);
238
+ const orderByField = generateOrderBy ? `orderBy` : undefined;
239
+ const paramsTypes = (0, codegen_util_1.removeDuplicatedParameters2)(tsDescriptor.dynamicQuery2 == null ? tsDescriptor.parameters : (0, ts_dynamic_query_descriptor_1.mapToDynamicParams)(tsDescriptor.parameters));
255
240
  let functionArguments = client === 'better-sqlite3' || client === 'bun:sqlite'
256
241
  ? 'db: Database'
257
242
  : client === 'd1'
@@ -275,30 +260,14 @@ function generateCodeFromTsDescriptor(client, queryName, tsDescriptor, isCrud =
275
260
  writeImports(writer, client, isDynamicQuery);
276
261
  if (tsDescriptor.dynamicQuery2 != null) {
277
262
  writer.blankLine();
278
- writer.write(`export type ${dynamicParamsTypeName} = `).block(() => {
279
- writer.writeLine(`select?: ${selectColumnsTypeName};`);
280
- if (paramsTypes.length > 0) {
281
- writer.writeLine(`params?: ${paramsTypeName};`);
282
- }
283
- writer.writeLine(`where?: ${whereTypeName}[];`);
284
- if (orderByField) {
285
- writer.writeLine(`${orderByField};`);
286
- }
287
- });
263
+ (0, codegen_util_1.writeDynamicQueryParamType)(writer, queryName, paramsTypes.length > 0, orderByField);
288
264
  writer.blankLine();
289
265
  (0, mysql2_1.writeTypeBlock)(writer, paramsTypes, paramsTypeName, false, tsDescriptor.dynamicQuery2 ? undefined : orderByField);
290
266
  const resultTypes = tsDescriptor.dynamicQuery2 == null ? tsDescriptor.columns : (0, ts_dynamic_query_descriptor_1.mapToDynamicResultColumns)(tsDescriptor.columns);
291
267
  (0, mysql2_1.writeTypeBlock)(writer, resultTypes, resultTypeName, false);
292
268
  const selectFields = (0, ts_dynamic_query_descriptor_1.mapToDynamicSelectColumns)(tsDescriptor.columns);
293
269
  (0, mysql2_1.writeTypeBlock)(writer, selectFields, selectColumnsTypeName, false);
294
- writer.write('const selectFragments = ').inlineBlock(() => {
295
- var _a;
296
- (_a = tsDescriptor.dynamicQuery2) === null || _a === void 0 ? void 0 : _a.select.forEach((fragment, index) => {
297
- const field = tsDescriptor.columns[index].name;
298
- writer.writeLine(`${field}: \`${fragment.fragmentWitoutAlias}\`,`);
299
- });
300
- });
301
- writer.write(' as const;');
270
+ (0, codegen_util_1.writeSelectFragements)(writer, tsDescriptor.dynamicQuery2.select, tsDescriptor.columns);
302
271
  writer.blankLine();
303
272
  (0, codegen_util_1.writeDynamicQueryOperators)(writer, whereTypeName, tsDescriptor.columns);
304
273
  writer.blankLine();
@@ -345,7 +314,7 @@ function generateCodeFromTsDescriptor(client, queryName, tsDescriptor, isCrud =
345
314
  columns: tsDescriptor.columns,
346
315
  parameters: tsDescriptor.parameters,
347
316
  dynamicQueryInfo: tsDescriptor.dynamicQuery2,
348
- placeHolderType: 'questionMark',
317
+ dialect: 'sqlite',
349
318
  hasOrderBy: orderByField != null,
350
319
  toDrive: toDriver
351
320
  });
@@ -449,25 +418,11 @@ function generateCodeFromTsDescriptor(client, queryName, tsDescriptor, isCrud =
449
418
  (0, codegen_util_1.writeBuildOrderByBlock)(writer, tsDescriptor.orderByColumns, orderByTypeName);
450
419
  }
451
420
  if (tsDescriptor.nestedDescriptor2) {
452
- const relations = tsDescriptor.nestedDescriptor2;
453
- relations.forEach((relation) => {
454
- const relationType = (0, mysql2_1.generateRelationType)(capitalizedName, relation.name);
455
- writer.blankLine();
456
- writer.write(`export type ${relationType} = `).block(() => {
457
- const uniqueNameFields = (0, mysql2_1.renameInvalidNames)(relation.fields.map((f) => f.name));
458
- relation.fields.forEach((field, index) => {
459
- writer.writeLine(`${uniqueNameFields[index]}: ${field.tsType};`);
460
- });
461
- relation.relations.forEach((field) => {
462
- const nestedRelationType = (0, mysql2_1.generateRelationType)(capitalizedName, field.tsType);
463
- const nullableOperator = field.notNull ? '' : '?';
464
- writer.writeLine(`${field.name}${nullableOperator}: ${nestedRelationType};`);
465
- });
466
- });
467
- });
421
+ const relations = tsDescriptor.nestedDescriptor2 || [];
422
+ (0, codegen_util_1.writeNestedTypes)(writer, relations, capitalizedName);
468
423
  writer.blankLine();
469
424
  relations.forEach((relation, index) => {
470
- const relationType = (0, mysql2_1.generateRelationType)(capitalizedName, relation.name);
425
+ const relationType = (0, codegen_util_1.generateRelationType)(capitalizedName, relation.name);
471
426
  if (index === 0) {
472
427
  if (client === 'better-sqlite3' || client === 'bun:sqlite') {
473
428
  writer.write(`export function ${camelCaseName}Nested(${functionArguments}): ${relationType}[]`).block(() => {
@@ -491,19 +446,10 @@ function generateCodeFromTsDescriptor(client, queryName, tsDescriptor, isCrud =
491
446
  });
492
447
  }
493
448
  }
494
- writeCollectFunction(writer, relation, tsDescriptor.columns, capitalizedName, resultTypeName);
449
+ (0, codegen_util_1.writeCollectFunction)(writer, relation, tsDescriptor.columns, capitalizedName, resultTypeName);
495
450
  });
496
451
  writer.blankLine();
497
- writer.write('const groupBy = <T, Q>(array: T[], predicate: (value: T, index: number, array: T[]) => Q) =>').block(() => {
498
- writer
499
- .write('return array.reduce((map, value, index, array) => ')
500
- .inlineBlock(() => {
501
- writer.writeLine('const key = predicate(value, index, array);');
502
- writer.writeLine('map.get(key)?.push(value) ?? map.set(key, [value]);');
503
- writer.writeLine('return map;');
504
- })
505
- .write(', new Map<Q, T[]>());');
506
- });
452
+ (0, codegen_util_1.writeGroupByFunction)(writer);
507
453
  }
508
454
  return writer.toString();
509
455
  }
@@ -661,31 +607,6 @@ function toDriver(variableName, param) {
661
607
  }
662
608
  return `${variableName}.${param.name}`;
663
609
  }
664
- function writeCollectFunction(writer, relation, columns, capitalizedName, resultTypeName) {
665
- const relationType = (0, mysql2_1.generateRelationType)(capitalizedName, relation.name);
666
- const collectFunctionName = `collect${relationType}`;
667
- writer.blankLine();
668
- writer.write(`function ${collectFunctionName}(selectResult: ${resultTypeName}[]): ${relationType}[]`).block(() => {
669
- const groupBy = columns[relation.groupIndex].name;
670
- writer.writeLine(`const grouped = groupBy(selectResult.filter(r => r.${groupBy} != null), r => r.${groupBy});`);
671
- writer
672
- .write('return [...grouped.values()].map(row => (')
673
- .inlineBlock(() => {
674
- relation.fields.forEach((field, index) => {
675
- const uniqueNameFields = (0, mysql2_1.renameInvalidNames)(relation.fields.map((f) => f.name));
676
- const separator = ',';
677
- const fieldName = columns[field.index].name;
678
- writer.writeLine(`${uniqueNameFields[index]}: row[0].${fieldName}!${separator}`);
679
- });
680
- relation.relations.forEach((fieldRelation) => {
681
- const relationType = (0, mysql2_1.generateRelationType)(capitalizedName, fieldRelation.name);
682
- const cardinality = fieldRelation.list ? '' : '[0]';
683
- writer.writeLine(`${fieldRelation.name}: collect${relationType}(row)${cardinality},`);
684
- });
685
- })
686
- .write('))');
687
- });
688
- }
689
610
  function writeImports(writer, client, isDynamicQuery) {
690
611
  switch (client) {
691
612
  case 'better-sqlite3':
@@ -862,7 +783,7 @@ function writeSql(writer, sql) {
862
783
  const sqlSplit = sql.split('\n');
863
784
  writer.write('const sql = `').newLine();
864
785
  sqlSplit.forEach((sqlLine) => {
865
- writer.indent().write(sqlLine).newLine();
786
+ writer.indent().write(sqlLine.trimEnd()).newLine();
866
787
  });
867
788
  writer.indent().write('`').newLine();
868
789
  }