@cheetah.js/cli 0.1.0

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.
@@ -0,0 +1,349 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migrator = void 0;
4
+ require("reflect-metadata");
5
+ const core_1 = require("@cheetah.js/core");
6
+ const orm_1 = require("@cheetah.js/orm");
7
+ const orm_2 = require("@cheetah.js/orm");
8
+ const globby_1 = require("globby");
9
+ const knex = require("knex");
10
+ const diff_calculator_1 = require("./diff-calculator");
11
+ class Migrator {
12
+ constructor() {
13
+ this.entities = new orm_2.EntityStorage();
14
+ this.orm = orm_1.Orm.getInstance();
15
+ if (this.orm === undefined)
16
+ this.orm = new orm_1.Orm(new core_1.LoggerService(new core_1.InjectorService()));
17
+ this.entities = orm_2.EntityStorage.getInstance();
18
+ if (this.entities === undefined)
19
+ this.entities = new orm_2.EntityStorage();
20
+ }
21
+ async startConnection(basePath = process.cwd()) {
22
+ await this.initConfigFile(basePath);
23
+ await this.initKnex();
24
+ }
25
+ async initConfigFile(basePath) {
26
+ const paths = await (0, globby_1.default)(['cheetah.config.ts'], {
27
+ absolute: true,
28
+ cwd: basePath,
29
+ });
30
+ if (paths.length === 0) {
31
+ throw new Error('Config file not found');
32
+ }
33
+ const config = await Promise.resolve(`${paths[0]}`).then(s => require(s));
34
+ this.config = config.default;
35
+ if (typeof this.config.entities === 'string') {
36
+ const paths = await (0, globby_1.default)(this.config.entities, {
37
+ absolute: true,
38
+ cwd: basePath,
39
+ });
40
+ for (const path of paths) {
41
+ await Promise.resolve(`${path}`).then(s => require(s));
42
+ }
43
+ }
44
+ await this.initOrm();
45
+ }
46
+ async initOrm() {
47
+ const serv = new orm_1.OrmService(this.orm, this.entities);
48
+ await serv.onInit(this.config);
49
+ }
50
+ initKnex() {
51
+ this.knex = knex.default({
52
+ client: this.config.driver === orm_1.PgDriver ? 'pg' : 'mysql',
53
+ connection: {
54
+ host: this.config.host,
55
+ user: this.config.username,
56
+ password: this.config.password,
57
+ database: this.config.database,
58
+ uri: this.config.connectionString,
59
+ },
60
+ debug: true,
61
+ });
62
+ }
63
+ async run(diff) {
64
+ const sql = [];
65
+ for (const tableDiff of diff) {
66
+ let query;
67
+ if (tableDiff.newTable) {
68
+ query = await this.createTable(tableDiff);
69
+ }
70
+ else {
71
+ query = this.knex.schema
72
+ .withSchema(tableDiff.schema)
73
+ .table(tableDiff.tableName, (builder) => {
74
+ for (const colDiff of tableDiff.colDiffs) {
75
+ if (colDiff.actionType === 'INDEX') {
76
+ colDiff.indexTables.forEach((indexTable) => {
77
+ if (typeof indexTable.properties === 'undefined') {
78
+ builder.dropIndex([], indexTable.name);
79
+ }
80
+ else {
81
+ builder.index(indexTable.properties, indexTable.name);
82
+ }
83
+ });
84
+ }
85
+ if (colDiff.actionType === 'DELETE') {
86
+ builder.dropColumn(colDiff.colName);
87
+ continue;
88
+ }
89
+ if (colDiff.actionType === 'ALTER' &&
90
+ !colDiff.colType &&
91
+ typeof colDiff.colChanges === 'undefined')
92
+ continue;
93
+ if (typeof colDiff.colChanges?.unique !== 'undefined') {
94
+ if (colDiff.colChanges?.unique) {
95
+ builder.unique([colDiff.colName], `${tableDiff.tableName}_${colDiff.colName}_key`);
96
+ }
97
+ else {
98
+ builder.dropUnique([colDiff.colName], `${tableDiff.tableName}_${colDiff.colName}_key`);
99
+ }
100
+ }
101
+ if (typeof colDiff.colChanges?.foreignKeys !== 'undefined') {
102
+ if (colDiff.colChanges.foreignKeys.length !== 0) {
103
+ colDiff.colChanges.foreignKeys.forEach((fk) => {
104
+ builder
105
+ .foreign(colDiff.colName, `${tableDiff.tableName}_${colDiff.colName}_fk`)
106
+ .references(`${fk.referencedTableName}.${fk.referencedColumnName}`);
107
+ });
108
+ }
109
+ else {
110
+ builder.dropForeign(colDiff.colName, `${tableDiff.tableName}_${colDiff.colName}_fk`);
111
+ }
112
+ }
113
+ const columnBuilder = this.assignType(builder, colDiff, tableDiff);
114
+ if (!columnBuilder)
115
+ continue;
116
+ if (colDiff.actionType === 'ALTER') {
117
+ columnBuilder.alter({ alterNullable: false });
118
+ continue;
119
+ }
120
+ }
121
+ })
122
+ .toSQL();
123
+ }
124
+ sql.push(...query.flatMap((q) => q.sql.concat(';')));
125
+ }
126
+ return sql;
127
+ }
128
+ async createTable(tableDiff) {
129
+ return await this.knex.schema
130
+ .withSchema(tableDiff.schema)
131
+ .createTable(tableDiff.tableName, (builder) => {
132
+ for (const diff of tableDiff.colDiffs) {
133
+ if (diff.actionType === 'INDEX') {
134
+ diff.indexTables.forEach((indexTable) => {
135
+ if (typeof indexTable.properties === 'undefined') {
136
+ builder.dropIndex([], indexTable.name);
137
+ }
138
+ else {
139
+ if (indexTable.name.includes('pkey')) {
140
+ return;
141
+ }
142
+ builder.index(indexTable.properties, indexTable.name);
143
+ }
144
+ });
145
+ }
146
+ if (typeof diff.colChanges?.foreignKeys !== 'undefined') {
147
+ if (diff.colChanges.foreignKeys.length !== 0) {
148
+ diff.colChanges.foreignKeys.forEach((fk) => {
149
+ builder
150
+ .foreign(diff.colName, `${tableDiff.tableName}_${diff.colName}_fk`)
151
+ .references(`${fk.referencedTableName}.${fk.referencedColumnName}`);
152
+ });
153
+ }
154
+ else {
155
+ builder.dropForeign(diff.colName, `${tableDiff.tableName}_${diff.colName}_fk`);
156
+ }
157
+ }
158
+ this.assignType(builder, diff, tableDiff);
159
+ if (typeof diff.colChanges?.unique !== 'undefined') {
160
+ if (diff.colChanges?.unique) {
161
+ builder.unique([diff.colName], `${tableDiff.tableName}_${diff.colName}_key`);
162
+ }
163
+ else {
164
+ builder.dropUnique([diff.colName], `${tableDiff.tableName}_${diff.colName}_key`);
165
+ }
166
+ }
167
+ }
168
+ })
169
+ .toSQL();
170
+ }
171
+ assignType(builder, diff, tableDiff) {
172
+ if (diff.actionType === 'ALTER') {
173
+ if (diff.colChanges?.nullable !== undefined) {
174
+ if (diff.colChanges?.nullable) {
175
+ builder.setNullable(diff.colName);
176
+ }
177
+ }
178
+ }
179
+ if (!diff.colType)
180
+ return;
181
+ const columnName = diff.colName;
182
+ const columnType = diff.colType;
183
+ let columnBuilder;
184
+ if (diff.colChanges?.autoIncrement !== undefined) {
185
+ if (diff.colChanges?.autoIncrement) {
186
+ columnBuilder = builder.increments(diff.colName, {
187
+ primaryKey: diff.colChanges?.primary,
188
+ });
189
+ }
190
+ }
191
+ else {
192
+ switch (columnType) {
193
+ case 'varchar':
194
+ columnBuilder = builder.string(columnName, diff.colLength);
195
+ break;
196
+ case 'text':
197
+ columnBuilder = builder.text(columnName);
198
+ break;
199
+ case 'int':
200
+ case 'numeric':
201
+ columnBuilder = builder.integer(columnName, diff.colLength);
202
+ break;
203
+ case 'bigint':
204
+ columnBuilder = builder.bigInteger(columnName);
205
+ break;
206
+ case 'float':
207
+ columnBuilder = builder.float(columnName);
208
+ break;
209
+ case 'double':
210
+ columnBuilder = builder.double(columnName);
211
+ break;
212
+ case 'decimal':
213
+ columnBuilder = builder.decimal(columnName);
214
+ break;
215
+ case 'date':
216
+ columnBuilder = builder.date(columnName);
217
+ break;
218
+ case 'datetime':
219
+ columnBuilder = builder.datetime(columnName);
220
+ break;
221
+ case 'time':
222
+ columnBuilder = builder.time(columnName);
223
+ break;
224
+ case 'timestamp':
225
+ columnBuilder = builder.timestamp(columnName, {
226
+ precision: diff.colLength,
227
+ });
228
+ break;
229
+ case 'boolean':
230
+ columnBuilder = builder.boolean(columnName);
231
+ break;
232
+ case 'json':
233
+ columnBuilder = builder.json(columnName);
234
+ break;
235
+ case 'jsonb':
236
+ columnBuilder = builder.jsonb(columnName);
237
+ break;
238
+ case 'enum':
239
+ if (diff.actionType === 'ALTER' && diff.colChanges?.enumItems) {
240
+ columnBuilder = builder
241
+ .text(columnName)
242
+ .checkIn(diff.colChanges.enumItems ?? [], `${columnName}_check`);
243
+ }
244
+ else {
245
+ columnBuilder = builder.enum(columnName, diff.colChanges.enumItems ?? []);
246
+ }
247
+ break;
248
+ case 'array':
249
+ columnBuilder = builder.specificType(columnName, 'text[]');
250
+ break;
251
+ case 'uuid':
252
+ columnBuilder = builder.uuid(columnName);
253
+ break;
254
+ default:
255
+ columnBuilder = builder.string(columnName, diff.colLength);
256
+ break;
257
+ }
258
+ }
259
+ columnBuilder.notNullable();
260
+ if (diff.colChanges?.nullable !== undefined) {
261
+ if (diff.colChanges?.nullable) {
262
+ columnBuilder.nullable();
263
+ }
264
+ }
265
+ if (diff.colChanges?.default) {
266
+ columnBuilder.defaultTo(diff.colChanges?.default);
267
+ }
268
+ if (typeof diff.colChanges?.primary !== 'undefined') {
269
+ if (diff.colChanges?.primary) {
270
+ columnBuilder.primary();
271
+ }
272
+ else {
273
+ builder.dropPrimary();
274
+ }
275
+ }
276
+ return columnBuilder;
277
+ }
278
+ async migrate() { }
279
+ async generateMigration(configFile = process.cwd(), onlySql = false) {
280
+ await this.startConnection(configFile);
281
+ const snapshotBd = await this.snapshotBd();
282
+ const snapshotEntities = await this.snapshotEntities();
283
+ const calculator = new diff_calculator_1.DiffCalculator(this.entities);
284
+ const diff = calculator.diff(snapshotBd, snapshotEntities);
285
+ const sql = this.lastTreatment(await this.run(diff));
286
+ if (onlySql) {
287
+ return sql;
288
+ }
289
+ const fs = await Promise.resolve().then(() => require('fs'));
290
+ const path = await Promise.resolve().then(() => require('path'));
291
+ const directory = path.join(process.cwd(), this.config.migrationPath ?? 'database/migrations');
292
+ const fileName = `migration_${new Date().toISOString().replace(/[^\d]/g, '')}` + `.sql`;
293
+ const migrationFilePath = path.join(directory, fileName);
294
+ if (!fs.existsSync(directory)) {
295
+ fs.mkdirSync(directory, { recursive: true });
296
+ }
297
+ const migrationContent = sql.join('\n');
298
+ if (migrationContent.length === 0) {
299
+ this.orm.logger.info('No changes detected');
300
+ return;
301
+ }
302
+ else {
303
+ fs.writeFileSync(migrationFilePath, migrationContent);
304
+ this.orm.logger.info(`Migration file created: ${migrationFilePath}`);
305
+ }
306
+ }
307
+ lastTreatment(sql) {
308
+ const getDropIndexes = sql.filter((s) => s.startsWith('drop index'));
309
+ const getDropColumns = sql.filter((s) => s.includes('drop column'));
310
+ const dropIndexes = [];
311
+ for (const dropIndex of getDropIndexes) {
312
+ const indexName = dropIndex.split(' ')[2].split('_');
313
+ let colName;
314
+ if (indexName.length === 3) {
315
+ colName = indexName[1];
316
+ }
317
+ else {
318
+ colName = indexName[0];
319
+ }
320
+ colName = colName.split('.')[1].replace(/"/g, '');
321
+ const dropColumn = getDropColumns.find((s) => s.includes(colName));
322
+ if (dropColumn) {
323
+ dropIndexes.push(dropIndex);
324
+ }
325
+ }
326
+ const sqlFiltered = sql.filter((s) => !dropIndexes.includes(s));
327
+ return sqlFiltered;
328
+ }
329
+ async snapshotBd() {
330
+ const snapshot = [];
331
+ for (const [_, values] of this.entities.entries()) {
332
+ const bd = await this.orm.driverInstance.snapshot(values.tableName);
333
+ if (!bd) {
334
+ continue;
335
+ }
336
+ snapshot.push(bd);
337
+ }
338
+ return snapshot;
339
+ }
340
+ async snapshotEntities() {
341
+ const snapshot = [];
342
+ for (const [_, values] of this.entities.entries()) {
343
+ snapshot.push(await this.entities.snapshot(values));
344
+ }
345
+ return snapshot;
346
+ }
347
+ }
348
+ exports.Migrator = Migrator;
349
+ //# sourceMappingURL=migrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrator.js","sourceRoot":"","sources":["../../src/migrator/migrator.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@cheetah.js/cli",
3
+ "description": "Cheetah.js CLI - Generate migrations, models, controllers and more. (In development)",
4
+ "module": "src/index.ts",
5
+ "scripts": {
6
+ "lint": "eslint \"{src,apps,libs,test}/**/*.ts\""
7
+ },
8
+ "dependencies": {
9
+ "commander": "^11.1.0"
10
+ },
11
+ "version": "0.1.0",
12
+ "devDependencies": {
13
+ "@typescript-eslint/eslint-plugin": "^6.12.0",
14
+ "@typescript-eslint/parser": "^6.12.0",
15
+ "bun-types": "latest",
16
+ "eslint": "^8.54.0",
17
+ "eslint-config-prettier": "^9.0.0",
18
+ "eslint-plugin-prettier": "^5.0.1",
19
+ "prettier": "^3.1.0",
20
+ "knex": "^3.0.1",
21
+ "pg": "^8.11.3",
22
+ "reflect-metadata": "^0.1.13"
23
+ },
24
+ "bin": "./dist/cli.js",
25
+ "peerDependencies": {
26
+ "typescript": "^5.0.0",
27
+ "@cheetah.js/orm": "^0.1.39",
28
+ "@cheetah.js/core": "^0.1.34"
29
+ },
30
+ "peerDependenciesMeta": {
31
+ "pg": {
32
+ "optional": true
33
+ }
34
+ },
35
+ "publishConfig": {
36
+ "access": "public"
37
+ },
38
+ "author": "Lucas Mota"
39
+ }