typesql-cli 0.8.0-alpha.3 → 0.8.0-alpha.5

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typesql-cli",
3
- "version": "0.8.0-alpha.3",
3
+ "version": "0.8.0-alpha.5",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -22,7 +22,7 @@ function createTsDescriptor(queryInfo) {
22
22
  const tsDescriptor = {
23
23
  sql: queryInfo.sql,
24
24
  queryType: "Select",
25
- multipleRowsResult: false,
25
+ multipleRowsResult: queryInfo.multipleRowsResult,
26
26
  columns: queryInfo.columns.map(col => mapColumnToTsFieldDescriptor(col)),
27
27
  parameterNames: [],
28
28
  parameters: queryInfo.parameters.map(param => mapParameterToTsFieldDescriptor(param))
@@ -93,7 +93,8 @@ function generateCodeFromTsDescriptor(queryName, tsDescriptor) {
93
93
  let functionArguments = `db: Database`;
94
94
  functionArguments += tsDescriptor.parameters.length > 0 || generateOrderBy ? ', params: ' + paramsTypeName : '';
95
95
  const queryParams = tsDescriptor.parameters.length > 0 ? '[' + tsDescriptor.parameters.map(param => 'params.' + param.name).join(', ') + ']' : '';
96
- writer.write(`export function ${camelCaseName}(${functionArguments}): ${resultTypeName}[]`).block(() => {
96
+ const returnType = tsDescriptor.multipleRowsResult ? `${resultTypeName}[]` : `${resultTypeName} | null`;
97
+ writer.write(`export function ${camelCaseName}(${functionArguments}): ${returnType}`).block(() => {
97
98
  const sqlSplit = sql.split('\n');
98
99
  writer.write('const sql = `').newLine();
99
100
  sqlSplit.forEach(sqlLine => {
@@ -103,7 +104,7 @@ function generateCodeFromTsDescriptor(queryName, tsDescriptor) {
103
104
  writer.write('return db.prepare(sql)').newLine();
104
105
  writer.indent().write('.raw(true)').newLine();
105
106
  writer.indent().write(`.all(${queryParams})`).newLine();
106
- writer.indent().write(`.map(data => mapArrayTo${resultTypeName}(data));`);
107
+ writer.indent().write(`.map(data => mapArrayTo${resultTypeName}(data))${tsDescriptor.multipleRowsResult ? '' : '[0]'};`);
107
108
  });
108
109
  writer.blankLine();
109
110
  writer.write(`function mapArrayTo${resultTypeName}(data: any) `).block(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"code-generator.js","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/code-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-generator.js","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/code-generator.ts"],"names":[],"mappings":"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"}
@@ -58,7 +58,7 @@ function describeSQL(sql, sql_stmtContext, dbSchema, namedParameters) {
58
58
  const schemaDef = {
59
59
  sql,
60
60
  queryType: "Select",
61
- multipleRowsResult: (0, traverse_1.isMultipleRowResult)(sql_stmtContext),
61
+ multipleRowsResult: (0, traverse_1.isMultipleRowResult)(sql_stmtContext, queryResult.fromColumns),
62
62
  columns: columnResult,
63
63
  parameters: paramsResult
64
64
  };
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/parser.ts"],"names":[],"mappings":";;;AAAA,6CAAiD;AAEjD,iEAAgG;AAChG,yCAA2E;AAE3E,qFAAyE;AACzE,yDAAsD;AACtD,sDAAqE;AAErE,SAAgB,QAAQ,CAAC,GAAW,EAAE,QAAwB;IAE1D,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,IAAA,8BAAa,EAAC,GAAG,CAAC,CAAC;IAElE,MAAM,MAAM,GAAG,IAAA,iBAAW,EAAC,GAAG,CAAC,CAAC;IAEhC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAEnC,OAAO,WAAW,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;AAE1E,CAAC;AAVD,4BAUC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,eAAgC,EAAE,QAAwB,EAAE,eAAyB;IAEnH,MAAM,eAAe,GAAoB;QACrC,QAAQ;QACR,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,EAAE;QACf,eAAe,EAAE,EAAE;QACnB,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,KAAK;QACZ,cAAc,EAAE;YACZ,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,EAAE;SACZ;KACJ,CAAA;IAED,MAAM,WAAW,GAAG,IAAA,mCAAwB,EAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IAE/E,MAAM,aAAa,GAAqB,EAAE,CAAA,CAAC,kBAAkB;IAC7D,IAAA,aAAK,EAAC,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACjD,MAAM,UAAU,GAAG,IAAA,gCAAU,EAAC,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC;QAClC,MAAM,OAAO,GAAe;YACxB,UAAU,EAAE,GAAG,CAAC,IAAI;YACpB,IAAI,EAAE,IAAA,kCAAiB,EAAC,UAAU,CAAC;YACnC,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,GAAG,CAAC,KAAK;SACnB,CAAA;QACD,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC,CAAA;IACF,MAAM,YAAY,GAAG,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACjE,MAAM,UAAU,GAAG,IAAA,gCAAU,EAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,aAAa,GAAG,IAAI,CAAC,CAAA,iBAAiB;QAC5C,MAAM,OAAO,GAAiB;YAC1B,IAAI,EAAE,eAAe,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;YAChG,UAAU,EAAE,IAAA,kCAAiB,EAAC,UAAU,CAAC;YACzC,OAAO,EAAE,aAAa;SACzB,CAAA;QACD,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC,CAAA;IAEF,MAAM,SAAS,GAAc;QACzB,GAAG;QACH,SAAS,EAAE,QAAQ;QACnB,kBAAkB,EAAE,IAAA,8BAAmB,EAAC,eAAe,CAAC;QACxD,OAAO,EAAE,YAAY;QACrB,UAAU,EAAE,YAAY;KAC3B,CAAA;IACD,OAAO,IAAA,cAAK,EAAC,SAAS,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/parser.ts"],"names":[],"mappings":";;;AAAA,6CAAiD;AAEjD,iEAAgG;AAChG,yCAA2E;AAE3E,qFAAyE;AACzE,yDAAsD;AACtD,sDAAqE;AAErE,SAAgB,QAAQ,CAAC,GAAW,EAAE,QAAwB;IAE1D,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,IAAA,8BAAa,EAAC,GAAG,CAAC,CAAC;IAElE,MAAM,MAAM,GAAG,IAAA,iBAAW,EAAC,GAAG,CAAC,CAAC;IAEhC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAEnC,OAAO,WAAW,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;AAE1E,CAAC;AAVD,4BAUC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,eAAgC,EAAE,QAAwB,EAAE,eAAyB;IAEnH,MAAM,eAAe,GAAoB;QACrC,QAAQ;QACR,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,EAAE;QACf,eAAe,EAAE,EAAE;QACnB,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,KAAK;QACZ,cAAc,EAAE;YACZ,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,EAAE;SACZ;KACJ,CAAA;IAED,MAAM,WAAW,GAAG,IAAA,mCAAwB,EAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IAE/E,MAAM,aAAa,GAAqB,EAAE,CAAA,CAAC,kBAAkB;IAC7D,IAAA,aAAK,EAAC,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACjD,MAAM,UAAU,GAAG,IAAA,gCAAU,EAAC,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC;QAClC,MAAM,OAAO,GAAe;YACxB,UAAU,EAAE,GAAG,CAAC,IAAI;YACpB,IAAI,EAAE,IAAA,kCAAiB,EAAC,UAAU,CAAC;YACnC,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,GAAG,CAAC,KAAK;SACnB,CAAA;QACD,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC,CAAA;IACF,MAAM,YAAY,GAAG,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACjE,MAAM,UAAU,GAAG,IAAA,gCAAU,EAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,aAAa,GAAG,IAAI,CAAC,CAAA,iBAAiB;QAC5C,MAAM,OAAO,GAAiB;YAC1B,IAAI,EAAE,eAAe,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;YAChG,UAAU,EAAE,IAAA,kCAAiB,EAAC,UAAU,CAAC;YACzC,OAAO,EAAE,aAAa;SACzB,CAAA;QACD,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC,CAAA;IAEF,MAAM,SAAS,GAAc;QACzB,GAAG;QACH,SAAS,EAAE,QAAQ;QACnB,kBAAkB,EAAE,IAAA,8BAAmB,EAAC,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC;QACjF,OAAO,EAAE,YAAY;QACrB,UAAU,EAAE,YAAY;KAC3B,CAAA;IACD,OAAO,IAAA,cAAK,EAAC,SAAS,CAAC,CAAC;AAC5B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { Sql_stmtContext } from "@wsporto/ts-mysql-parser/dist/sqlite";
2
- import { TraverseContext } from "../mysql-query-analyzer/types";
2
+ import { ColumnDef, TraverseContext } from "../mysql-query-analyzer/types";
3
3
  import { QuerySpecificationResult } from "../mysql-query-analyzer/traverse";
4
4
  export declare function traverse_Sql_stmtContext(sql_stmt: Sql_stmtContext, traverseContext: TraverseContext): QuerySpecificationResult;
5
- export declare function isMultipleRowResult(sql_stmtContext: Sql_stmtContext): boolean;
5
+ export declare function isMultipleRowResult(sql_stmtContext: Sql_stmtContext, fromColumns: ColumnDef[]): boolean;
6
6
  //# sourceMappingURL=traverse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,eAAe,EAAyG,MAAM,sCAAsC,CAAC;AAClM,OAAO,EAAa,eAAe,EAAmC,MAAM,+BAA+B,CAAC;AAG5G,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,GAAG,wBAAwB,CAQ9H;AAoTD,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,eAAe,WAkBnE"}
1
+ {"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,eAAe,EAAyG,MAAM,sCAAsC,CAAC;AAClM,OAAO,EAAE,SAAS,EAAE,eAAe,EAAmC,MAAM,+BAA+B,CAAC;AAG5G,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,GAAG,wBAAwB,CAQ9H;AA4UD,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,WAwB7F"}
@@ -89,7 +89,7 @@ function traverse_select_stmt(select_stmt, traverseContext) {
89
89
  });
90
90
  const querySpecification = {
91
91
  columns,
92
- fromColumns: []
92
+ fromColumns: columnsResult //TODO - return isMultipleRowResult instead
93
93
  };
94
94
  return querySpecification;
95
95
  });
@@ -160,6 +160,24 @@ function traverse_expr(expr, traverseContext) {
160
160
  }
161
161
  return functionType;
162
162
  }
163
+ if (function_name == 'concat') {
164
+ const functionType = (0, collect_constraints_1.freshVar)(expr.getText(), 'TEXT');
165
+ expr.expr_list().forEach(paramExpr => {
166
+ const paramType = traverse_expr(paramExpr, traverseContext);
167
+ traverseContext.constraints.push({
168
+ expression: expr.getText(),
169
+ type1: functionType,
170
+ type2: paramType
171
+ });
172
+ if (paramType.kind == 'TypeVar') {
173
+ functionType.table = paramType.table;
174
+ }
175
+ });
176
+ return functionType;
177
+ }
178
+ if (function_name) {
179
+ throw Error('traverse_expr: function not supported:' + function_name);
180
+ }
163
181
  const column_name = expr.column_name();
164
182
  if (column_name) {
165
183
  const fieldName = (0, select_columns_1.splitName)(column_name.getText());
@@ -234,6 +252,12 @@ function traverse_expr(expr, traverseContext) {
234
252
  });
235
253
  return exprType;
236
254
  }
255
+ if (expr.OR_() || expr.AND_()) {
256
+ const expr1 = expr.expr(0);
257
+ const expr2 = expr.expr(1);
258
+ traverse_expr(expr1, traverseContext);
259
+ return traverse_expr(expr2, traverseContext);
260
+ }
237
261
  if (expr.IN_()) {
238
262
  const inExprLeft = expr.expr(0);
239
263
  const inExprRight = expr.expr(1);
@@ -250,11 +274,10 @@ function traverse_expr(expr, traverseContext) {
250
274
  });
251
275
  return (0, collect_constraints_1.freshVar)(expr.getText(), 'tinyint');
252
276
  }
253
- if (expr.OR_() || expr.AND_()) {
254
- const expr1 = expr.expr(0);
255
- const expr2 = expr.expr(1);
256
- traverse_expr(expr1, traverseContext);
257
- traverse_expr(expr2, traverseContext);
277
+ if (expr.OPEN_PAR() && expr.CLOSE_PAR()) {
278
+ expr.expr_list().forEach(innerExpr => {
279
+ traverse_expr(innerExpr, traverseContext);
280
+ });
258
281
  return (0, collect_constraints_1.freshVar)(expr.getText(), 'tinyint');
259
282
  }
260
283
  const select_stmt = expr.select_stmt();
@@ -306,17 +329,23 @@ function inferNotNull_expr(expr, fromColumns) {
306
329
  }
307
330
  return false;
308
331
  }
309
- function isMultipleRowResult(sql_stmtContext) {
332
+ function isMultipleRowResult(sql_stmtContext, fromColumns) {
310
333
  const select_stmt = sql_stmtContext.select_stmt();
311
334
  if (select_stmt.select_core_list().length == 1) { //UNION queries are multipleRowsResult = true
312
- const from = select_stmt.select_core(0).FROM_();
335
+ const select_core = select_stmt.select_core(0);
336
+ const from = select_core.FROM_();
313
337
  if (!from) {
314
338
  return false;
315
339
  }
316
- const agreegateFunction = select_stmt.select_core(0).result_column_list().every(result_column => isAgregateFunction(result_column));
340
+ const agreegateFunction = select_core.result_column_list().every(result_column => isAgregateFunction(result_column));
317
341
  if (agreegateFunction) {
318
342
  return false;
319
343
  }
344
+ const _whereExpr = select_core._whereExpr;
345
+ const isSingleResult = _whereExpr && where_is_single_result(_whereExpr, fromColumns);
346
+ if (isSingleResult == true) {
347
+ return false;
348
+ }
320
349
  }
321
350
  if (isLimitOne(select_stmt)) {
322
351
  return false;
@@ -338,4 +367,30 @@ function isLimitOne(select_stmt) {
338
367
  }
339
368
  return false;
340
369
  }
370
+ function where_is_single_result(whereExpr, fromColumns) {
371
+ if (whereExpr.ASSIGN()) {
372
+ const isSingleResult = is_single_result(whereExpr, fromColumns);
373
+ return isSingleResult;
374
+ }
375
+ const expr_list = whereExpr.expr_list();
376
+ const onlyAnd = !whereExpr.OR_();
377
+ const oneSingle = expr_list.some(expr => is_single_result(expr, fromColumns));
378
+ if (onlyAnd && oneSingle) {
379
+ return true;
380
+ }
381
+ return false;
382
+ }
383
+ function is_single_result(expr, fromColumns) {
384
+ const expr1 = expr.expr(0);
385
+ const expr2 = expr.expr(1); //TODO: 1 = id
386
+ const column_name = expr1 === null || expr1 === void 0 ? void 0 : expr1.column_name();
387
+ if (column_name && expr.ASSIGN()) {
388
+ const fieldName = (0, select_columns_1.splitName)(column_name.getText());
389
+ const column = (0, select_columns_1.findColumn)(fieldName, fromColumns);
390
+ if (column.columnKey == 'PRI') {
391
+ return true;
392
+ }
393
+ }
394
+ return false;
395
+ }
341
396
  //# sourceMappingURL=traverse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"traverse.js","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/traverse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"traverse.js","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/traverse.ts"],"names":[],"mappings":"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"}