typesql-cli 0.20.0 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/cli.js +5 -5
  2. package/cli.js.map +1 -1
  3. package/code-generator2.d.ts.map +1 -1
  4. package/code-generator2.js +136 -102
  5. package/code-generator2.js.map +1 -1
  6. package/codegen/code-generator.d.ts +13 -0
  7. package/codegen/code-generator.d.ts.map +1 -0
  8. package/codegen/code-generator.js +106 -0
  9. package/codegen/code-generator.js.map +1 -0
  10. package/codegen/code-generator2.d.ts +10 -0
  11. package/codegen/code-generator2.d.ts.map +1 -0
  12. package/codegen/code-generator2.js +917 -0
  13. package/codegen/code-generator2.js.map +1 -0
  14. package/codegen/codegen-util.d.ts +1 -0
  15. package/codegen/codegen-util.d.ts.map +1 -0
  16. package/codegen/codegen-util.js +2 -0
  17. package/codegen/codegen-util.js.map +1 -0
  18. package/codegen/generic/codegen-util.d.ts +8 -0
  19. package/codegen/generic/codegen-util.d.ts.map +1 -0
  20. package/codegen/generic/codegen-util.js +89 -0
  21. package/codegen/generic/codegen-util.js.map +1 -0
  22. package/codegen/mysql2.d.ts +40 -0
  23. package/codegen/mysql2.d.ts.map +1 -0
  24. package/codegen/mysql2.js +667 -0
  25. package/codegen/mysql2.js.map +1 -0
  26. package/codegen/pg.d.ts +9 -0
  27. package/codegen/pg.d.ts.map +1 -0
  28. package/codegen/pg.js +760 -0
  29. package/codegen/pg.js.map +1 -0
  30. package/codegen/postgres-pg.d.ts +10 -0
  31. package/codegen/postgres-pg.d.ts.map +1 -0
  32. package/codegen/postgres-pg.js +917 -0
  33. package/codegen/postgres-pg.js.map +1 -0
  34. package/codegen/shared/codegen-util.d.ts +28 -0
  35. package/codegen/shared/codegen-util.d.ts.map +1 -0
  36. package/codegen/shared/codegen-util.js +303 -0
  37. package/codegen/shared/codegen-util.js.map +1 -0
  38. package/codegen/sqlite-code-generator.d.ts +15 -0
  39. package/codegen/sqlite-code-generator.d.ts.map +1 -0
  40. package/codegen/sqlite-code-generator.js +1049 -0
  41. package/codegen/sqlite-code-generator.js.map +1 -0
  42. package/codegen/sqlite.d.ts +13 -0
  43. package/codegen/sqlite.d.ts.map +1 -0
  44. package/codegen/sqlite.js +893 -0
  45. package/codegen/sqlite.js.map +1 -0
  46. package/describe-query.d.ts.map +1 -1
  47. package/describe-query.js +45 -32
  48. package/describe-query.js.map +1 -1
  49. package/dialects/postgres.d.ts +4 -1
  50. package/dialects/postgres.d.ts.map +1 -1
  51. package/dialects/postgres.js +4 -2
  52. package/dialects/postgres.js.map +1 -1
  53. package/drivers/sqlite.d.ts +4 -1
  54. package/drivers/sqlite.d.ts.map +1 -1
  55. package/drivers/sqlite.js +4 -1
  56. package/drivers/sqlite.js.map +1 -1
  57. package/drivers/types.d.ts +3 -1
  58. package/drivers/types.d.ts.map +1 -1
  59. package/generic/codegen-util.d.ts +8 -0
  60. package/generic/codegen-util.d.ts.map +1 -0
  61. package/generic/codegen-util.js +89 -0
  62. package/generic/codegen-util.js.map +1 -0
  63. package/mysql-mapping.d.ts +4 -1
  64. package/mysql-mapping.d.ts.map +1 -1
  65. package/mysql-mapping.js +5 -3
  66. package/mysql-mapping.js.map +1 -1
  67. package/mysql-query-analyzer/infer-column-nullability.js +1 -1
  68. package/mysql-query-analyzer/infer-column-nullability.js.map +1 -1
  69. package/mysql-query-analyzer/parse.d.ts.map +1 -1
  70. package/mysql-query-analyzer/parse.js +3 -2
  71. package/mysql-query-analyzer/parse.js.map +1 -1
  72. package/package.json +1 -1
  73. package/postgres-pg.d.ts +10 -0
  74. package/postgres-pg.d.ts.map +1 -0
  75. package/postgres-pg.js +917 -0
  76. package/postgres-pg.js.map +1 -0
  77. package/postgres-query-analyzer/describe.d.ts +1 -1
  78. package/postgres-query-analyzer/describe.d.ts.map +1 -1
  79. package/postgres-query-analyzer/describe.js +77 -48
  80. package/postgres-query-analyzer/describe.js.map +1 -1
  81. package/postgres-query-analyzer/traverse.d.ts +1 -0
  82. package/postgres-query-analyzer/traverse.d.ts.map +1 -1
  83. package/postgres-query-analyzer/traverse.js +38 -16
  84. package/postgres-query-analyzer/traverse.js.map +1 -1
  85. package/postgres-query-analyzer/util.d.ts +9 -0
  86. package/postgres-query-analyzer/util.d.ts.map +1 -0
  87. package/postgres-query-analyzer/util.js +58 -0
  88. package/postgres-query-analyzer/util.js.map +1 -0
  89. package/rescript.d.ts +1 -0
  90. package/rescript.d.ts.map +1 -0
  91. package/rescript.js +2 -0
  92. package/rescript.js.map +1 -0
  93. package/sqlite-query-analyzer/parser.js +3 -3
  94. package/sqlite-query-analyzer/parser.js.map +1 -1
  95. package/sqlite-query-analyzer/replace-list-params.d.ts.map +1 -1
  96. package/sqlite-query-analyzer/replace-list-params.js.map +1 -1
  97. package/sqlite-query-analyzer/sqlite-code-generator.d.ts +15 -0
  98. package/sqlite-query-analyzer/sqlite-code-generator.d.ts.map +1 -0
  99. package/sqlite-query-analyzer/sqlite-code-generator.js +1049 -0
  100. package/sqlite-query-analyzer/sqlite-code-generator.js.map +1 -0
  101. package/sqlite-query-analyzer/traverse.js +1 -1
  102. package/sqlite-query-analyzer/traverse.js.map +1 -1
  103. package/sqlite.d.ts +43 -0
  104. package/sqlite.d.ts.map +1 -0
  105. package/sqlite.js +755 -0
  106. package/sqlite.js.map +1 -0
  107. package/ts-nested-descriptor.d.ts.map +1 -1
  108. package/ts-nested-descriptor.js +1 -1
  109. package/ts-nested-descriptor.js.map +1 -1
  110. package/types.d.ts +8 -1
  111. package/types.d.ts.map +1 -1
package/cli.js CHANGED
@@ -18,13 +18,13 @@ const dotenv_1 = __importDefault(require("dotenv"));
18
18
  const node_path_1 = __importDefault(require("node:path"));
19
19
  const chokidar_1 = __importDefault(require("chokidar"));
20
20
  const yargs_1 = __importDefault(require("yargs"));
21
- const code_generator_1 = require("./code-generator");
21
+ const code_generator_1 = require("./codegen/code-generator");
22
22
  const sql_generator_1 = require("./sql-generator");
23
23
  const Either_1 = require("fp-ts/lib/Either");
24
24
  const glob_1 = require("glob");
25
25
  const schema_info_1 = require("./schema-info");
26
- const code_generator_2 = require("./sqlite-query-analyzer/code-generator");
27
- const code_generator2_1 = require("./code-generator2");
26
+ const sqlite_1 = require("./codegen/sqlite");
27
+ const pg_1 = require("./codegen/pg");
28
28
  const lodash_uniqby_1 = __importDefault(require("lodash.uniqby"));
29
29
  const load_config_1 = require("./load-config");
30
30
  const CRUD_FOLDER = 'crud';
@@ -175,7 +175,7 @@ function writeIndexFileFor(tsDir, config) {
175
175
  }
176
176
  //Move to code-generator
177
177
  function generateIndexContent(tsFiles, moduleExtension) {
178
- const writer = (0, code_generator2_1.createCodeBlockWriter)();
178
+ const writer = (0, pg_1.createCodeBlockWriter)();
179
179
  for (const filePath of tsFiles) {
180
180
  const fileName = node_path_1.default.basename(filePath, '.ts'); //remove the ts extension
181
181
  const suffix = moduleExtension ? `.${moduleExtension}` : '.js';
@@ -259,7 +259,7 @@ function generateCrudTables(sqlFolderPath, schemaInfo, includeCrudTables) {
259
259
  });
260
260
  }
261
261
  function generateAndWriteCrud(client, filePath, queryType, tableName, columns) {
262
- const content = client === 'pg' ? (0, code_generator2_1.generateCrud)(queryType, tableName, columns) : (0, code_generator_2.generateCrud)(client, queryType, tableName, columns);
262
+ const content = client === 'pg' ? (0, pg_1.generateCrud)(queryType, tableName, columns) : (0, sqlite_1.generateCrud)(client, queryType, tableName, columns);
263
263
  (0, code_generator_1.writeFile)(filePath, content);
264
264
  console.log('Generated file:', filePath);
265
265
  }
package/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"code-generator2.d.ts","sourceRoot":"","sources":["../../src/code-generator2.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAa,iBAAiB,EAAyB,YAAY,EAAE,MAAM,SAAS,CAAC;AAMtH,OAAO,EAAW,WAAW,EAAE,MAAM,YAAY,CAAC;AAKlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAIvD,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAOjJ;AAcD,wBAAgB,qBAAqB,oBAMpC;AA6vBD,wBAAgB,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,UAoDzG;AAwJD,wBAAgB,0CAA0C,CAAC,GAAG,EAAE,oBAAoB,GAAG,iBAAiB,CAOvG"}
1
+ {"version":3,"file":"code-generator2.d.ts","sourceRoot":"","sources":["../../src/code-generator2.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAa,iBAAiB,EAAyB,YAAY,EAAE,MAAM,SAAS,CAAC;AAMtH,OAAO,EAAW,WAAW,EAAE,MAAM,YAAY,CAAC;AAKlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAIvD,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAMjJ;AAcD,wBAAgB,qBAAqB,oBAMpC;AAkyBD,wBAAgB,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,UAoDzG;AAwJD,wBAAgB,0CAA0C,CAAC,GAAG,EAAE,oBAAoB,GAAG,iBAAiB,CAOvG"}
@@ -11,7 +11,6 @@ const code_block_writer_1 = __importDefault(require("code-block-writer"));
11
11
  const code_generator_1 = require("./code-generator");
12
12
  const describe_1 = require("./postgres-query-analyzer/describe");
13
13
  const postgres_1 = require("./dialects/postgres");
14
- const describe_query_1 = require("./describe-query");
15
14
  const neverthrow_1 = require("neverthrow");
16
15
  const code_generator_2 = require("./sqlite-query-analyzer/code-generator");
17
16
  const ts_nested_descriptor_1 = require("./ts-nested-descriptor");
@@ -20,9 +19,8 @@ function generateCode(client, sql, queryName, schemaInfo) {
20
19
  if (isEmptySql(sql)) {
21
20
  return (0, neverthrow_1.okAsync)('');
22
21
  }
23
- const { sql: processedSql, namedParameters } = (0, describe_query_1.preprocessSql)(sql, 'postgres');
24
- return _describeQuery(client, processedSql, namedParameters, schemaInfo)
25
- .map(schemaDef => generateTsCode(processedSql, queryName, schemaDef, client.type));
22
+ return _describeQuery(client, sql, schemaInfo)
23
+ .map(schemaDef => generateTsCode(sql, queryName, schemaDef, client.type));
26
24
  }
27
25
  function isEmptySql(sql) {
28
26
  if (sql.trim() === '') {
@@ -31,8 +29,8 @@ function isEmptySql(sql) {
31
29
  const lines = sql.split('\n');
32
30
  return lines.every(line => line.trim() === '' || line.trim().startsWith('//'));
33
31
  }
34
- function _describeQuery(databaseClient, sql, namedParameters, dbSchema) {
35
- return (0, describe_1.describeQuery)(databaseClient.client, sql, namedParameters, dbSchema);
32
+ function _describeQuery(databaseClient, sql, dbSchema) {
33
+ return (0, describe_1.describeQuery)(databaseClient.client, sql, dbSchema);
36
34
  }
37
35
  function createCodeBlockWriter() {
38
36
  const writer = new code_block_writer_1.default({
@@ -117,9 +115,9 @@ function generateTsCode(sqlOld, queryName, schemaDef, client, isCrud = false) {
117
115
  writer.blankLine();
118
116
  writer.write(`export type ${whereTypeName} =`).indent(() => {
119
117
  for (const col of tsDescriptor.columns) {
120
- writer.writeLine(`| ['${col.name}', ${(0, code_generator_1.getOperator)(col.tsType)}, ${col.tsType} | null]`);
121
- writer.writeLine(`| ['${col.name}', SetOperator, ${col.tsType}[]]`);
122
- writer.writeLine(`| ['${col.name}', BetweenOperator, ${col.tsType} | null, ${col.tsType} | null]`);
118
+ writer.writeLine(`| { column: '${col.name}'; op: ${(0, code_generator_1.getOperator)(col.tsType)}; value: ${col.tsType} | null }`);
119
+ writer.writeLine(`| { column: '${col.name}'; op: SetOperator; value: ${col.tsType}[] }`);
120
+ writer.writeLine(`| { column: '${col.name}'; op: BetweenOperator; value: [${col.tsType} | null, ${col.tsType} | null] }`);
123
121
  }
124
122
  });
125
123
  writer.blankLine();
@@ -128,23 +126,25 @@ function generateTsCode(sqlOld, queryName, schemaDef, client, isCrud = false) {
128
126
  // functionParams += `, data: ${dataType}`;
129
127
  // }
130
128
  functionArguments += `, params?: ${dynamicParamsTypeName}`;
131
- writer.writeLine('let currentIndex: number;');
132
129
  writer.write(`export async function ${camelCaseName}(${functionArguments}): Promise<${resultTypeName}[]>`).block(() => {
133
- writer.writeLine(`currentIndex = ${tsDescriptor.parameters.length};`);
134
- writer.writeLine('const where = whereConditionsToObject(params?.where);');
135
130
  // if (orderByField != null) {
136
131
  // writer.writeLine('const orderBy = orderByToObject(params.orderBy);');
137
132
  // }
138
- writer.writeLine('const paramsValues: any = [];');
133
+ writer.writeLine(`const isSelected = (field: keyof ${selectColumnsTypeName}) =>`);
134
+ writer.indent().write('params?.select == null || params.select[field] === true;').newLine();
135
+ writer.blankLine();
136
+ writer.writeLine('const selectedSqlFragments: string[] = [];');
137
+ writer.writeLine(`const selectedFields: (keyof ${resultTypeName})[] = [];`);
138
+ writer.writeLine('const paramsValues: any[] = [];');
139
+ writer.blankLine();
140
+ writer.writeLine('const whereColumns = new Set(params?.where?.map(w => w.column) || []);');
141
+ writer.blankLine();
139
142
  if (dynamicQueryInfo.with.length > 0) {
140
- writer.writeLine(`let withClause = '';`);
143
+ writer.writeLine(`const withFragments: string[] = [];`);
141
144
  dynamicQueryInfo.with.forEach((withFragment) => {
142
145
  var _a;
143
- const selectConditions = withFragment.dependOnFields.map((fieldIndex) => `params.select.${tsDescriptor.columns[fieldIndex].name}`);
144
- if (selectConditions.length > 0) {
145
- selectConditions.unshift('params?.select == null');
146
- }
147
- const whereConditions = withFragment.dependOnFields.map((fieldIndex) => `where.${tsDescriptor.columns[fieldIndex].name} != null`);
146
+ const selectConditions = withFragment.dependOnFields.map((fieldIndex) => `isSelected('${tsDescriptor.columns[fieldIndex].name}')`);
147
+ const whereConditions = withFragment.dependOnFields.map((fieldIndex) => `whereColumns.has('${tsDescriptor.columns[fieldIndex].name}')`);
148
148
  const orderByConditions = ((_a = withFragment.dependOnOrderBy) === null || _a === void 0 ? void 0 : _a.map((orderBy) => `orderBy['${orderBy}'] != null`)) || [];
149
149
  const allConditions = [...selectConditions, ...whereConditions, ...orderByConditions];
150
150
  const paramValues = withFragment.parameters.map((paramIndex) => {
@@ -152,43 +152,38 @@ function generateTsCode(sqlOld, queryName, schemaDef, client, isCrud = false) {
152
152
  return `params?.params?.${param.name}`;
153
153
  });
154
154
  if (allConditions.length > 0) {
155
- writer.write(`if (${allConditions.join(`${node_os_1.EOL}\t|| `)})`).block(() => {
156
- writer.writeLine(`if (withClause !== '') withClause += ',' + EOL;`);
157
- writer.write(`withClause += \`${withFragment.fragment}\`;`);
155
+ writer.writeLine(`if (`);
156
+ writer.indent().write(`${allConditions.join(`${node_os_1.EOL}\t|| `)}`).newLine();
157
+ writer.write(') ').inlineBlock(() => {
158
+ writer.write(`withFragments.push(\`${withFragment.fragment}\`);`);
158
159
  paramValues.forEach((paramValues) => {
159
160
  writer.writeLine(`paramsValues.push(${paramValues});`);
160
161
  });
161
- });
162
+ }).newLine();
162
163
  }
163
164
  else {
164
- writer.write(`withClause.push(\`${withFragment.fragment}\`);`);
165
+ writer.writeLine(`withFragments.push(\`${withFragment.fragment}\`);`);
165
166
  paramValues.forEach((paramValues) => {
166
167
  writer.writeLine(`paramsValues.push(${paramValues});`);
167
168
  });
168
169
  }
169
170
  });
170
171
  }
171
- writer.writeLine(`let sql = 'SELECT';`);
172
- if (dynamicQueryInfo.with.length > 0) {
173
- writer.write('if (withClause)').block(() => {
174
- writer.writeLine(`sql = 'WITH' + EOL + withClause + EOL + sql;`);
175
- });
176
- }
177
172
  dynamicQueryInfo.select.forEach((select, index) => {
178
- writer.write(`if (params?.select == null || params.select.${tsDescriptor.columns[index].name})`).block(() => {
179
- writer.writeLine(`sql = appendSelect(sql, \`${select.fragment}\`);`);
173
+ writer.write(`if (isSelected('${tsDescriptor.columns[index].name}'))`).block(() => {
174
+ writer.writeLine(`selectedSqlFragments.push('${select.fragment}');`);
175
+ writer.writeLine(`selectedFields.push('${tsDescriptor.columns[index].name}');`);
180
176
  select.parameters.forEach((param) => {
181
177
  writer.writeLine(`paramsValues.push(params?.params?.${param} ?? null);`);
182
178
  });
183
179
  });
184
180
  });
181
+ writer.blankLine();
182
+ writer.writeLine('const fromSqlFragments: string[] = [];');
185
183
  dynamicQueryInfo.from.forEach((from) => {
186
184
  var _a;
187
- const selectConditions = from.dependOnFields.map((fieldIndex) => `params.select.${tsDescriptor.columns[fieldIndex].name}`);
188
- if (selectConditions.length > 0) {
189
- selectConditions.unshift('params?.select == null');
190
- }
191
- const whereConditions = from.dependOnFields.map((fieldIndex) => `where.${tsDescriptor.columns[fieldIndex].name} != null`);
185
+ const selectConditions = from.dependOnFields.map((fieldIndex) => `isSelected('${tsDescriptor.columns[fieldIndex].name}')`);
186
+ const whereConditions = from.dependOnFields.map((fieldIndex) => `whereColumns.has('${tsDescriptor.columns[fieldIndex].name}')`);
192
187
  const orderByConditions = ((_a = from.dependOnOrderBy) === null || _a === void 0 ? void 0 : _a.map((orderBy) => `orderBy['${orderBy}'] != null`)) || [];
193
188
  const allConditions = [...selectConditions, ...whereConditions, ...orderByConditions];
194
189
  const paramValues = from.parameters.map((paramIndex) => {
@@ -196,33 +191,41 @@ function generateTsCode(sqlOld, queryName, schemaDef, client, isCrud = false) {
196
191
  return `params?.params?.${param.name}`;
197
192
  });
198
193
  if (allConditions.length > 0) {
199
- writer.write(`if (${allConditions.join(`${node_os_1.EOL}\t|| `)})`).block(() => {
200
- writer.write(`sql += EOL + \`${from.fragment}\`;`);
201
- paramValues.forEach((paramValues) => {
202
- writer.writeLine(`paramsValues.push(${paramValues});`);
203
- });
194
+ writer.blankLine();
195
+ writer.writeLine(`if (`);
196
+ writer.indent().write(`${allConditions.join(`${node_os_1.EOL}\t|| `)}`).newLine();
197
+ writer.write(') ').inlineBlock(() => {
198
+ writer.write(`fromSqlFragments.push(\`${from.fragment}\`);`);
199
+ });
200
+ paramValues.forEach((paramValues) => {
201
+ writer.writeLine(`paramsValues.push(${paramValues});`);
204
202
  });
205
203
  }
206
204
  else {
207
- writer.writeLine(`sql += EOL + \`${from.fragment}\`;`);
205
+ writer.writeLine(`fromSqlFragments.push(\`${from.fragment}\`);`);
208
206
  paramValues.forEach((paramValues) => {
209
207
  writer.writeLine(`paramsValues.push(${paramValues});`);
210
208
  });
211
209
  }
212
210
  });
213
- writer.writeLine('sql += EOL + `WHERE 1 = 1`;');
211
+ writer.blankLine();
212
+ writer.writeLine('const whereSqlFragments: string[] = [];');
213
+ writer.blankLine();
214
214
  dynamicQueryInfo.where.forEach((fragment) => {
215
215
  const paramValues = fragment.parameters.map((paramIndex) => {
216
216
  const param = tsDescriptor.parameters[paramIndex];
217
217
  return `params?.params?.${param.name} ?? null`;
218
218
  });
219
- writer.writeLine(`sql += EOL + \`${fragment.fragment}\`;`);
219
+ writer.writeLine(`whereSqlFragments.push(\`${fragment.fragment}\`);`);
220
220
  paramValues.forEach((paramValues) => {
221
221
  writer.writeLine(`paramsValues.push(${paramValues});`);
222
222
  });
223
223
  });
224
+ writer.writeLine(`let currentIndex = paramsValues.length;`);
225
+ writer.writeLine('const placeholder = () => `$${++currentIndex}`;');
226
+ writer.blankLine();
224
227
  writer.write('params?.where?.forEach(condition => ').inlineBlock(() => {
225
- writer.writeLine('const where = whereCondition(condition);');
228
+ writer.writeLine('const whereClause = whereCondition(condition, placeholder);');
226
229
  dynamicQueryInfo.select.forEach((select, index) => {
227
230
  if (select.parameters.length > 0) {
228
231
  writer.write(`if (condition[0] == '${tsDescriptor.columns[index].name}')`).block(() => {
@@ -232,45 +235,44 @@ function generateTsCode(sqlOld, queryName, schemaDef, client, isCrud = false) {
232
235
  });
233
236
  }
234
237
  });
235
- writer.write('if (where?.hasValue)').block(() => {
236
- writer.writeLine(`sql += EOL + 'AND ' + where.sql;`);
237
- writer.write('paramsValues.push(...where.values);');
238
+ writer.write('if (whereClause?.hasValue)').block(() => {
239
+ writer.writeLine(`whereSqlFragments.push(whereClause.sql);`);
240
+ writer.write('paramsValues.push(...whereClause.values);');
238
241
  });
239
242
  });
240
243
  writer.write(');').newLine();
244
+ if (dynamicQueryInfo.with.length > 0) {
245
+ writer.blankLine();
246
+ writer.writeLine('const withSql = withFragments.length > 0');
247
+ writer.indent().write('? `WITH${EOL}${withFragments.join(`,${EOL}`)}${EOL}`').newLine();
248
+ writer.indent().write(`: '';`).newLine();
249
+ }
250
+ writer.blankLine();
251
+ writer.writeLine('const whereSql = whereSqlFragments.length > 0 ? `WHERE ${whereSqlFragments.join(\' AND \')}` : \'\';');
252
+ writer.blankLine();
253
+ if (dynamicQueryInfo.with.length > 0) {
254
+ writer.writeLine('const sql = `${withSql}SELECT');
255
+ }
256
+ else {
257
+ writer.writeLine('const sql = `SELECT');
258
+ }
259
+ writer.indent().write('${selectedSqlFragments.join(`,${EOL}`)}').newLine();
260
+ writer.indent().write('${fromSqlFragments.join(EOL)}').newLine();
261
+ ;
262
+ writer.indent().write('${whereSql}`;').newLine();
263
+ writer.blankLine();
241
264
  writer.write(`return client.query({ text: sql, rowMode: 'array', values: paramsValues })`).newLine();
242
- writer.indent().write(`.then(res => res.rows.map(row => mapArrayTo${resultTypeName}(row, params?.select)));`);
265
+ writer.indent().write(`.then(res => res.rows.map(row => mapArrayTo${resultTypeName}(row, selectedFields)));`);
243
266
  });
244
267
  writer.blankLine();
245
- writer.write(`function mapArrayTo${resultTypeName}(data: any, select?: ${selectColumnsTypeName})`).block(() => {
246
- writer.writeLine(`const result = {} as ${resultTypeName};`);
247
- writer.writeLine('let rowIndex = -1;');
248
- tsDescriptor.columns.forEach((tsField) => {
249
- writer.write(`if (select == null || select.${tsField.name})`).block(() => {
250
- writer.writeLine('rowIndex++;');
251
- writer.writeLine(`result.${tsField.name} = ${toDriver('data[rowIndex]', tsField)};`);
252
- });
268
+ writer.write(`function mapArrayTo${resultTypeName}(data: any, selectedFields: (keyof ${resultTypeName})[])`).block(() => {
269
+ writer.writeLine(`const result: ${resultTypeName} = {};`);
270
+ writer.write(`selectedFields.forEach((field, index) => `).inlineBlock(() => {
271
+ writer.writeLine(`result[field] = data[index];`);
253
272
  });
273
+ writer.write(');').newLine();
254
274
  writer.write('return result;');
255
275
  });
256
- writer.blankLine();
257
- writer.write('function appendSelect(sql: string, selectField: string)').block(() => {
258
- writer.write(`if (sql.toUpperCase().endsWith('SELECT'))`).block(() => {
259
- writer.writeLine('return sql + EOL + selectField;');
260
- });
261
- writer.write('else').block(() => {
262
- writer.writeLine(`return sql + ', ' + EOL + selectField;`);
263
- });
264
- });
265
- writer.blankLine();
266
- writer.write(`function whereConditionsToObject(whereConditions?: ${whereTypeName}[])`).block(() => {
267
- writer.writeLine('const obj = {} as any;');
268
- writer.write('whereConditions?.forEach(condition => ').inlineBlock(() => {
269
- writer.writeLine('obj[condition[0]] = true;');
270
- });
271
- writer.write(');');
272
- writer.writeLine('return obj;');
273
- });
274
276
  // if (orderByField != null) {
275
277
  // writer.blankLine();
276
278
  // writer.write(`function orderByToObject(orderBy: ${dynamicParamsTypeName}['orderBy'])`).block(() => {
@@ -289,47 +291,46 @@ function generateTsCode(sqlOld, queryName, schemaDef, client, isCrud = false) {
289
291
  writer.writeLine('values: any[];');
290
292
  });
291
293
  writer.blankLine();
292
- writer.write(`function whereCondition(condition: ${whereTypeName}): WhereConditionResult | null `).block(() => {
293
- writer.blankLine();
294
- writer.writeLine('const selectFragment = selectFragments[condition[0]];');
295
- writer.writeLine('const operator = condition[1];');
294
+ writer.write(`function whereCondition(condition: ${whereTypeName}, placeholder: () => string): WhereConditionResult | null `).block(() => {
295
+ writer.writeLine('const selectFragment = selectFragments[condition.column];');
296
+ writer.writeLine('const { op, value } = condition;');
296
297
  writer.blankLine();
297
298
  if ((0, code_generator_1.hasStringColumn)(tsDescriptor.columns)) {
298
- writer.write(`if (operator == 'LIKE') `).block(() => {
299
+ writer.write(`if (op === 'LIKE') `).block(() => {
299
300
  writer.write('return ').block(() => {
300
301
  writer.writeLine("sql: `${selectFragment} LIKE ${placeholder()}`,");
301
- writer.writeLine('hasValue: condition[2] != null,');
302
- writer.writeLine('values: [condition[2]]');
302
+ writer.writeLine('hasValue: value != null,');
303
+ writer.writeLine('values: [value]');
303
304
  });
304
305
  });
305
306
  }
306
- writer.write(`if (operator == 'BETWEEN') `).block(() => {
307
+ writer.write(`if (op === 'BETWEEN') `).block(() => {
308
+ writer.writeLine('const [from, to] = Array.isArray(value) ? value : [null, null];');
307
309
  writer.write('return ').block(() => {
308
310
  writer.writeLine('sql: `${selectFragment} BETWEEN ${placeholder()} AND ${placeholder()}`,');
309
- writer.writeLine('hasValue: condition[2] != null && condition[3] != null,');
310
- writer.writeLine('values: [condition[2], condition[3]]');
311
+ writer.writeLine('hasValue: from != null && to != null,');
312
+ writer.writeLine('values: [from, to]');
311
313
  });
312
314
  });
313
- writer.write(`if (operator == 'IN' || operator == 'NOT IN') `).block(() => {
315
+ writer.write(`if (op === 'IN' || op === 'NOT IN') `).block(() => {
316
+ writer.write('if (!Array.isArray(value) || value.length === 0)').block(() => {
317
+ writer.writeLine(`return { sql: '', hasValue: false, values: [] };`);
318
+ });
314
319
  writer.write('return ').block(() => {
315
- writer.writeLine("sql: `${selectFragment} ${operator} (${condition[2]?.map(_ => placeholder()).join(', ')})`,");
316
- writer.writeLine('hasValue: condition[2] != null && condition[2].length > 0,');
317
- writer.writeLine('values: condition[2]');
320
+ writer.writeLine("sql: `${selectFragment} ${op} (${value.map(() => placeholder()).join(', ')})`,");
321
+ writer.writeLine('hasValue: true,');
322
+ writer.writeLine('values: value');
318
323
  });
319
324
  });
320
- writer.write('if (NumericOperatorList.includes(operator)) ').block(() => {
325
+ writer.write('if (NumericOperatorList.includes(op)) ').block(() => {
321
326
  writer.write('return ').block(() => {
322
- writer.writeLine('sql: `${selectFragment} ${operator} ${placeholder()}`,');
323
- writer.writeLine('hasValue: condition[2] != null,');
324
- writer.writeLine('values: [condition[2]]');
327
+ writer.writeLine('sql: `${selectFragment} ${op} ${placeholder()}`,');
328
+ writer.writeLine('hasValue: value != null,');
329
+ writer.writeLine('values: [value]');
325
330
  });
326
331
  });
327
332
  writer.writeLine('return null;');
328
333
  });
329
- writer.blankLine();
330
- writer.write('function placeholder(): string').block(() => {
331
- writer.writeLine('return `$${++currentIndex}`;');
332
- });
333
334
  }
334
335
  if (tsDescriptor.nestedDescriptor2) {
335
336
  const relations = tsDescriptor.nestedDescriptor2;
@@ -364,8 +365,10 @@ function generateTsCode(sqlOld, queryName, schemaDef, client, isCrud = false) {
364
365
  parameters: tsDescriptor.parameters,
365
366
  data: tsDescriptor.data || [],
366
367
  returning: schemaDef.returning || false,
368
+ orderByTypeName: orderByTypeName,
369
+ orderByColumns: tsDescriptor.orderByColumns || [],
367
370
  generateNested: tsDescriptor.nestedDescriptor2 != null,
368
- nestedType: tsDescriptor.nestedDescriptor2 ? tsDescriptor.nestedDescriptor2[0].name : ''
371
+ nestedType: tsDescriptor.nestedDescriptor2 ? tsDescriptor.nestedDescriptor2[0].name : '',
369
372
  };
370
373
  codeWriter.writeExecFunction(writer, execFunctionParams);
371
374
  }
@@ -436,7 +439,7 @@ function writeParamsType(writer, paramsTypeName, params, generateOrderBy, orderB
436
439
  writer.writeLine(`${field.name}${optionalOp}: ${field.tsType}${orNull};`);
437
440
  });
438
441
  if (generateOrderBy) {
439
- writer.writeLine(`orderBy: [${orderByTypeName}, 'asc' | 'desc'][];`);
442
+ writer.writeLine(`orderBy: ${orderByTypeName}[];`);
440
443
  }
441
444
  });
442
445
  }
@@ -485,6 +488,9 @@ function createTsDescriptor(capitalizedName, schemaDef) {
485
488
  parameterNames: [],
486
489
  data: (_a = schemaDef.data) === null || _a === void 0 ? void 0 : _a.map(param => mapParameterToTsFieldDescriptor(param))
487
490
  };
491
+ if (schemaDef.orderByColumns) {
492
+ tsDescriptor.orderByColumns = schemaDef.orderByColumns;
493
+ }
488
494
  if (schemaDef.nestedInfo) {
489
495
  const nestedDescriptor2 = schemaDef.nestedInfo.map((relation) => {
490
496
  const tsRelation = {
@@ -603,12 +609,12 @@ function _writeCopyFunction(writer, params) {
603
609
  });
604
610
  }
605
611
  function _writeExecFunction(writer, params) {
606
- const { functionName, paramsType, dataType, returnType, parameters, generateNested, nestedType } = params;
612
+ const { functionName, paramsType, dataType, returnType, parameters, orderByTypeName, orderByColumns, generateNested, nestedType } = params;
607
613
  let functionParams = params.queryType === 'Copy' ? 'client: pg.Client | pg.PoolClient' : 'client: pg.Client | pg.Pool | pg.PoolClient';
608
614
  if (params.data.length > 0) {
609
615
  functionParams += `, data: ${dataType}`;
610
616
  }
611
- if (parameters.length > 0) {
617
+ if (parameters.length > 0 || orderByColumns.length > 0) {
612
618
  functionParams += `, params: ${paramsType}`;
613
619
  }
614
620
  const allParamters = [...params.data.map(param => paramToDriver(param, 'data')),
@@ -673,6 +679,34 @@ function _writeExecFunction(writer, params) {
673
679
  });
674
680
  writer.writeLine('return result;');
675
681
  });
682
+ if (orderByColumns.length > 0) {
683
+ writer.blankLine();
684
+ writer.writeLine(`const orderByColumns = [${orderByColumns.map(col => `'${col}'`).join(', ')}] as const;`);
685
+ writer.blankLine();
686
+ writer.write(`export type ${orderByTypeName} =`).block(() => {
687
+ writer.writeLine('column: typeof orderByColumns[number];');
688
+ writer.writeLine(`direction: 'asc' | 'desc';`);
689
+ });
690
+ writer.blankLine();
691
+ writer.write(`function buildOrderBy(orderBy: ${orderByTypeName}[]): string`).block(() => {
692
+ writer.write('if (!Array.isArray(orderBy) || orderBy.length === 0)').block(() => {
693
+ writer.writeLine(`throw new Error('orderBy must be a non-empty array');`);
694
+ });
695
+ writer.blankLine();
696
+ writer.write('for (const { column, direction } of orderBy)').block(() => {
697
+ writer.write('if (!orderByColumns.includes(column))').block(() => {
698
+ writer.writeLine('throw new Error(`Invalid orderBy column: ${column}`);');
699
+ });
700
+ writer.write(`if (direction !== 'asc' && direction !== 'desc')`).block(() => {
701
+ writer.writeLine('throw new Error(`Invalid orderBy direction: ${direction}`);');
702
+ });
703
+ });
704
+ writer.blankLine();
705
+ writer.writeLine('return orderBy');
706
+ writer.indent().write('.map(({ column, direction }) => `"${column}" ${direction.toUpperCase()}`)').newLine();
707
+ writer.indent().write(`.join(', ');`).newLine();
708
+ });
709
+ }
676
710
  if (generateNested) {
677
711
  writer.blankLine();
678
712
  const relationType = (0, code_generator_1.generateRelationType)(functionName, nestedType);