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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/cli.js +36 -39
  2. package/cli.js.map +1 -1
  3. package/code-generator.d.ts +4 -4
  4. package/code-generator.d.ts.map +1 -1
  5. package/code-generator.js +17 -19
  6. package/code-generator.js.map +1 -1
  7. package/describe-query.d.ts +2 -3
  8. package/describe-query.d.ts.map +1 -1
  9. package/describe-query.js +3 -2
  10. package/describe-query.js.map +1 -1
  11. package/mysql-query-analyzer/collect-constraints.d.ts +2 -2
  12. package/mysql-query-analyzer/collect-constraints.d.ts.map +1 -1
  13. package/mysql-query-analyzer/collect-constraints.js +1 -1
  14. package/mysql-query-analyzer/collect-constraints.js.map +1 -1
  15. package/mysql-query-analyzer/traverse.d.ts +19 -0
  16. package/mysql-query-analyzer/traverse.d.ts.map +1 -1
  17. package/mysql-query-analyzer/traverse.js +15 -15
  18. package/mysql-query-analyzer/traverse.js.map +1 -1
  19. package/mysql-query-analyzer/types.d.ts +1 -1
  20. package/mysql-query-analyzer/types.d.ts.map +1 -1
  21. package/mysql-query-analyzer/unify.d.ts.map +1 -1
  22. package/mysql-query-analyzer/unify.js +8 -0
  23. package/mysql-query-analyzer/unify.js.map +1 -1
  24. package/package.json +1 -1
  25. package/queryExectutor.d.ts +8 -15
  26. package/queryExectutor.d.ts.map +1 -1
  27. package/queryExectutor.js +119 -121
  28. package/queryExectutor.js.map +1 -1
  29. package/sql-generator.d.ts +5 -4
  30. package/sql-generator.d.ts.map +1 -1
  31. package/sql-generator.js +24 -21
  32. package/sql-generator.js.map +1 -1
  33. package/sqlite-query-analyzer/code-generator.d.ts +3 -1
  34. package/sqlite-query-analyzer/code-generator.d.ts.map +1 -1
  35. package/sqlite-query-analyzer/code-generator.js +88 -29
  36. package/sqlite-query-analyzer/code-generator.js.map +1 -1
  37. package/sqlite-query-analyzer/parser.d.ts +2 -0
  38. package/sqlite-query-analyzer/parser.d.ts.map +1 -1
  39. package/sqlite-query-analyzer/parser.js +155 -31
  40. package/sqlite-query-analyzer/parser.js.map +1 -1
  41. package/sqlite-query-analyzer/query-executor.d.ts +7 -3
  42. package/sqlite-query-analyzer/query-executor.d.ts.map +1 -1
  43. package/sqlite-query-analyzer/query-executor.js +65 -6
  44. package/sqlite-query-analyzer/query-executor.js.map +1 -1
  45. package/sqlite-query-analyzer/sql-generator.d.ts +6 -0
  46. package/sqlite-query-analyzer/sql-generator.d.ts.map +1 -0
  47. package/sqlite-query-analyzer/sql-generator.js +96 -0
  48. package/sqlite-query-analyzer/sql-generator.js.map +1 -0
  49. package/sqlite-query-analyzer/sqlite-crud-generator.d.ts +6 -0
  50. package/sqlite-query-analyzer/sqlite-crud-generator.d.ts.map +1 -0
  51. package/sqlite-query-analyzer/sqlite-crud-generator.js +96 -0
  52. package/sqlite-query-analyzer/sqlite-crud-generator.js.map +1 -0
  53. package/sqlite-query-analyzer/traverse.d.ts +4 -4
  54. package/sqlite-query-analyzer/traverse.d.ts.map +1 -1
  55. package/sqlite-query-analyzer/traverse.js +384 -82
  56. package/sqlite-query-analyzer/traverse.js.map +1 -1
  57. package/sqlite-query-analyzer/types.d.ts +1 -1
  58. package/sqlite-query-analyzer/types.d.ts.map +1 -1
  59. package/types.d.ts +15 -1
  60. package/types.d.ts.map +1 -1
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateDeleteStatement = exports.generateUpdateStatement = exports.generateInsertStatement = exports.generateSelectStatement = void 0;
7
+ const code_block_writer_1 = __importDefault(require("code-block-writer"));
8
+ function generateSelectStatement(tableName, columns) {
9
+ const keys = columns.filter(col => col.columnKey = 'PRI');
10
+ if (keys.length == 0) {
11
+ keys.push(...columns.filter(col => col.columnKey == 'UNI'));
12
+ }
13
+ const writer = new code_block_writer_1.default();
14
+ writer.writeLine("SELECT");
15
+ columns.forEach((col, columnIndex) => {
16
+ writer.indent().write(escapeColumn(col.column));
17
+ writer.conditionalWrite(columnIndex < columns.length - 1, ',');
18
+ writer.newLine();
19
+ });
20
+ writer.writeLine(`FROM ${escapeTableName(tableName)}`);
21
+ if (keys.length > 0) {
22
+ writer.write(`WHERE `);
23
+ writer.write(`${escapeColumn(keys[0].column)} = :${keys[0].column}`);
24
+ }
25
+ return writer.toString();
26
+ }
27
+ exports.generateSelectStatement = generateSelectStatement;
28
+ function generateInsertStatement(tableName, dbSchema) {
29
+ const columns = dbSchema.filter(col => !col.autoincrement);
30
+ const writer = new code_block_writer_1.default();
31
+ writer.writeLine(`INSERT INTO ${escapeTableName(tableName)}`);
32
+ writer.writeLine("(");
33
+ columns.forEach((col, columnIndex) => {
34
+ writer.indent().write(escapeColumn(col.column));
35
+ writer.conditionalWrite(columnIndex != columns.length - 1, ',');
36
+ writer.newLine();
37
+ });
38
+ writer.writeLine(')');
39
+ writer.writeLine("VALUES");
40
+ writer.writeLine("(");
41
+ columns.forEach((col, columnIndex) => {
42
+ writer.indent().write(':' + col.column);
43
+ writer.conditionalWrite(columnIndex < columns.length - 1, ',');
44
+ writer.newLine();
45
+ });
46
+ writer.write(")");
47
+ return writer.toString();
48
+ }
49
+ exports.generateInsertStatement = generateInsertStatement;
50
+ function generateUpdateStatement(tableName, dbSchema) {
51
+ const columns = dbSchema.filter(col => !col.autoincrement);
52
+ const keys = dbSchema.filter(col => col.columnKey = 'PRI');
53
+ if (keys.length == 0) {
54
+ keys.push(...dbSchema.filter(col => col.columnKey == 'UNI'));
55
+ }
56
+ const writer = new code_block_writer_1.default();
57
+ writer.writeLine(`UPDATE ${escapeTableName(tableName)}`);
58
+ writer.writeLine("SET");
59
+ columns.forEach((col, columnIndex) => {
60
+ writer.indent().write(`${escapeColumn(col.column)} = IF(:${col.column}Set, :${col.column}, ${escapeColumn(col.column)})`);
61
+ writer.conditionalWrite(columnIndex != columns.length - 1, ',');
62
+ writer.newLine();
63
+ });
64
+ if (keys.length > 0) {
65
+ writer.writeLine('WHERE');
66
+ writer.indent().write(`${escapeColumn(keys[0].column)} = :${keys[0].column}`);
67
+ }
68
+ return writer.toString();
69
+ }
70
+ exports.generateUpdateStatement = generateUpdateStatement;
71
+ function generateDeleteStatement(tableName, dbSchema) {
72
+ const keys = dbSchema.filter(col => col.columnKey = 'PRI');
73
+ if (keys.length == 0) {
74
+ keys.push(...dbSchema.filter(col => col.columnKey == 'UNI'));
75
+ }
76
+ const writer = new code_block_writer_1.default();
77
+ writer.writeLine(`DELETE FROM ${escapeTableName(tableName)}`);
78
+ if (keys.length > 0) {
79
+ writer.write('WHERE ');
80
+ writer.write(`${escapeColumn(keys[0].column)} = :${keys[0].column}`);
81
+ }
82
+ return writer.toString();
83
+ }
84
+ exports.generateDeleteStatement = generateDeleteStatement;
85
+ //Permitted characters in unquoted identifiers: ASCII: [0-9,a-z,A-Z$_]
86
+ function escapeTableName(tableName) {
87
+ const validPattern = /^[a-zA-Z0-9_$]+$/g;
88
+ if (!validPattern.test(tableName)) {
89
+ return `\`${tableName}\``;
90
+ }
91
+ return tableName;
92
+ }
93
+ function escapeColumn(column) {
94
+ return `\`${column}\``;
95
+ }
96
+ //# sourceMappingURL=sql-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-generator.js","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/sql-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { ColumnSchema } from "../mysql-query-analyzer/types";
2
+ export declare function generateSelectStatement(tableName: string, columns: ColumnSchema[]): string;
3
+ export declare function generateInsertStatement(tableName: string, dbSchema: ColumnSchema[]): string;
4
+ export declare function generateUpdateStatement(tableName: string, dbSchema: ColumnSchema[]): string;
5
+ export declare function generateDeleteStatement(tableName: string, dbSchema: ColumnSchema[]): string;
6
+ //# sourceMappingURL=sqlite-crud-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-crud-generator.d.ts","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/sqlite-crud-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,UAuBjF;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,UAwBlF;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,UAsBlF;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,UAclF"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateDeleteStatement = exports.generateUpdateStatement = exports.generateInsertStatement = exports.generateSelectStatement = void 0;
7
+ const code_block_writer_1 = __importDefault(require("code-block-writer"));
8
+ function generateSelectStatement(tableName, columns) {
9
+ const keys = columns.filter(col => col.columnKey = 'PRI');
10
+ if (keys.length == 0) {
11
+ keys.push(...columns.filter(col => col.columnKey == 'UNI'));
12
+ }
13
+ const writer = new code_block_writer_1.default();
14
+ writer.writeLine("SELECT");
15
+ columns.forEach((col, columnIndex) => {
16
+ writer.indent().write(escapeColumn(col.column));
17
+ writer.conditionalWrite(columnIndex < columns.length - 1, ',');
18
+ writer.newLine();
19
+ });
20
+ writer.writeLine(`FROM ${escapeTableName(tableName)}`);
21
+ if (keys.length > 0) {
22
+ writer.write(`WHERE `);
23
+ writer.write(`${escapeColumn(keys[0].column)} = :${keys[0].column}`);
24
+ }
25
+ return writer.toString();
26
+ }
27
+ exports.generateSelectStatement = generateSelectStatement;
28
+ function generateInsertStatement(tableName, dbSchema) {
29
+ const columns = dbSchema.filter(col => !col.autoincrement);
30
+ const writer = new code_block_writer_1.default();
31
+ writer.writeLine(`INSERT INTO ${escapeTableName(tableName)}`);
32
+ writer.writeLine("(");
33
+ columns.forEach((col, columnIndex) => {
34
+ writer.indent().write(escapeColumn(col.column));
35
+ writer.conditionalWrite(columnIndex != columns.length - 1, ',');
36
+ writer.newLine();
37
+ });
38
+ writer.writeLine(')');
39
+ writer.writeLine("VALUES");
40
+ writer.writeLine("(");
41
+ columns.forEach((col, columnIndex) => {
42
+ writer.indent().write(':' + col.column);
43
+ writer.conditionalWrite(columnIndex < columns.length - 1, ',');
44
+ writer.newLine();
45
+ });
46
+ writer.write(")");
47
+ return writer.toString();
48
+ }
49
+ exports.generateInsertStatement = generateInsertStatement;
50
+ function generateUpdateStatement(tableName, dbSchema) {
51
+ const columns = dbSchema.filter(col => !col.autoincrement);
52
+ const keys = dbSchema.filter(col => col.columnKey = 'PRI');
53
+ if (keys.length == 0) {
54
+ keys.push(...dbSchema.filter(col => col.columnKey == 'UNI'));
55
+ }
56
+ const writer = new code_block_writer_1.default();
57
+ writer.writeLine(`UPDATE ${escapeTableName(tableName)}`);
58
+ writer.writeLine("SET");
59
+ columns.forEach((col, columnIndex) => {
60
+ writer.indent().write(`${escapeColumn(col.column)} = CASE WHEN :${col.column}Set THEN :${col.column} ELSE ${escapeColumn(col.column)}) END`);
61
+ writer.conditionalWrite(columnIndex != columns.length - 1, ',');
62
+ writer.newLine();
63
+ });
64
+ if (keys.length > 0) {
65
+ writer.writeLine('WHERE');
66
+ writer.indent().write(`${escapeColumn(keys[0].column)} = :${keys[0].column}`);
67
+ }
68
+ return writer.toString();
69
+ }
70
+ exports.generateUpdateStatement = generateUpdateStatement;
71
+ function generateDeleteStatement(tableName, dbSchema) {
72
+ const keys = dbSchema.filter(col => col.columnKey = 'PRI');
73
+ if (keys.length == 0) {
74
+ keys.push(...dbSchema.filter(col => col.columnKey == 'UNI'));
75
+ }
76
+ const writer = new code_block_writer_1.default();
77
+ writer.writeLine(`DELETE FROM ${escapeTableName(tableName)}`);
78
+ if (keys.length > 0) {
79
+ writer.write('WHERE ');
80
+ writer.write(`${escapeColumn(keys[0].column)} = :${keys[0].column}`);
81
+ }
82
+ return writer.toString();
83
+ }
84
+ exports.generateDeleteStatement = generateDeleteStatement;
85
+ //Permitted characters in unquoted identifiers: ASCII: [0-9,a-z,A-Z$_]
86
+ function escapeTableName(tableName) {
87
+ const validPattern = /^[a-zA-Z0-9_$]+$/g;
88
+ if (!validPattern.test(tableName)) {
89
+ return `[${tableName}]`;
90
+ }
91
+ return tableName;
92
+ }
93
+ function escapeColumn(column) {
94
+ return `[${column}]`;
95
+ }
96
+ //# sourceMappingURL=sqlite-crud-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-crud-generator.js","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/sqlite-crud-generator.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { Sql_stmtContext } from "@wsporto/ts-mysql-parser/dist/sqlite";
1
+ import { Select_stmtContext, Sql_stmtContext } from "@wsporto/ts-mysql-parser/dist/sqlite";
2
2
  import { ColumnDef, TraverseContext } from "../mysql-query-analyzer/types";
3
- import { QuerySpecificationResult } from "../mysql-query-analyzer/traverse";
4
- export declare function traverse_Sql_stmtContext(sql_stmt: Sql_stmtContext, traverseContext: TraverseContext): QuerySpecificationResult;
5
- export declare function isMultipleRowResult(sql_stmtContext: Sql_stmtContext, fromColumns: ColumnDef[]): boolean;
3
+ import { TraverseResult2 } from "../mysql-query-analyzer/traverse";
4
+ export declare function traverse_Sql_stmtContext(sql_stmt: Sql_stmtContext, traverseContext: TraverseContext): TraverseResult2;
5
+ export declare function isMultipleRowResult(select_stmt: Select_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,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"}
1
+ {"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAyL,MAAM,sCAAsC,CAAC;AAClR,OAAO,EAAE,SAAS,EAAE,eAAe,EAA6B,MAAM,+BAA+B,CAAC;AAGtG,OAAO,EAAsE,eAAe,EAAgB,MAAM,kCAAkC,CAAC;AAErJ,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,GAAG,eAAe,CA2BrH;AA6hBD,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,SAAS,EAAE,WAsB5F"}