typesql-cli 0.8.0-alpha.6 → 0.8.0-alpha.8
Sign up to get free protection for your applications and to get access to all the features.
- package/cli.js +36 -39
- package/cli.js.map +1 -1
- package/code-generator.d.ts +4 -4
- package/code-generator.d.ts.map +1 -1
- package/code-generator.js +17 -19
- package/code-generator.js.map +1 -1
- package/describe-query.d.ts +2 -3
- package/describe-query.d.ts.map +1 -1
- package/describe-query.js +3 -2
- package/describe-query.js.map +1 -1
- package/mysql-query-analyzer/collect-constraints.d.ts +2 -2
- package/mysql-query-analyzer/collect-constraints.d.ts.map +1 -1
- package/mysql-query-analyzer/collect-constraints.js +1 -1
- package/mysql-query-analyzer/collect-constraints.js.map +1 -1
- package/mysql-query-analyzer/traverse.d.ts.map +1 -1
- package/mysql-query-analyzer/traverse.js +15 -15
- package/mysql-query-analyzer/traverse.js.map +1 -1
- package/mysql-query-analyzer/types.d.ts +1 -1
- package/mysql-query-analyzer/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/queryExectutor.d.ts +8 -15
- package/queryExectutor.d.ts.map +1 -1
- package/queryExectutor.js +119 -121
- package/queryExectutor.js.map +1 -1
- package/sql-generator.d.ts +5 -4
- package/sql-generator.d.ts.map +1 -1
- package/sql-generator.js +24 -21
- package/sql-generator.js.map +1 -1
- package/sqlite-query-analyzer/code-generator.d.ts +3 -1
- package/sqlite-query-analyzer/code-generator.d.ts.map +1 -1
- package/sqlite-query-analyzer/code-generator.js +28 -13
- package/sqlite-query-analyzer/code-generator.js.map +1 -1
- package/sqlite-query-analyzer/parser.d.ts +2 -0
- package/sqlite-query-analyzer/parser.d.ts.map +1 -1
- package/sqlite-query-analyzer/parser.js +19 -6
- package/sqlite-query-analyzer/parser.js.map +1 -1
- package/sqlite-query-analyzer/query-executor.d.ts +7 -3
- package/sqlite-query-analyzer/query-executor.d.ts.map +1 -1
- package/sqlite-query-analyzer/query-executor.js +65 -6
- package/sqlite-query-analyzer/query-executor.js.map +1 -1
- package/sqlite-query-analyzer/sql-generator.d.ts +6 -0
- package/sqlite-query-analyzer/sql-generator.d.ts.map +1 -0
- package/sqlite-query-analyzer/sql-generator.js +96 -0
- package/sqlite-query-analyzer/sql-generator.js.map +1 -0
- package/sqlite-query-analyzer/sqlite-crud-generator.d.ts +6 -0
- package/sqlite-query-analyzer/sqlite-crud-generator.d.ts.map +1 -0
- package/sqlite-query-analyzer/sqlite-crud-generator.js +96 -0
- package/sqlite-query-analyzer/sqlite-crud-generator.js.map +1 -0
- package/sqlite-query-analyzer/traverse.d.ts.map +1 -1
- package/sqlite-query-analyzer/traverse.js +60 -40
- package/sqlite-query-analyzer/traverse.js.map +1 -1
- package/types.d.ts +15 -1
- 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.
|
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
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
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
|
-
|
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
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
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
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
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
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
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
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
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
|
package/queryExectutor.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"queryExectutor.js","sourceRoot":"","sources":["../../src/queryExectutor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
1
|
+
{"version":3,"file":"queryExectutor.js","sourceRoot":"","sources":["../../src/queryExectutor.ts"],"names":[],"mappings":"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"}
|
package/sql-generator.d.ts
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import { ColumnSchema } from "./mysql-query-analyzer/types";
|
2
|
-
|
3
|
-
export declare function
|
4
|
-
export declare function
|
5
|
-
export declare function
|
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
|
package/sql-generator.d.ts.map
CHANGED
@@ -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;
|
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
|
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
|
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)} =
|
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
|
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
|
-
|
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
|
package/sql-generator.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sql-generator.js","sourceRoot":"","sources":["../../src/sql-generator.ts"],"names":[],"mappings":";;;;;;AACA,0EAAgD;
|
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
|
-
|
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":"
|
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.
|
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 '
|
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
|
-
|
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(
|
116
|
-
|
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
|
174
|
+
function toParamValue(param) {
|
160
175
|
if (param.tsType == 'Date') {
|
161
|
-
return
|
176
|
+
return param.name + '.toISOString()';
|
162
177
|
}
|
163
|
-
return
|
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":";;;;;;AAAA,
|
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,
|
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"}
|