typesql-cli 0.4.8 → 0.4.9

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 (63) hide show
  1. package/cli.d.ts +2 -2
  2. package/cli.js +228 -224
  3. package/cli.js.map +1 -1
  4. package/code-generator.d.ts +19 -19
  5. package/code-generator.d.ts.map +1 -1
  6. package/code-generator.js +269 -265
  7. package/code-generator.js.map +1 -1
  8. package/describe-query.d.ts +9 -9
  9. package/describe-query.js +168 -168
  10. package/describe-query.js.map +1 -1
  11. package/mysql-mapping.d.ts +18 -18
  12. package/mysql-mapping.d.ts.map +1 -1
  13. package/mysql-mapping.js +146 -146
  14. package/mysql-mapping.js.map +1 -1
  15. package/mysql-query-analyzer/collect-constraints.d.ts +50 -50
  16. package/mysql-query-analyzer/collect-constraints.d.ts.map +1 -1
  17. package/mysql-query-analyzer/collect-constraints.js +1196 -1195
  18. package/mysql-query-analyzer/collect-constraints.js.map +1 -1
  19. package/mysql-query-analyzer/infer-column-nullability.d.ts +5 -5
  20. package/mysql-query-analyzer/infer-column-nullability.js +307 -307
  21. package/mysql-query-analyzer/infer-column-nullability.js.map +1 -1
  22. package/mysql-query-analyzer/infer-param-nullability.d.ts +6 -6
  23. package/mysql-query-analyzer/infer-param-nullability.js +78 -78
  24. package/mysql-query-analyzer/infer-param-nullability.js.map +1 -1
  25. package/mysql-query-analyzer/parse.d.ts +14 -14
  26. package/mysql-query-analyzer/parse.d.ts.map +1 -1
  27. package/mysql-query-analyzer/parse.js +219 -215
  28. package/mysql-query-analyzer/parse.js.map +1 -1
  29. package/mysql-query-analyzer/select-columns.d.ts +12 -12
  30. package/mysql-query-analyzer/select-columns.js +373 -373
  31. package/mysql-query-analyzer/select-columns.js.map +1 -1
  32. package/mysql-query-analyzer/types.d.ts +72 -72
  33. package/mysql-query-analyzer/types.d.ts.map +1 -1
  34. package/mysql-query-analyzer/types.js +2 -2
  35. package/mysql-query-analyzer/unify.d.ts +4 -4
  36. package/mysql-query-analyzer/unify.js +157 -157
  37. package/mysql-query-analyzer/util.d.ts +6 -6
  38. package/mysql-query-analyzer/util.d.ts.map +1 -1
  39. package/mysql-query-analyzer/util.js +30 -30
  40. package/mysql-query-analyzer/verify-multiple-result.d.ts +3 -3
  41. package/mysql-query-analyzer/verify-multiple-result.js +47 -47
  42. package/mysql-query-analyzer/verify-multiple-result.js.map +1 -1
  43. package/package.json +4 -5
  44. package/queryExectutor.d.ts +15 -13
  45. package/queryExectutor.d.ts.map +1 -1
  46. package/queryExectutor.js +107 -104
  47. package/queryExectutor.js.map +1 -1
  48. package/sql-generator.d.ts +5 -5
  49. package/sql-generator.js +88 -88
  50. package/types.d.ts +89 -89
  51. package/types.d.ts.map +1 -1
  52. package/types.js +2 -2
  53. package/utility-types.d.ts +4 -4
  54. package/utility-types.d.ts.map +1 -1
  55. package/utility-types.js +2 -2
  56. package/sqls/index.d.ts +0 -2
  57. package/sqls/index.d.ts.map +0 -1
  58. package/sqls/index.js +0 -14
  59. package/sqls/index.js.map +0 -1
  60. package/sqls/select-projects.d.ts +0 -6
  61. package/sqls/select-projects.d.ts.map +0 -1
  62. package/sqls/select-projects.js +0 -23
  63. package/sqls/select-projects.js.map +0 -1
package/code-generator.js CHANGED
@@ -1,266 +1,270 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
- return new (P || (P = Promise))(function (resolve, reject) {
24
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27
- step((generator = generator.apply(thisArg, _arguments || [])).next());
28
- });
29
- };
30
- var __importDefault = (this && this.__importDefault) || function (mod) {
31
- return (mod && mod.__esModule) ? mod : { "default": mod };
32
- };
33
- Object.defineProperty(exports, "__esModule", { value: true });
34
- exports.generateTsFile = exports.convertToCamelCaseName = exports.writeFile = exports.replaceOrderByParam = exports.escapeInvalidTsField = exports.renameInvalidNames = exports.generateTsDescriptor = exports.generateTsCode = void 0;
35
- const fs_1 = __importDefault(require("fs"));
36
- const path_1 = __importStar(require("path"));
37
- const camelcase_1 = __importDefault(require("camelcase"));
38
- const Either_1 = require("fp-ts/lib/Either");
39
- const Option_1 = require("fp-ts/lib/Option");
40
- const mysql_mapping_1 = require("./mysql-mapping");
41
- const describe_query_1 = require("./describe-query");
42
- const code_block_writer_1 = __importDefault(require("code-block-writer"));
43
- function generateTsCode(tsDescriptor, fileName, target) {
44
- var _a, _b;
45
- const writer = new code_block_writer_1.default();
46
- const camelCaseName = convertToCamelCaseName(fileName);
47
- const capitalizedName = capitalize(camelCaseName);
48
- const dataTypeName = capitalizedName + 'Data';
49
- const paramsTypeName = capitalizedName + 'Params';
50
- const resultTypeName = capitalizedName + 'Result';
51
- const orderByTypeName = capitalizedName + 'OrderBy';
52
- const generateOrderBy = tsDescriptor.orderByColumns != null && tsDescriptor.orderByColumns.length > 0;
53
- // Import declarations
54
- if (target == 'deno') {
55
- writer.writeLine(`import { Client } from "https://deno.land/x/mysql/mod.ts";`);
56
- }
57
- else {
58
- writer.writeLine(`import { Connection } from 'mysql2/promise';`);
59
- }
60
- writer.blankLine();
61
- if (tsDescriptor.data) {
62
- writeTypeBlock(writer, tsDescriptor.data, dataTypeName);
63
- }
64
- const orderByField = generateOrderBy ? `orderBy: [${orderByTypeName}, ...${orderByTypeName}[]]` : undefined;
65
- writeTypeBlock(writer, tsDescriptor.parameters, paramsTypeName, orderByField);
66
- writeTypeBlock(writer, tsDescriptor.columns, resultTypeName);
67
- let functionReturnType = resultTypeName;
68
- functionReturnType += tsDescriptor.multipleRowsResult ? '[]' : tsDescriptor.queryType == 'Select' ? ' | null' : '';
69
- let functionArguments = target == 'deno' ? 'client: Client' : 'connection: Connection';
70
- functionArguments += tsDescriptor.data && tsDescriptor.data.length > 0 ? ', data: ' + dataTypeName : '';
71
- functionArguments += tsDescriptor.parameters.length > 0 || generateOrderBy ? ', params: ' + paramsTypeName : '';
72
- const allParameters = ((_a = tsDescriptor.data) === null || _a === void 0 ? void 0 : _a.map(field => 'data.' + field.name)) || [];
73
- allParameters.push(...tsDescriptor.parameters.map(field => 'params.' + field.name));
74
- const queryParams = allParameters.length > 0 ? ', [' + allParameters.join(', ') + ']' : '';
75
- const escapedBackstick = scapeBackStick(tsDescriptor.sql);
76
- const processedSql = replaceOrderByParam(escapedBackstick);
77
- const sqlSplit = processedSql.split('\n');
78
- writer.write(`export async function ${camelCaseName}(${functionArguments}) : Promise<${functionReturnType}>`).block(() => {
79
- writer.writeLine('const sql = `');
80
- sqlSplit.forEach(sqlLine => {
81
- writer.indent().write(sqlLine);
82
- writer.newLine();
83
- });
84
- writer.indent().write('`');
85
- writer.blankLine();
86
- if (target == 'deno') {
87
- writer.writeLine(`return client.query(sql${queryParams})`);
88
- const singleRowSlect = tsDescriptor.multipleRowsResult === false && tsDescriptor.queryType == 'Select';
89
- writer.indent().write(`.then( res => res${singleRowSlect ? '[0]' : ''} );`);
90
- }
91
- else {
92
- writer.writeLine(`return connection.query(sql${queryParams})`);
93
- writer.indent().write(`.then( res => res[0] as ${resultTypeName}${tsDescriptor.multipleRowsResult || tsDescriptor.queryType == 'Select' ? '[]' : ''} )`);
94
- if (tsDescriptor.queryType == 'Select' && tsDescriptor.multipleRowsResult == false) {
95
- writer.newLine();
96
- writer.indent().write(`.then( res => res[0] );`);
97
- }
98
- else {
99
- writer.write(';');
100
- }
101
- }
102
- });
103
- if (generateOrderBy) {
104
- const orderByColumnsType = (_b = tsDescriptor.orderByColumns) === null || _b === void 0 ? void 0 : _b.map(col => `"${col}"`).join(' | ');
105
- writer.blankLine();
106
- writer.write(`export type ${orderByTypeName} = `).block(() => {
107
- writer.writeLine(`column: ${orderByColumnsType};`);
108
- writer.writeLine(`direction: 'asc' | 'desc';`);
109
- });
110
- writer.blankLine();
111
- writer.write(`function escapeOrderBy(orderBy: ${orderByTypeName}[]) : string`).block(() => {
112
- writer.writeLine(`return orderBy.map( order => \`\\\`\${order.column}\\\` \${order.direction == 'desc' ? 'desc' : 'asc' }\`).join(', ');`);
113
- });
114
- }
115
- return writer.toString();
116
- }
117
- exports.generateTsCode = generateTsCode;
118
- function writeTypeBlock(writer, fields, typeName, extraField) {
119
- const writeBlockCond = fields.length > 0 || extraField != null;
120
- if (writeBlockCond) {
121
- writer.write(`export type ${typeName} =`).block(() => {
122
- fields.forEach(tsField => {
123
- writer.writeLine(tsFieldToStr(tsField) + ';');
124
- });
125
- if (extraField) {
126
- writer.write(extraField + ';');
127
- }
128
- });
129
- writer.blankLine();
130
- }
131
- }
132
- function tsFieldToStr(tsField) {
133
- return tsField.name + (tsField.notNull ? ': ' : '?: ') + tsField.tsType;
134
- }
135
- function generateTsDescriptor(queryInfo) {
136
- var _a;
137
- const escapedColumnsNames = renameInvalidNames(queryInfo.columns.map(col => col.name));
138
- const columns = queryInfo.columns.map((col, columnIndex) => {
139
- const tsDesc = {
140
- name: escapedColumnsNames[columnIndex],
141
- tsType: mapColumnType(col.dbtype),
142
- notNull: col.notNull ? col.notNull : false
143
- };
144
- return tsDesc;
145
- });
146
- const uniqueParams = removeDuplicatedParameters(queryInfo.parameters);
147
- const escapedParametersNames = renameInvalidNames(uniqueParams.map(col => col.name));
148
- const parameters = uniqueParams.map((col, paramIndex) => {
149
- const arraySymbol = col.list ? '[]' : '';
150
- const tsDesc = {
151
- name: escapedParametersNames[paramIndex],
152
- tsType: mapColumnType(col.columnType) + arraySymbol,
153
- notNull: col.notNull ? col.notNull : false
154
- };
155
- return tsDesc;
156
- });
157
- const escapedDataNames = queryInfo.data ? renameInvalidNames(queryInfo.data.map(col => col.name)) : [];
158
- const data = (_a = queryInfo.data) === null || _a === void 0 ? void 0 : _a.map((col, dataIndex) => {
159
- const tsDesc = {
160
- name: escapedDataNames[dataIndex],
161
- tsType: mapColumnType(col.columnType),
162
- notNull: col.notNull ? col.notNull : false
163
- };
164
- return tsDesc;
165
- });
166
- return {
167
- sql: queryInfo.sql,
168
- queryType: queryInfo.queryType,
169
- multipleRowsResult: queryInfo.multipleRowsResult,
170
- columns,
171
- orderByColumns: queryInfo.orderByColumns,
172
- parameters,
173
- data
174
- };
175
- }
176
- exports.generateTsDescriptor = generateTsDescriptor;
177
- function removeDuplicatedParameters(parameters) {
178
- const columnsCount = new Map();
179
- return parameters.filter(param => {
180
- if (!columnsCount.has(param.name)) {
181
- columnsCount.set(param.name, true);
182
- return param;
183
- }
184
- });
185
- }
186
- function renameInvalidNames(columnNames) {
187
- const columnsCount = new Map();
188
- return columnNames.map(columnName => {
189
- if (columnsCount.has(columnName)) {
190
- const count = columnsCount.get(columnName) + 1;
191
- columnsCount.set(columnName, count);
192
- const newName = columnName + '_' + count;
193
- return escapeInvalidTsField(newName);
194
- }
195
- else {
196
- columnsCount.set(columnName, 1);
197
- return escapeInvalidTsField(columnName);
198
- }
199
- });
200
- }
201
- exports.renameInvalidNames = renameInvalidNames;
202
- function scapeBackStick(sql) {
203
- const pattern = /`/g;
204
- return sql.replace(pattern, "\\`");
205
- }
206
- function escapeInvalidTsField(columnName) {
207
- const validPattern = /^[a-zA-Z0-9_$]+$/g;
208
- if (!validPattern.test(columnName)) {
209
- return `"${columnName}"`;
210
- }
211
- return columnName;
212
- }
213
- exports.escapeInvalidTsField = escapeInvalidTsField;
214
- function mapColumnType(columnType) {
215
- if (columnType == '?')
216
- return '?';
217
- const types = [].concat(columnType);
218
- const mappedTypes = types.map(type => mysql_mapping_1.converToTsType(type));
219
- return mappedTypes.join(' | '); // number | string
220
- }
221
- function generateTsContent(tsDescriptorOption, queryName, target) {
222
- if (Option_1.isNone(tsDescriptorOption)) {
223
- return '//Invalid sql';
224
- }
225
- return generateTsCode(tsDescriptorOption.value, queryName, target);
226
- }
227
- function replaceOrderByParam(sql) {
228
- const patern = /(.*order\s+by\s*)(\?)(.\n$)*/i;
229
- const newSql = sql.replace(patern, "$1${escapeOrderBy(params.orderBy)}$3");
230
- return newSql;
231
- }
232
- exports.replaceOrderByParam = replaceOrderByParam;
233
- function writeFile(filePath, tsContent) {
234
- fs_1.default.writeFileSync(filePath, tsContent);
235
- }
236
- exports.writeFile = writeFile;
237
- function capitalize(name) {
238
- if (name.length == 0)
239
- return name;
240
- return name.charAt(0).toUpperCase() + name.slice(1);
241
- }
242
- function convertToCamelCaseName(name) {
243
- const camelCaseStr = camelcase_1.default(name);
244
- return camelCaseStr;
245
- }
246
- exports.convertToCamelCaseName = convertToCamelCaseName;
247
- //TODO - pass dbSchema instead of connection
248
- function generateTsFile(client, sqlFile, target) {
249
- return __awaiter(this, void 0, void 0, function* () {
250
- const fileName = path_1.parse(sqlFile).name;
251
- const dirPath = path_1.parse(sqlFile).dir;
252
- const queryName = convertToCamelCaseName(fileName);
253
- const tsFilePath = path_1.default.resolve(dirPath, fileName) + ".ts";
254
- const sqlContent = fs_1.default.readFileSync(sqlFile, 'utf8');
255
- const queryInfo = yield describe_query_1.parseSql(client, sqlContent);
256
- if (Either_1.isLeft(queryInfo)) {
257
- console.error('ERROR: ', queryInfo.left.description);
258
- console.error('at ', sqlFile);
259
- }
260
- const tsDescriptor = Either_1.isLeft(queryInfo) ? Option_1.none : Option_1.some(generateTsDescriptor(queryInfo.right));
261
- const tsContent = generateTsContent(tsDescriptor, queryName, target);
262
- writeFile(tsFilePath, tsContent);
263
- });
264
- }
265
- exports.generateTsFile = generateTsFile;
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.generateTsFile = exports.convertToCamelCaseName = exports.writeFile = exports.replaceOrderByParam = exports.escapeInvalidTsField = exports.renameInvalidNames = exports.generateTsDescriptor = exports.generateTsCode = void 0;
39
+ const fs_1 = __importDefault(require("fs"));
40
+ const path_1 = __importStar(require("path"));
41
+ const camelcase_1 = __importDefault(require("camelcase"));
42
+ const Either_1 = require("fp-ts/lib/Either");
43
+ const Option_1 = require("fp-ts/lib/Option");
44
+ const mysql_mapping_1 = require("./mysql-mapping");
45
+ const describe_query_1 = require("./describe-query");
46
+ const code_block_writer_1 = __importDefault(require("code-block-writer"));
47
+ function generateTsCode(tsDescriptor, fileName, target) {
48
+ var _a, _b;
49
+ const writer = new code_block_writer_1.default();
50
+ const camelCaseName = convertToCamelCaseName(fileName);
51
+ const capitalizedName = capitalize(camelCaseName);
52
+ const dataTypeName = capitalizedName + 'Data';
53
+ const paramsTypeName = capitalizedName + 'Params';
54
+ const resultTypeName = capitalizedName + 'Result';
55
+ const orderByTypeName = capitalizedName + 'OrderBy';
56
+ const generateOrderBy = tsDescriptor.orderByColumns != null && tsDescriptor.orderByColumns.length > 0;
57
+ // Import declarations
58
+ if (target == 'deno') {
59
+ writer.writeLine(`import { Client } from "https://deno.land/x/mysql/mod.ts";`);
60
+ }
61
+ else {
62
+ writer.writeLine(`import { Connection } from 'mysql2/promise';`);
63
+ }
64
+ writer.blankLine();
65
+ if (tsDescriptor.data) {
66
+ writeTypeBlock(writer, tsDescriptor.data, dataTypeName);
67
+ }
68
+ const orderByField = generateOrderBy ? `orderBy: [${orderByTypeName}, ...${orderByTypeName}[]]` : undefined;
69
+ writeTypeBlock(writer, tsDescriptor.parameters, paramsTypeName, orderByField);
70
+ writeTypeBlock(writer, tsDescriptor.columns, resultTypeName);
71
+ let functionReturnType = resultTypeName;
72
+ functionReturnType += tsDescriptor.multipleRowsResult ? '[]' : tsDescriptor.queryType == 'Select' ? ' | null' : '';
73
+ let functionArguments = target == 'deno' ? 'client: Client' : 'connection: Connection';
74
+ functionArguments += tsDescriptor.data && tsDescriptor.data.length > 0 ? ', data: ' + dataTypeName : '';
75
+ functionArguments += tsDescriptor.parameters.length > 0 || generateOrderBy ? ', params: ' + paramsTypeName : '';
76
+ const allParameters = ((_a = tsDescriptor.data) === null || _a === void 0 ? void 0 : _a.map(field => 'data.' + field.name)) || [];
77
+ allParameters.push(...tsDescriptor.parameters.map(field => 'params.' + field.name));
78
+ const queryParams = allParameters.length > 0 ? ', [' + allParameters.join(', ') + ']' : '';
79
+ const escapedBackstick = scapeBackStick(tsDescriptor.sql);
80
+ const processedSql = replaceOrderByParam(escapedBackstick);
81
+ const sqlSplit = processedSql.split('\n');
82
+ writer.write(`export async function ${camelCaseName}(${functionArguments}) : Promise<${functionReturnType}>`).block(() => {
83
+ writer.writeLine('const sql = `');
84
+ sqlSplit.forEach(sqlLine => {
85
+ writer.indent().write(sqlLine);
86
+ writer.newLine();
87
+ });
88
+ writer.indent().write('`');
89
+ writer.blankLine();
90
+ if (target == 'deno') {
91
+ writer.writeLine(`return client.query(sql${queryParams})`);
92
+ const singleRowSlect = tsDescriptor.multipleRowsResult === false && tsDescriptor.queryType == 'Select';
93
+ writer.indent().write(`.then( res => res${singleRowSlect ? '[0]' : ''} );`);
94
+ }
95
+ else {
96
+ writer.writeLine(`return connection.query(sql${queryParams})`);
97
+ writer.indent().write(`.then( res => res[0] as ${resultTypeName}${tsDescriptor.multipleRowsResult || tsDescriptor.queryType == 'Select' ? '[]' : ''} )`);
98
+ if (tsDescriptor.queryType == 'Select' && tsDescriptor.multipleRowsResult == false) {
99
+ writer.newLine();
100
+ writer.indent().write(`.then( res => res[0] );`);
101
+ }
102
+ else {
103
+ writer.write(';');
104
+ }
105
+ }
106
+ });
107
+ if (generateOrderBy) {
108
+ const orderByColumnsType = (_b = tsDescriptor.orderByColumns) === null || _b === void 0 ? void 0 : _b.map(col => `"${col}"`).join(' | ');
109
+ writer.blankLine();
110
+ writer.write(`export type ${orderByTypeName} = `).block(() => {
111
+ writer.writeLine(`column: ${orderByColumnsType};`);
112
+ writer.writeLine(`direction: 'asc' | 'desc';`);
113
+ });
114
+ writer.blankLine();
115
+ writer.write(`function escapeOrderBy(orderBy: ${orderByTypeName}[]) : string`).block(() => {
116
+ writer.writeLine(`return orderBy.map( order => \`\\\`\${order.column}\\\` \${order.direction == 'desc' ? 'desc' : 'asc' }\`).join(', ');`);
117
+ });
118
+ }
119
+ return writer.toString();
120
+ }
121
+ exports.generateTsCode = generateTsCode;
122
+ function writeTypeBlock(writer, fields, typeName, extraField) {
123
+ const writeBlockCond = fields.length > 0 || extraField != null;
124
+ if (writeBlockCond) {
125
+ writer.write(`export type ${typeName} =`).block(() => {
126
+ fields.forEach(tsField => {
127
+ writer.writeLine(tsFieldToStr(tsField) + ';');
128
+ });
129
+ if (extraField) {
130
+ writer.write(extraField + ';');
131
+ }
132
+ });
133
+ writer.blankLine();
134
+ }
135
+ }
136
+ function tsFieldToStr(tsField) {
137
+ return tsField.name + (tsField.notNull ? ': ' : '?: ') + tsField.tsType;
138
+ }
139
+ function generateTsDescriptor(queryInfo) {
140
+ var _a;
141
+ const escapedColumnsNames = renameInvalidNames(queryInfo.columns.map(col => col.name));
142
+ const columns = queryInfo.columns.map((col, columnIndex) => {
143
+ const tsDesc = {
144
+ name: escapedColumnsNames[columnIndex],
145
+ tsType: mapColumnType(col.dbtype),
146
+ notNull: col.notNull ? col.notNull : false
147
+ };
148
+ return tsDesc;
149
+ });
150
+ const uniqueParams = removeDuplicatedParameters(queryInfo.parameters);
151
+ const escapedParametersNames = renameInvalidNames(uniqueParams.map(col => col.name));
152
+ const parameters = uniqueParams.map((col, paramIndex) => {
153
+ const arraySymbol = col.list ? '[]' : '';
154
+ const tsDesc = {
155
+ name: escapedParametersNames[paramIndex],
156
+ tsType: mapColumnType(col.columnType) + arraySymbol,
157
+ notNull: col.notNull ? col.notNull : false
158
+ };
159
+ return tsDesc;
160
+ });
161
+ const escapedDataNames = queryInfo.data ? renameInvalidNames(queryInfo.data.map(col => col.name)) : [];
162
+ const data = (_a = queryInfo.data) === null || _a === void 0 ? void 0 : _a.map((col, dataIndex) => {
163
+ const tsDesc = {
164
+ name: escapedDataNames[dataIndex],
165
+ tsType: mapColumnType(col.columnType),
166
+ notNull: col.notNull ? col.notNull : false
167
+ };
168
+ return tsDesc;
169
+ });
170
+ return {
171
+ sql: queryInfo.sql,
172
+ queryType: queryInfo.queryType,
173
+ multipleRowsResult: queryInfo.multipleRowsResult,
174
+ columns,
175
+ orderByColumns: queryInfo.orderByColumns,
176
+ parameters,
177
+ data
178
+ };
179
+ }
180
+ exports.generateTsDescriptor = generateTsDescriptor;
181
+ function removeDuplicatedParameters(parameters) {
182
+ const columnsCount = new Map();
183
+ return parameters.filter(param => {
184
+ if (!columnsCount.has(param.name)) {
185
+ columnsCount.set(param.name, true);
186
+ return param;
187
+ }
188
+ });
189
+ }
190
+ function renameInvalidNames(columnNames) {
191
+ const columnsCount = new Map();
192
+ return columnNames.map(columnName => {
193
+ if (columnsCount.has(columnName)) {
194
+ const count = columnsCount.get(columnName) + 1;
195
+ columnsCount.set(columnName, count);
196
+ const newName = columnName + '_' + count;
197
+ return escapeInvalidTsField(newName);
198
+ }
199
+ else {
200
+ columnsCount.set(columnName, 1);
201
+ return escapeInvalidTsField(columnName);
202
+ }
203
+ });
204
+ }
205
+ exports.renameInvalidNames = renameInvalidNames;
206
+ function scapeBackStick(sql) {
207
+ const pattern = /`/g;
208
+ return sql.replace(pattern, "\\`");
209
+ }
210
+ function escapeInvalidTsField(columnName) {
211
+ const validPattern = /^[a-zA-Z0-9_$]+$/g;
212
+ if (!validPattern.test(columnName)) {
213
+ return `"${columnName}"`;
214
+ }
215
+ return columnName;
216
+ }
217
+ exports.escapeInvalidTsField = escapeInvalidTsField;
218
+ function mapColumnType(columnType) {
219
+ if (columnType == '?')
220
+ return '?';
221
+ const types = [].concat(columnType);
222
+ const mappedTypes = types.map(type => (0, mysql_mapping_1.converToTsType)(type));
223
+ return mappedTypes.join(' | '); // number | string
224
+ }
225
+ function generateTsContent(tsDescriptorOption, queryName, target) {
226
+ if ((0, Option_1.isNone)(tsDescriptorOption)) {
227
+ return '//Invalid sql';
228
+ }
229
+ return generateTsCode(tsDescriptorOption.value, queryName, target);
230
+ }
231
+ function replaceOrderByParam(sql) {
232
+ const patern = /(.*order\s+by\s*)(\?)(.\n$)*/i;
233
+ const newSql = sql.replace(patern, "$1${escapeOrderBy(params.orderBy)}$3");
234
+ return newSql;
235
+ }
236
+ exports.replaceOrderByParam = replaceOrderByParam;
237
+ function writeFile(filePath, tsContent) {
238
+ fs_1.default.writeFileSync(filePath, tsContent);
239
+ }
240
+ exports.writeFile = writeFile;
241
+ function capitalize(name) {
242
+ if (name.length == 0)
243
+ return name;
244
+ return name.charAt(0).toUpperCase() + name.slice(1);
245
+ }
246
+ function convertToCamelCaseName(name) {
247
+ const camelCaseStr = (0, camelcase_1.default)(name);
248
+ return camelCaseStr;
249
+ }
250
+ exports.convertToCamelCaseName = convertToCamelCaseName;
251
+ //TODO - pass dbSchema instead of connection
252
+ function generateTsFile(client, sqlFile, target) {
253
+ return __awaiter(this, void 0, void 0, function* () {
254
+ const fileName = (0, path_1.parse)(sqlFile).name;
255
+ const dirPath = (0, path_1.parse)(sqlFile).dir;
256
+ const queryName = convertToCamelCaseName(fileName);
257
+ const tsFilePath = path_1.default.resolve(dirPath, fileName) + ".ts";
258
+ const sqlContent = fs_1.default.readFileSync(sqlFile, 'utf8');
259
+ const queryInfo = yield (0, describe_query_1.parseSql)(client, sqlContent);
260
+ if ((0, Either_1.isLeft)(queryInfo)) {
261
+ console.error('ERROR: ', queryInfo.left.description);
262
+ console.error('at ', sqlFile);
263
+ }
264
+ const tsDescriptor = (0, Either_1.isLeft)(queryInfo) ? Option_1.none : (0, Option_1.some)(generateTsDescriptor(queryInfo.right));
265
+ const tsContent = generateTsContent(tsDescriptor, queryName, target);
266
+ writeFile(tsFilePath, tsContent);
267
+ });
268
+ }
269
+ exports.generateTsFile = generateTsFile;
266
270
  //# sourceMappingURL=code-generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"code-generator.js","sourceRoot":"","sources":["../../src/code-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-generator.js","sourceRoot":"","sources":["../../src/code-generator.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { SchemaDef, TypeSqlError, PreprocessedSql } from "./types";
2
- import { DbClient } from "./queryExectutor";
3
- import { Either } from "fp-ts/lib/Either";
4
- import { ColumnSchema } from "./mysql-query-analyzer/types";
5
- import { MySqlType, InferType } from "./mysql-mapping";
6
- export declare function describeSql(dbSchema: ColumnSchema[], sql: string): SchemaDef;
7
- export declare function verifyNotInferred(type: InferType): MySqlType;
8
- export declare function parseSql(client: DbClient, sql: string): Promise<Either<TypeSqlError, SchemaDef>>;
9
- export declare function preprocessSql(sql: string): PreprocessedSql;
1
+ import { SchemaDef, TypeSqlError, PreprocessedSql } from "./types";
2
+ import { DbClient } from "./queryExectutor";
3
+ import { Either } from "fp-ts/lib/Either";
4
+ import { ColumnSchema } from "./mysql-query-analyzer/types";
5
+ import { MySqlType, InferType } from "./mysql-mapping";
6
+ export declare function describeSql(dbSchema: ColumnSchema[], sql: string): SchemaDef;
7
+ export declare function verifyNotInferred(type: InferType): MySqlType;
8
+ export declare function parseSql(client: DbClient, sql: string): Promise<Either<TypeSqlError, SchemaDef>>;
9
+ export declare function preprocessSql(sql: string): PreprocessedSql;
10
10
  //# sourceMappingURL=describe-query.d.ts.map