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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) 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.map +1 -1
  16. package/mysql-query-analyzer/traverse.js +15 -15
  17. package/mysql-query-analyzer/traverse.js.map +1 -1
  18. package/mysql-query-analyzer/types.d.ts +1 -1
  19. package/mysql-query-analyzer/types.d.ts.map +1 -1
  20. package/package.json +1 -1
  21. package/queryExectutor.d.ts +8 -15
  22. package/queryExectutor.d.ts.map +1 -1
  23. package/queryExectutor.js +119 -121
  24. package/queryExectutor.js.map +1 -1
  25. package/sql-generator.d.ts +5 -4
  26. package/sql-generator.d.ts.map +1 -1
  27. package/sql-generator.js +24 -21
  28. package/sql-generator.js.map +1 -1
  29. package/sqlite-query-analyzer/code-generator.d.ts +3 -1
  30. package/sqlite-query-analyzer/code-generator.d.ts.map +1 -1
  31. package/sqlite-query-analyzer/code-generator.js +28 -13
  32. package/sqlite-query-analyzer/code-generator.js.map +1 -1
  33. package/sqlite-query-analyzer/parser.d.ts +2 -0
  34. package/sqlite-query-analyzer/parser.d.ts.map +1 -1
  35. package/sqlite-query-analyzer/parser.js +19 -6
  36. package/sqlite-query-analyzer/parser.js.map +1 -1
  37. package/sqlite-query-analyzer/query-executor.d.ts +7 -3
  38. package/sqlite-query-analyzer/query-executor.d.ts.map +1 -1
  39. package/sqlite-query-analyzer/query-executor.js +65 -6
  40. package/sqlite-query-analyzer/query-executor.js.map +1 -1
  41. package/sqlite-query-analyzer/sql-generator.d.ts +6 -0
  42. package/sqlite-query-analyzer/sql-generator.d.ts.map +1 -0
  43. package/sqlite-query-analyzer/sql-generator.js +96 -0
  44. package/sqlite-query-analyzer/sql-generator.js.map +1 -0
  45. package/sqlite-query-analyzer/sqlite-crud-generator.d.ts +6 -0
  46. package/sqlite-query-analyzer/sqlite-crud-generator.d.ts.map +1 -0
  47. package/sqlite-query-analyzer/sqlite-crud-generator.js +96 -0
  48. package/sqlite-query-analyzer/sqlite-crud-generator.js.map +1 -0
  49. package/sqlite-query-analyzer/traverse.d.ts.map +1 -1
  50. package/sqlite-query-analyzer/traverse.js +59 -39
  51. package/sqlite-query-analyzer/traverse.js.map +1 -1
  52. package/types.d.ts +15 -1
  53. package/types.d.ts.map +1 -1
package/queryExectutor.js CHANGED
@@ -9,143 +9,141 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.DbClient = void 0;
12
+ exports.explainSql = exports.selectTablesFromSchema = exports.loadTableSchema = exports.loadMysqlSchema = exports.createMysqlClient = exports.createMysqlClientForTest = void 0;
13
13
  const promise_1 = require("mysql2/promise");
14
14
  const Either_1 = require("fp-ts/lib/Either");
15
15
  const connectionNotOpenError = {
16
16
  name: 'Connection error',
17
17
  description: 'The database connection is not open.'
18
18
  };
19
- class DbClient {
20
- connect(connectionUri) {
21
- return __awaiter(this, void 0, void 0, function* () {
22
- try {
23
- this.pool = yield (0, promise_1.createPool)(connectionUri);
24
- const [rows] = yield this.pool.execute("select @@version as version");
25
- this.mySqlVersion = rows[0].version;
26
- //@ts-ignore
27
- this.database = this.pool.pool.config.connectionConfig.database;
28
- return (0, Either_1.right)(true);
29
- }
30
- catch (e) {
31
- const connError = {
32
- name: 'Connection error',
33
- description: e.message
34
- };
35
- return (0, Either_1.left)(connError);
36
- }
37
- });
38
- }
39
- closeConnection() {
40
- return __awaiter(this, void 0, void 0, function* () {
41
- if (this.pool != null) {
42
- this.pool.end();
43
- }
44
- });
45
- }
46
- loadDbSchema() {
47
- return __awaiter(this, void 0, void 0, function* () {
48
- const sql = `
49
- SELECT
50
- TABLE_SCHEMA as "schema", TABLE_NAME as "table",
51
- COLUMN_NAME as "column",
52
- IF(data_type = 'enum', COLUMN_TYPE, DATA_TYPE) as "column_type",
53
- if(IS_NULLABLE='NO', true, false) as "notNull",
54
- COLUMN_KEY as "columnKey",
55
- IF(EXTRA = 'auto_increment', true, false) as "autoincrement"
56
- FROM INFORMATION_SCHEMA.COLUMNS
57
- WHERE TABLE_SCHEMA = ?
58
- ORDER BY TABLE_NAME, ORDINAL_POSITION
59
- `;
60
- if (this.pool != null) {
61
- return this.pool.execute(sql, [this.database])
62
- .then(res => {
63
- const columns = res[0];
64
- return (0, Either_1.right)(columns.map(col => (Object.assign(Object.assign({}, col), { notNull: !!+col.notNull })))); //convert 1 to true, 0 to false
65
- });
66
- }
67
- return (0, Either_1.left)(connectionNotOpenError);
68
- });
69
- }
70
- loadTableSchema(tableName) {
71
- return __awaiter(this, void 0, void 0, function* () {
72
- const sql = `
19
+ function createMysqlClientForTest(databaseUri) {
20
+ return __awaiter(this, void 0, void 0, function* () {
21
+ const client = yield createMysqlClient(databaseUri);
22
+ if ((0, Either_1.isLeft)(client)) {
23
+ throw Error('Error createMysqlClientForTest');
24
+ }
25
+ return client.right;
26
+ });
27
+ }
28
+ exports.createMysqlClientForTest = createMysqlClientForTest;
29
+ function createMysqlClient(databaseUri) {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ try {
32
+ const pool = yield (0, promise_1.createPool)(databaseUri);
33
+ //@ts-ignore
34
+ const schema = pool.pool.config.connectionConfig.database;
35
+ const databaseVersion = yield getDatabaseVersion(pool);
36
+ return (0, Either_1.right)({
37
+ type: 'mysql',
38
+ client: pool,
39
+ databaseVersion,
40
+ schema,
41
+ isVersion8: isVersion8(databaseVersion)
42
+ });
43
+ }
44
+ catch (e) {
45
+ const connError = {
46
+ name: 'Connection error',
47
+ description: e.message
48
+ };
49
+ return (0, Either_1.left)(connError);
50
+ }
51
+ });
52
+ }
53
+ exports.createMysqlClient = createMysqlClient;
54
+ function getDatabaseVersion(conn) {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ const [rows] = yield conn.execute("select @@version as version");
57
+ const mySqlVersion = rows[0].version;
58
+ return mySqlVersion;
59
+ });
60
+ }
61
+ function loadMysqlSchema(conn, schema) {
62
+ return __awaiter(this, void 0, void 0, function* () {
63
+ const sql = `
73
64
  SELECT
74
- TABLE_SCHEMA as "schema",
75
- TABLE_NAME as "table",
65
+ TABLE_SCHEMA as "schema", TABLE_NAME as "table",
76
66
  COLUMN_NAME as "column",
77
- IF(data_type = 'enum', COLUMN_TYPE, DATA_TYPE) as "column_type",
78
- IF(IS_NULLABLE='NO', true, false) as "notNull",
67
+ IF(data_type = 'enum', COLUMN_TYPE, DATA_TYPE) as "column_type",
68
+ if(IS_NULLABLE='NO', true, false) as "notNull",
79
69
  COLUMN_KEY as "columnKey",
80
70
  IF(EXTRA = 'auto_increment', true, false) as "autoincrement"
81
71
  FROM INFORMATION_SCHEMA.COLUMNS
82
72
  WHERE TABLE_SCHEMA = ?
83
- AND TABLE_NAME = ?
84
73
  ORDER BY TABLE_NAME, ORDINAL_POSITION
85
74
  `;
86
- if (this.pool) {
87
- return this.pool.execute(sql, [this.database, tableName])
88
- .then(res => {
89
- const columns = res[0];
90
- return (0, Either_1.right)(columns);
91
- });
92
- }
93
- return (0, Either_1.left)(connectionNotOpenError);
75
+ return conn.execute(sql, [schema])
76
+ .then(res => {
77
+ const columns = res[0];
78
+ return (0, Either_1.right)(columns.map(col => (Object.assign(Object.assign({}, col), { notNull: !!+col.notNull })))); //convert 1 to true, 0 to false
94
79
  });
95
- }
96
- selectTablesFromSchema() {
97
- return __awaiter(this, void 0, void 0, function* () {
98
- const sql = `
99
- SELECT
100
- table_schema as "schema",
101
- table_name as "table"
102
- FROM information_schema.tables
103
- WHERE table_type = 'BASE TABLE' and table_schema = database()
104
- order by "schema", "table"
105
- `;
106
- if (this.pool) {
107
- return this.pool.execute(sql)
108
- .then(res => {
109
- const columns = res[0];
110
- return (0, Either_1.right)(columns);
111
- });
112
- }
113
- return (0, Either_1.left)(connectionNotOpenError);
80
+ });
81
+ }
82
+ exports.loadMysqlSchema = loadMysqlSchema;
83
+ function loadTableSchema(conn, schema, tableName) {
84
+ return __awaiter(this, void 0, void 0, function* () {
85
+ const sql = `
86
+ SELECT
87
+ TABLE_SCHEMA as "schema",
88
+ TABLE_NAME as "table",
89
+ COLUMN_NAME as "column",
90
+ IF(data_type = 'enum', COLUMN_TYPE, DATA_TYPE) as "column_type",
91
+ IF(IS_NULLABLE='NO', true, false) as "notNull",
92
+ COLUMN_KEY as "columnKey",
93
+ IF(EXTRA = 'auto_increment', true, false) as "autoincrement"
94
+ FROM INFORMATION_SCHEMA.COLUMNS
95
+ WHERE TABLE_SCHEMA = ?
96
+ AND TABLE_NAME = ?
97
+ ORDER BY TABLE_NAME, ORDINAL_POSITION
98
+ `;
99
+ return conn.execute(sql, [schema, tableName])
100
+ .then(res => {
101
+ const columns = res[0];
102
+ return (0, Either_1.right)(columns);
114
103
  });
115
- }
116
- createParams(sql, paramValue) {
117
- let params = [];
118
- for (var i = 0; i < sql.length; i++) {
119
- if (sql[i] === "?")
120
- params.push(paramValue);
121
- }
122
- return params;
123
- }
124
- explainSql(sql) {
125
- return __awaiter(this, void 0, void 0, function* () {
126
- if (this.pool) {
127
- const conn = yield this.pool.getConnection();
128
- return conn.prepare(sql)
129
- .then(() => {
130
- return (0, Either_1.right)(true);
131
- }).finally(() => {
132
- var _a;
133
- (_a = this.pool) === null || _a === void 0 ? void 0 : _a.releaseConnection(conn);
134
- }).catch((err) => this.createInvalidSqlError(err));
135
- }
136
- return (0, Either_1.left)(connectionNotOpenError);
104
+ });
105
+ }
106
+ exports.loadTableSchema = loadTableSchema;
107
+ function selectTablesFromSchema(conn) {
108
+ return __awaiter(this, void 0, void 0, function* () {
109
+ const sql = `
110
+ SELECT
111
+ table_schema as "schema",
112
+ table_name as "table"
113
+ FROM information_schema.tables
114
+ WHERE table_type = 'BASE TABLE' and table_schema = database()
115
+ order by "schema", "table"
116
+ `;
117
+ return conn.execute(sql)
118
+ .then(res => {
119
+ const columns = res[0];
120
+ return (0, Either_1.right)(columns);
137
121
  });
138
- }
139
- createInvalidSqlError(err) {
140
- const error = {
141
- name: 'Invalid sql',
142
- description: err.message
143
- };
144
- return (0, Either_1.left)(error);
145
- }
146
- isVersion8() {
147
- return this.mySqlVersion.startsWith("8.");
148
- }
122
+ });
123
+ }
124
+ exports.selectTablesFromSchema = selectTablesFromSchema;
125
+ function explainSql(pool, sql) {
126
+ return __awaiter(this, void 0, void 0, function* () {
127
+ const conn = yield pool.getConnection();
128
+ ;
129
+ return conn.prepare(sql)
130
+ .then(() => {
131
+ return (0, Either_1.right)(true);
132
+ }).catch((err) => createInvalidSqlError(err))
133
+ .finally(() => {
134
+ conn.release();
135
+ });
136
+ });
137
+ }
138
+ exports.explainSql = explainSql;
139
+ function createInvalidSqlError(err) {
140
+ const error = {
141
+ name: 'Invalid sql',
142
+ description: err.message
143
+ };
144
+ return (0, Either_1.left)(error);
145
+ }
146
+ function isVersion8(mySqlVersion) {
147
+ return mySqlVersion.startsWith("8.");
149
148
  }
150
- exports.DbClient = DbClient;
151
149
  //# sourceMappingURL=queryExectutor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queryExectutor.js","sourceRoot":"","sources":["../../src/queryExectutor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queryExectutor.js","sourceRoot":"","sources":["../../src/queryExectutor.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
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;
2
+ import { TypeSqlDialect } from "./types";
3
+ export declare function generateSelectStatement(dialect: TypeSqlDialect, tableName: string, columns: ColumnSchema[]): string;
4
+ export declare function generateInsertStatement(dialect: TypeSqlDialect, tableName: string, dbSchema: ColumnSchema[]): string;
5
+ export declare function generateUpdateStatement(dialect: TypeSqlDialect, tableName: string, dbSchema: ColumnSchema[]): string;
6
+ export declare function generateDeleteStatement(dialect: TypeSqlDialect, tableName: string, dbSchema: ColumnSchema[]): string;
6
7
  //# sourceMappingURL=sql-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sql-generator.d.ts","sourceRoot":"","sources":["../../src/sql-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAG5D,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"}
1
+ {"version":3,"file":"sql-generator.d.ts","sourceRoot":"","sources":["../../src/sql-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,UAuB1G;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,UAwB3G;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,UAsB3G;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,UAc3G"}
package/sql-generator.js CHANGED
@@ -5,33 +5,33 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.generateDeleteStatement = exports.generateUpdateStatement = exports.generateInsertStatement = exports.generateSelectStatement = void 0;
7
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');
8
+ function generateSelectStatement(dialect, tableName, columns) {
9
+ const keys = columns.filter(col => col.columnKey == 'PRI');
10
10
  if (keys.length == 0) {
11
11
  keys.push(...columns.filter(col => col.columnKey == 'UNI'));
12
12
  }
13
13
  const writer = new code_block_writer_1.default();
14
14
  writer.writeLine("SELECT");
15
15
  columns.forEach((col, columnIndex) => {
16
- writer.indent().write(escapeColumn(col.column));
16
+ writer.indent().write(escapeColumn(dialect, col.column));
17
17
  writer.conditionalWrite(columnIndex < columns.length - 1, ',');
18
18
  writer.newLine();
19
19
  });
20
- writer.writeLine(`FROM ${escapeTableName(tableName)}`);
20
+ writer.writeLine(`FROM ${escapeTableName(dialect, tableName)}`);
21
21
  if (keys.length > 0) {
22
22
  writer.write(`WHERE `);
23
- writer.write(`${escapeColumn(keys[0].column)} = :${keys[0].column}`);
23
+ writer.write(`${escapeColumn(dialect, keys[0].column)} = :${keys[0].column}`);
24
24
  }
25
25
  return writer.toString();
26
26
  }
27
27
  exports.generateSelectStatement = generateSelectStatement;
28
- function generateInsertStatement(tableName, dbSchema) {
28
+ function generateInsertStatement(dialect, tableName, dbSchema) {
29
29
  const columns = dbSchema.filter(col => !col.autoincrement);
30
30
  const writer = new code_block_writer_1.default();
31
- writer.writeLine(`INSERT INTO ${escapeTableName(tableName)}`);
31
+ writer.writeLine(`INSERT INTO ${escapeTableName(dialect, tableName)}`);
32
32
  writer.writeLine("(");
33
33
  columns.forEach((col, columnIndex) => {
34
- writer.indent().write(escapeColumn(col.column));
34
+ writer.indent().write(escapeColumn(dialect, col.column));
35
35
  writer.conditionalWrite(columnIndex != columns.length - 1, ',');
36
36
  writer.newLine();
37
37
  });
@@ -47,50 +47,53 @@ function generateInsertStatement(tableName, dbSchema) {
47
47
  return writer.toString();
48
48
  }
49
49
  exports.generateInsertStatement = generateInsertStatement;
50
- function generateUpdateStatement(tableName, dbSchema) {
50
+ function generateUpdateStatement(dialect, tableName, dbSchema) {
51
51
  const columns = dbSchema.filter(col => !col.autoincrement);
52
- const keys = dbSchema.filter(col => col.columnKey = 'PRI');
52
+ const keys = dbSchema.filter(col => col.columnKey == 'PRI');
53
53
  if (keys.length == 0) {
54
54
  keys.push(...dbSchema.filter(col => col.columnKey == 'UNI'));
55
55
  }
56
56
  const writer = new code_block_writer_1.default();
57
- writer.writeLine(`UPDATE ${escapeTableName(tableName)}`);
57
+ writer.writeLine(`UPDATE ${escapeTableName(dialect, tableName)}`);
58
58
  writer.writeLine("SET");
59
59
  columns.forEach((col, columnIndex) => {
60
- writer.indent().write(`${escapeColumn(col.column)} = IF(:${col.column}Set, :${col.column}, ${escapeColumn(col.column)})`);
60
+ writer.indent().write(`${escapeColumn(dialect, col.column)} = CASE WHEN :${col.column}Set THEN :${col.column} ELSE ${escapeColumn(dialect, col.column)} END`);
61
61
  writer.conditionalWrite(columnIndex != columns.length - 1, ',');
62
62
  writer.newLine();
63
63
  });
64
64
  if (keys.length > 0) {
65
65
  writer.writeLine('WHERE');
66
- writer.indent().write(`${escapeColumn(keys[0].column)} = :${keys[0].column}`);
66
+ writer.indent().write(`${escapeColumn(dialect, keys[0].column)} = :${keys[0].column}`);
67
67
  }
68
68
  return writer.toString();
69
69
  }
70
70
  exports.generateUpdateStatement = generateUpdateStatement;
71
- function generateDeleteStatement(tableName, dbSchema) {
72
- const keys = dbSchema.filter(col => col.columnKey = 'PRI');
71
+ function generateDeleteStatement(dialect, tableName, dbSchema) {
72
+ const keys = dbSchema.filter(col => col.columnKey == 'PRI');
73
73
  if (keys.length == 0) {
74
74
  keys.push(...dbSchema.filter(col => col.columnKey == 'UNI'));
75
75
  }
76
76
  const writer = new code_block_writer_1.default();
77
- writer.writeLine(`DELETE FROM ${escapeTableName(tableName)}`);
77
+ writer.writeLine(`DELETE FROM ${escapeTableName(dialect, tableName)}`);
78
78
  if (keys.length > 0) {
79
79
  writer.write('WHERE ');
80
- writer.write(`${escapeColumn(keys[0].column)} = :${keys[0].column}`);
80
+ writer.write(`${escapeColumn(dialect, keys[0].column)} = :${keys[0].column}`);
81
81
  }
82
82
  return writer.toString();
83
83
  }
84
84
  exports.generateDeleteStatement = generateDeleteStatement;
85
85
  //Permitted characters in unquoted identifiers: ASCII: [0-9,a-z,A-Z$_]
86
- function escapeTableName(tableName) {
86
+ function escapeTableName(dialect, tableName) {
87
87
  const validPattern = /^[a-zA-Z0-9_$]+$/g;
88
- if (!validPattern.test(tableName)) {
88
+ if (dialect == 'mysql' && !validPattern.test(tableName)) {
89
89
  return `\`${tableName}\``;
90
90
  }
91
91
  return tableName;
92
92
  }
93
- function escapeColumn(column) {
94
- return `\`${column}\``;
93
+ function escapeColumn(dialect, column) {
94
+ if (dialect == 'mysql') {
95
+ return `\`${column}\``;
96
+ }
97
+ return `${column}`;
95
98
  }
96
99
  //# sourceMappingURL=sql-generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sql-generator.js","sourceRoot":"","sources":["../../src/sql-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sql-generator.js","sourceRoot":"","sources":["../../src/sql-generator.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { Either } from "fp-ts/lib/Either";
1
2
  import { ColumnSchema } from "../mysql-query-analyzer/types";
2
- export declare function generateTsCode(sql: string, queryName: string, sqliteDbSchema: ColumnSchema[]): string;
3
+ import { Database } from "better-sqlite3";
4
+ export declare function generateTsCode(db: Database, sql: string, queryName: string, sqliteDbSchema: ColumnSchema[], isCrud?: boolean): Either<string, string>;
3
5
  //# sourceMappingURL=code-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"code-generator.d.ts","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/code-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAOzE,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,UAQ5F"}
1
+ {"version":3,"file":"code-generator.d.ts","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/code-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAuB,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAc,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAMzE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE,MAAM,UAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQnJ"}
@@ -8,14 +8,14 @@ const Either_1 = require("fp-ts/lib/Either");
8
8
  const parser_1 = require("./parser");
9
9
  const code_generator_1 = require("../code-generator");
10
10
  const code_block_writer_1 = __importDefault(require("code-block-writer"));
11
- function generateTsCode(sql, queryName, sqliteDbSchema) {
12
- const queryInfo = (0, parser_1.parseSql)(sql, sqliteDbSchema);
11
+ function generateTsCode(db, sql, queryName, sqliteDbSchema, isCrud = false) {
12
+ const queryInfo = (0, parser_1.prepareAndParse)(db, sql, sqliteDbSchema);
13
13
  if ((0, Either_1.isLeft)(queryInfo)) {
14
- return 'invalid';
14
+ return (0, Either_1.left)('//Invalid sql');
15
15
  }
16
16
  const tsDescriptor = createTsDescriptor(queryInfo.right);
17
- const code = generateCodeFromTsDescriptor(queryName, tsDescriptor);
18
- return code;
17
+ const code = generateCodeFromTsDescriptor(queryName, tsDescriptor, isCrud);
18
+ return (0, Either_1.right)(code);
19
19
  }
20
20
  exports.generateTsCode = generateTsCode;
21
21
  function createTsDescriptor(queryInfo) {
@@ -63,7 +63,7 @@ function mapColumnType(sqliteType) {
63
63
  return 'any';
64
64
  }
65
65
  }
66
- function generateCodeFromTsDescriptor(queryName, tsDescriptor) {
66
+ function generateCodeFromTsDescriptor(queryName, tsDescriptor, isCrud) {
67
67
  var _a;
68
68
  const writer = new code_block_writer_1.default({
69
69
  useTabs: true
@@ -82,13 +82,20 @@ function generateCodeFromTsDescriptor(queryName, tsDescriptor) {
82
82
  const generateOrderBy = tsDescriptor.orderByColumns != null && tsDescriptor.orderByColumns.length > 0;
83
83
  const uniqueParams = (0, code_generator_1.removeDuplicatedParameters2)(tsDescriptor.parameters);
84
84
  const uniqueUpdateParams = (0, code_generator_1.removeDuplicatedParameters2)(tsDescriptor.data || []);
85
+ const isUpdateCrud = isCrud && queryType == 'Update';
85
86
  writer.writeLine(`import { Database } from 'better-sqlite3';`);
86
87
  if (uniqueUpdateParams.length > 0) {
87
88
  writer.blankLine();
88
89
  writer.write(`export type ${dataTypeName} =`).block(() => {
89
- uniqueUpdateParams.forEach((field) => {
90
+ uniqueUpdateParams.forEach((field, index) => {
90
91
  const optionalOp = field.notNull ? '' : '?';
91
- writer.writeLine(`${field.name}${optionalOp}: ${field.tsType};`);
92
+ if (!isUpdateCrud) {
93
+ writer.writeLine(`${field.name}${optionalOp}: ${field.tsType};`);
94
+ }
95
+ else if (index % 2 != 0) { //updateCrud-> :nameSet, :name, valueSet, :value...
96
+ const orNull = field.notNull ? '' : ' | null';
97
+ writer.writeLine(`${field.name}${optionalOp}: ${field.tsType}${orNull};`);
98
+ }
92
99
  });
93
100
  });
94
101
  }
@@ -112,8 +119,16 @@ function generateCodeFromTsDescriptor(queryName, tsDescriptor) {
112
119
  let functionArguments = `db: Database`;
113
120
  functionArguments += queryType == 'Update' ? `, data: ${dataTypeName}` : '';
114
121
  functionArguments += tsDescriptor.parameters.length > 0 || generateOrderBy ? ', params: ' + paramsTypeName : '';
115
- const allParameters = (((_a = tsDescriptor.data) === null || _a === void 0 ? void 0 : _a.map(param => toParamValue(param, 'data'))) || [])
116
- .concat(tsDescriptor.parameters.map(param => toParamValue(param, 'params')));
122
+ const allParameters = (((_a = tsDescriptor.data) === null || _a === void 0 ? void 0 : _a.map((param, index) => {
123
+ if (isUpdateCrud && index % 2 == 0) {
124
+ const nextField = tsDescriptor.data[index + 1];
125
+ return `data.${nextField.name} !== undefined ? 1 : 0`;
126
+ }
127
+ else {
128
+ return 'data.' + toParamValue(param);
129
+ }
130
+ })) || [])
131
+ .concat(tsDescriptor.parameters.map(param => 'params.' + toParamValue(param)));
117
132
  const queryParams = allParameters.length > 0 ? '[' + allParameters.join(', ') + ']' : '';
118
133
  const returnType = tsDescriptor.multipleRowsResult ? `${resultTypeName}[]` : `${resultTypeName} | null`;
119
134
  if (queryType == 'Select') {
@@ -156,10 +171,10 @@ function generateCodeFromTsDescriptor(queryName, tsDescriptor) {
156
171
  }
157
172
  return writer.toString();
158
173
  }
159
- function toParamValue(param, paramVar) {
174
+ function toParamValue(param) {
160
175
  if (param.tsType == 'Date') {
161
- return paramVar + '.' + param.name + '.toISOString()';
176
+ return param.name + '.toISOString()';
162
177
  }
163
- return paramVar + '.' + param.name;
178
+ return param.name;
164
179
  }
165
180
  //# sourceMappingURL=code-generator.js.map
@@ -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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"}
@@ -1,5 +1,7 @@
1
1
  import { Either } from "fp-ts/lib/Either";
2
2
  import { SchemaDef, TypeSqlError } from "../types";
3
3
  import { ColumnSchema } from "../mysql-query-analyzer/types";
4
+ import { Database } from "better-sqlite3";
5
+ export declare function prepareAndParse(db: Database, sql: string, dbSchema: ColumnSchema[]): import("fp-ts/lib/Either").Left<TypeSqlError> | import("fp-ts/lib/Either").Right<SchemaDef>;
4
6
  export declare function parseSql(sql: string, dbSchema: ColumnSchema[]): Either<TypeSqlError, SchemaDef>;
5
7
  //# sourceMappingURL=parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAS,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAgB,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGjE,OAAO,EAAc,YAAY,EAAqC,MAAM,+BAA+B,CAAC;AAK5G,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAU/F"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAuB,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAgB,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGjE,OAAO,EAAc,YAAY,EAAqC,MAAM,+BAA+B,CAAC;AAK5G,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,+FAUlF;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAO/F"}