fragment-ts 1.1.8 → 1.1.10
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.
- package/dist/cli/commands/init.command.js +1 -1
- package/dist/cli/commands/init.command.js.map +1 -1
- package/dist/cli/commands/migrate.command.d.ts +1 -25
- package/dist/cli/commands/migrate.command.d.ts.map +1 -1
- package/dist/cli/commands/migrate.command.js +126 -232
- package/dist/cli/commands/migrate.command.js.map +1 -1
- package/dist/cli/index.js +3 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/shared/config.utils.d.ts +0 -1
- package/dist/shared/config.utils.d.ts.map +1 -1
- package/dist/shared/config.utils.js +7 -55
- package/dist/shared/config.utils.js.map +1 -1
- package/dist/shared/runtime.resolver.d.ts +26 -0
- package/dist/shared/runtime.resolver.d.ts.map +1 -0
- package/dist/shared/runtime.resolver.js +183 -0
- package/dist/shared/runtime.resolver.js.map +1 -0
- package/dist/shared/tsconfig.utils.d.ts +6 -117
- package/dist/shared/tsconfig.utils.d.ts.map +1 -1
- package/dist/shared/tsconfig.utils.js +31 -249
- package/dist/shared/tsconfig.utils.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/commands/init.command.ts +1 -1
- package/src/cli/commands/migrate.command.ts +176 -287
- package/src/cli/index.ts +8 -12
- package/src/shared/config.utils.ts +10 -72
- package/src/shared/env.utils.ts +1 -1
- package/src/shared/runtime.resolver.ts +183 -0
- package/src/shared/tsconfig.utils.ts +38 -325
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAA+B;AAC/B,2CAA6B;AAC7B,wDAAgC;AAChC,8CAAsB;AACtB,kDAA0B;AAC1B,iDAAyC;AAEzC,MAAa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,OAAgB;QAC9B,OAAO;aACJ,OAAO,CAAC,kBAAkB,CAAC;aAC3B,WAAW,CAAC,mCAAmC,CAAC;aAChD,MAAM,CAAC,2BAA2B,EAAE,kBAAkB,EAAE,KAAK,CAAC;aAC9D,MAAM,CACL,2BAA2B,EAC3B,uCAAuC,CACxC;aACA,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;aAC5C,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;YACnC,MAAM,WAAW,CAAC,OAAO,CAAC,SAAS,IAAI,GAAG,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,OAAY;QAClD,MAAM,OAAO,GAAG,IAAA,aAAG,GAAE,CAAC;QAEtB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;YAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAE/C,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC/C,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,EAAE,CAAC;YAElB,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBACpC;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,eAAe;oBACxB,OAAO,EAAE,WAAW;iBACrB;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,sBAAsB;oBAC/B,OAAO,EAAE,8BAA8B;iBACxC;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,kBAAkB;oBAC3B,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE;wBACzD,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE;wBAChE,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE;wBACvD,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;qBACrD;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ;gBAC/B,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC1D,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;YAErB,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC7C,MAAM,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE;gBAC/C,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,QAAQ;aACT,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,EAAE,CAAC;YAElB,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACjD,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAClE,OAAO,CAAC,OAAO,EAAE,CAAC;YAElB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBACzB,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAC5C,IAAI,CAAC;oBACH,IAAA,wBAAQ,EAAC,aAAa,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAC/D,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;oBAC/C,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CACV,uDAAuD,CACxD,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,eAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,QAAQ,SAAS,EAAE,CAAC,CAAC,CAAC;YAC/C,CAAC;YACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC7C,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAC3C,WAAmB,EACnB,MAAW;QAEX,MAAM,IAAI,GAAG;YACX,KAAK;YACL,iBAAiB;YACjB,cAAc;YACd,cAAc;YACd,SAAS;YACT,kBAAkB;YAClB,iBAAiB;YACjB,YAAY;YACZ,kBAAkB;YAClB,aAAa;YACb,YAAY;SACb,CAAC;QAEF,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;QAClD,MAAM,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QAE/C,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,iBAAiB,CACpC,WAAmB,EACnB,WAAmB,EACnB,QAAkB;QAElB,MAAM,WAAW,GAAG;YAClB,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE;gBACP,KAAK,EAAE,mBAAmB;gBAC1B,GAAG,EAAE,gBAAgB;gBACrB,KAAK,EAAE,gBAAgB;gBACvB,IAAI,EAAE,eAAe;gBACrB,gBAAgB,EAAE,yBAAyB;gBAC3C,kBAAkB,EAAE,2BAA2B;gBAC/C,aAAa,EAAE,sBAAsB;gBACrC,gBAAgB,EAAE,yBAAyB;aAC5C;YACD,YAAY,EAAE;gBACZ,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +1,6 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
export declare class MigrateCommand {
|
|
3
|
-
private static tsNodeAvailable;
|
|
4
3
|
static register(program: Command): void;
|
|
5
|
-
/**
|
|
6
|
-
* Detect if we should use TypeScript or JavaScript
|
|
7
|
-
*/
|
|
8
|
-
private static setupEnvironment;
|
|
9
|
-
/**
|
|
10
|
-
* Use TypeScript only if:
|
|
11
|
-
* - NODE_ENV !== 'production'
|
|
12
|
-
* - tsconfig.json exists with decorators enabled
|
|
13
|
-
* - ts-node is available
|
|
14
|
-
* - TypeScript files exist
|
|
15
|
-
*/
|
|
16
|
-
private static shouldUseTypeScript;
|
|
17
|
-
private static isTsNodeAvailable;
|
|
18
|
-
private static tsNodeRegistered;
|
|
19
|
-
private static registerTsNodeIfNeeded;
|
|
20
|
-
/**
|
|
21
|
-
* Get entity and migration paths based on current mode
|
|
22
|
-
* Uses fragment.json config when available, otherwise infers from tsconfig
|
|
23
|
-
*/
|
|
24
|
-
private static getPaths;
|
|
25
|
-
/**
|
|
26
|
-
* Extract the actual directory path from a glob pattern for file creation
|
|
27
|
-
*/
|
|
28
|
-
private static extractMigrationDirectory;
|
|
29
4
|
private static generateMigration;
|
|
30
5
|
private static runMigrations;
|
|
31
6
|
private static createMigration;
|
|
@@ -37,6 +12,7 @@ export declare class MigrateCommand {
|
|
|
37
12
|
private static runSeeds;
|
|
38
13
|
private static createSeed;
|
|
39
14
|
private static verifyEntities;
|
|
15
|
+
private static extractMigrationDirectory;
|
|
40
16
|
private static buildQueryStatement;
|
|
41
17
|
private static buildMigrationTemplate;
|
|
42
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/migrate.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"migrate.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/migrate.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,qBAAa,cAAc;IACzB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;mBAgFlB,iBAAiB;mBA2GjB,aAAa;mBAyCb,eAAe;mBAqCf,eAAe;mBAyCf,iBAAiB;mBA0CjB,UAAU;mBAqEV,UAAU;mBAiCV,UAAU;mBAiCV,QAAQ;mBA+CR,UAAU;IAgC/B,OAAO,CAAC,MAAM,CAAC,cAAc;IAY7B,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAcxC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAoBlC,OAAO,CAAC,MAAM,CAAC,sBAAsB;CA0BtC"}
|
|
@@ -43,9 +43,7 @@ const chalk_1 = __importDefault(require("chalk"));
|
|
|
43
43
|
const ora_1 = __importDefault(require("ora"));
|
|
44
44
|
const typeorm_module_1 = require("../../typeorm/typeorm-module");
|
|
45
45
|
const config_utils_1 = require("../../shared/config.utils");
|
|
46
|
-
const
|
|
47
|
-
const tsconfig_utils_1 = require("../../shared/tsconfig.utils");
|
|
48
|
-
const glob_1 = require("glob");
|
|
46
|
+
const runtime_resolver_1 = require("../../shared/runtime.resolver");
|
|
49
47
|
class MigrateCommand {
|
|
50
48
|
static register(program) {
|
|
51
49
|
program
|
|
@@ -116,175 +114,37 @@ class MigrateCommand {
|
|
|
116
114
|
await this.createSeed(name);
|
|
117
115
|
});
|
|
118
116
|
}
|
|
119
|
-
/**
|
|
120
|
-
* Detect if we should use TypeScript or JavaScript
|
|
121
|
-
*/
|
|
122
|
-
static setupEnvironment() {
|
|
123
|
-
return this.shouldUseTypeScript();
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Use TypeScript only if:
|
|
127
|
-
* - NODE_ENV !== 'production'
|
|
128
|
-
* - tsconfig.json exists with decorators enabled
|
|
129
|
-
* - ts-node is available
|
|
130
|
-
* - TypeScript files exist
|
|
131
|
-
*/
|
|
132
|
-
static shouldUseTypeScript() {
|
|
133
|
-
// Never use TS in production
|
|
134
|
-
if (env_utils_1.EnvUtils.getEnvironmentMode() === "production") {
|
|
135
|
-
console.warn("TypeScript is not supported in production mode.");
|
|
136
|
-
return false;
|
|
137
|
-
}
|
|
138
|
-
if (!tsconfig_utils_1.TsConfigUtils.exists()) {
|
|
139
|
-
console.warn("TypeScript configuration file not found.");
|
|
140
|
-
return false;
|
|
141
|
-
}
|
|
142
|
-
if (!tsconfig_utils_1.TsConfigUtils.hasDecoratorSupport()) {
|
|
143
|
-
console.warn("TypeScript configuration file does not support decorators.");
|
|
144
|
-
return false;
|
|
145
|
-
}
|
|
146
|
-
if (!this.isTsNodeAvailable()) {
|
|
147
|
-
console.warn("TypeScript compiler not available.");
|
|
148
|
-
return false;
|
|
149
|
-
}
|
|
150
|
-
const includePatterns = tsconfig_utils_1.TsConfigUtils.getIncludePatterns();
|
|
151
|
-
const cwd = process.cwd();
|
|
152
|
-
for (const pattern of includePatterns) {
|
|
153
|
-
try {
|
|
154
|
-
// Normalize pattern to forward slashes for Windows compatibility
|
|
155
|
-
const normalizedPattern = pattern.replace(/\\/g, "/");
|
|
156
|
-
const files = (0, glob_1.globSync)(normalizedPattern, { cwd });
|
|
157
|
-
if (files.some((file) => file.endsWith(".ts") && !file.endsWith(".d.ts"))) {
|
|
158
|
-
console.warn("TypeScript files found in project.");
|
|
159
|
-
return true;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
catch {
|
|
163
|
-
// Ignore glob errors
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
console.warn("No TypeScript files found in project.");
|
|
167
|
-
return false;
|
|
168
|
-
}
|
|
169
|
-
static isTsNodeAvailable() {
|
|
170
|
-
if (this.tsNodeAvailable !== null) {
|
|
171
|
-
return this.tsNodeAvailable;
|
|
172
|
-
}
|
|
173
|
-
try {
|
|
174
|
-
require.resolve("ts-node");
|
|
175
|
-
this.tsNodeAvailable = true;
|
|
176
|
-
}
|
|
177
|
-
catch {
|
|
178
|
-
this.tsNodeAvailable = false;
|
|
179
|
-
}
|
|
180
|
-
return this.tsNodeAvailable;
|
|
181
|
-
}
|
|
182
|
-
static registerTsNodeIfNeeded(useTypeScript) {
|
|
183
|
-
if (useTypeScript && this.isTsNodeAvailable() && !this.tsNodeRegistered) {
|
|
184
|
-
try {
|
|
185
|
-
require("ts-node").register({
|
|
186
|
-
transpileOnly: true,
|
|
187
|
-
compilerOptions: {
|
|
188
|
-
module: "commonjs",
|
|
189
|
-
experimentalDecorators: true,
|
|
190
|
-
emitDecoratorMetadata: true,
|
|
191
|
-
esModuleInterop: true,
|
|
192
|
-
},
|
|
193
|
-
});
|
|
194
|
-
this.tsNodeRegistered = true;
|
|
195
|
-
console.log(chalk_1.default.gray("✓ TypeScript runtime registered"));
|
|
196
|
-
}
|
|
197
|
-
catch (error) {
|
|
198
|
-
console.error(chalk_1.default.yellow("Warning: Failed to register ts-node"));
|
|
199
|
-
console.error(error);
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
/**
|
|
204
|
-
* Get entity and migration paths based on current mode
|
|
205
|
-
* Uses fragment.json config when available, otherwise infers from tsconfig
|
|
206
|
-
*/
|
|
207
|
-
static getPaths(useTypeScript) {
|
|
208
|
-
const dbConfig = config_utils_1.ConfigUtils.getDatabaseConfig();
|
|
209
|
-
// Helper to resolve extension based on mode
|
|
210
|
-
const resolveExtension = (pattern) => {
|
|
211
|
-
return useTypeScript
|
|
212
|
-
? pattern.replace(/\.js$/, ".ts")
|
|
213
|
-
: pattern.replace(/\.ts$/, ".js");
|
|
214
|
-
};
|
|
215
|
-
// If fragment.json has explicit paths, use them
|
|
216
|
-
if (dbConfig.entities || dbConfig.migrations) {
|
|
217
|
-
const entities = dbConfig.entities
|
|
218
|
-
? dbConfig.entities.map(resolveExtension)
|
|
219
|
-
: [useTypeScript ? "src/**/*.entity.ts" : "dist/**/*.entity.js"];
|
|
220
|
-
const migrations = dbConfig.migrations
|
|
221
|
-
? dbConfig.migrations.map(resolveExtension)
|
|
222
|
-
: [
|
|
223
|
-
useTypeScript
|
|
224
|
-
? "src/migrations/**/*.ts"
|
|
225
|
-
: "dist/migrations/**/*.js",
|
|
226
|
-
];
|
|
227
|
-
// Extract migration directory for file creation
|
|
228
|
-
const migrationDir = this.extractMigrationDirectory(migrations[0], useTypeScript);
|
|
229
|
-
const seedsDir = path.join(migrationDir, "..", "seeds");
|
|
230
|
-
return { entities, migrations, seeds: seedsDir };
|
|
231
|
-
}
|
|
232
|
-
// No fragment.json config - infer from tsconfig
|
|
233
|
-
const rootDir = tsconfig_utils_1.TsConfigUtils.getRootDir();
|
|
234
|
-
const outDir = tsconfig_utils_1.TsConfigUtils.getOutDir();
|
|
235
|
-
const entities = [
|
|
236
|
-
useTypeScript ? `${rootDir}/**/*.entity.ts` : `${outDir}/**/*.entity.js`,
|
|
237
|
-
];
|
|
238
|
-
const migrations = [
|
|
239
|
-
useTypeScript
|
|
240
|
-
? `${rootDir}/migrations/**/*.ts`
|
|
241
|
-
: `${outDir}/migrations/**/*.js`,
|
|
242
|
-
];
|
|
243
|
-
const seeds = useTypeScript ? `${rootDir}/seeds` : `${outDir}/seeds`;
|
|
244
|
-
return { entities, migrations, seeds };
|
|
245
|
-
}
|
|
246
|
-
/**
|
|
247
|
-
* Extract the actual directory path from a glob pattern for file creation
|
|
248
|
-
*/
|
|
249
|
-
static extractMigrationDirectory(pattern, useTypeScript) {
|
|
250
|
-
// Handle common patterns
|
|
251
|
-
if (pattern.includes("/**/*")) {
|
|
252
|
-
// Pattern like "src/migrations/**/*.ts" → "src/migrations"
|
|
253
|
-
return pattern.split("/**/*")[0];
|
|
254
|
-
}
|
|
255
|
-
if (pattern.includes("/*.")) {
|
|
256
|
-
// Pattern like "src/migrations/*.ts" → "src/migrations"
|
|
257
|
-
return pattern.split("/*")[0];
|
|
258
|
-
}
|
|
259
|
-
// Fallback: assume it's a directory path
|
|
260
|
-
if (pattern.endsWith(".ts") || pattern.endsWith(".js")) {
|
|
261
|
-
return path.dirname(pattern);
|
|
262
|
-
}
|
|
263
|
-
// Default fallback
|
|
264
|
-
return useTypeScript ? "src/migrations" : "dist/migrations";
|
|
265
|
-
}
|
|
266
117
|
static async generateMigration(nameOrPath, options) {
|
|
267
|
-
const
|
|
268
|
-
|
|
118
|
+
const mode = runtime_resolver_1.RuntimeResolver.detectRuntimeMode();
|
|
119
|
+
runtime_resolver_1.RuntimeResolver.printMode();
|
|
120
|
+
const spinner = (0, ora_1.default)(`Generating ${mode.useTypeScript ? "TypeScript" : "JavaScript"} migration...`).start();
|
|
269
121
|
let dataSource = null;
|
|
270
122
|
try {
|
|
271
|
-
|
|
272
|
-
const
|
|
273
|
-
const
|
|
123
|
+
runtime_resolver_1.RuntimeResolver.registerTypeScriptRuntime();
|
|
124
|
+
const dbConfig = config_utils_1.ConfigUtils.getDatabaseConfig();
|
|
125
|
+
const paths = runtime_resolver_1.RuntimeResolver.resolvePaths(dbConfig.entities, dbConfig.migrations);
|
|
126
|
+
spinner.info(`Entity paths: ${paths.entities.join(", ")}`);
|
|
127
|
+
spinner.start();
|
|
128
|
+
const configOverride = {
|
|
129
|
+
entities: paths.entities,
|
|
130
|
+
migrations: paths.migrations,
|
|
131
|
+
};
|
|
274
132
|
dataSource = await typeorm_module_1.TypeORMModule.initialize(configOverride);
|
|
275
133
|
if (!dataSource?.isInitialized) {
|
|
276
134
|
throw new Error("Failed to initialize DataSource");
|
|
277
135
|
}
|
|
278
136
|
this.verifyEntities(dataSource);
|
|
279
|
-
// Setup migrations directory
|
|
280
|
-
const migrationsPattern = migrations[0];
|
|
281
|
-
const migrationsDir = this.extractMigrationDirectory(migrationsPattern
|
|
137
|
+
// Setup migrations directory
|
|
138
|
+
const migrationsPattern = paths.migrations[0];
|
|
139
|
+
const migrationsDir = this.extractMigrationDirectory(migrationsPattern);
|
|
282
140
|
await fs.ensureDir(migrationsDir);
|
|
283
141
|
const existingMigrations = fs.existsSync(migrationsDir)
|
|
284
142
|
? fs
|
|
285
143
|
.readdirSync(migrationsDir)
|
|
286
|
-
.filter((f) =>
|
|
287
|
-
|
|
144
|
+
.filter((f) => (mode.useTypeScript &&
|
|
145
|
+
f.endsWith(".ts") &&
|
|
146
|
+
!f.endsWith(".d.ts")) ||
|
|
147
|
+
(!mode.useTypeScript && f.endsWith(".js")))
|
|
288
148
|
: [];
|
|
289
149
|
const isFirstMigration = existingMigrations.length === 0;
|
|
290
150
|
// Generate schema changes
|
|
@@ -305,12 +165,12 @@ class MigrateCommand {
|
|
|
305
165
|
const className = `${migrationName}${timestamp}`;
|
|
306
166
|
const upStatements = upQueries.map((q) => this.buildQueryStatement(q));
|
|
307
167
|
const downStatements = downQueries.map((q) => this.buildQueryStatement(q));
|
|
308
|
-
const migrationContent = this.buildMigrationTemplate(className, upStatements, downStatements
|
|
309
|
-
const fileExt = useTypeScript ? ".ts" : ".js";
|
|
168
|
+
const migrationContent = this.buildMigrationTemplate(className, upStatements, downStatements);
|
|
169
|
+
const fileExt = mode.useTypeScript ? ".ts" : ".js";
|
|
310
170
|
const fileName = `${timestamp}-${migrationName}${fileExt}`;
|
|
311
171
|
const filePath = path.join(migrationsDir, fileName);
|
|
312
172
|
await fs.writeFile(filePath, migrationContent, "utf-8");
|
|
313
|
-
spinner.succeed(`${useTypeScript ? "TypeScript" : "JavaScript"} migration generated: ${chalk_1.default.cyan(fileName)}`);
|
|
173
|
+
spinner.succeed(`${mode.useTypeScript ? "TypeScript" : "JavaScript"} migration generated: ${chalk_1.default.cyan(fileName)}`);
|
|
314
174
|
}
|
|
315
175
|
catch (error) {
|
|
316
176
|
spinner.fail("Migration generation failed");
|
|
@@ -327,16 +187,21 @@ class MigrateCommand {
|
|
|
327
187
|
}
|
|
328
188
|
}
|
|
329
189
|
static async runMigrations() {
|
|
330
|
-
const
|
|
331
|
-
|
|
190
|
+
const mode = runtime_resolver_1.RuntimeResolver.detectRuntimeMode();
|
|
191
|
+
runtime_resolver_1.RuntimeResolver.printMode();
|
|
192
|
+
const spinner = (0, ora_1.default)(`Running ${mode.useTypeScript ? "TypeScript" : "JavaScript"} migrations...`).start();
|
|
332
193
|
let dataSource = null;
|
|
333
194
|
try {
|
|
334
|
-
|
|
335
|
-
const
|
|
336
|
-
const
|
|
195
|
+
runtime_resolver_1.RuntimeResolver.registerTypeScriptRuntime();
|
|
196
|
+
const dbConfig = config_utils_1.ConfigUtils.getDatabaseConfig();
|
|
197
|
+
const paths = runtime_resolver_1.RuntimeResolver.resolvePaths(dbConfig.entities, dbConfig.migrations);
|
|
198
|
+
const configOverride = {
|
|
199
|
+
entities: paths.entities,
|
|
200
|
+
migrations: paths.migrations,
|
|
201
|
+
};
|
|
337
202
|
dataSource = await typeorm_module_1.TypeORMModule.initialize(configOverride);
|
|
338
203
|
await typeorm_module_1.TypeORMModule.runMigrations();
|
|
339
|
-
spinner.succeed(`${useTypeScript ? "TypeScript" : "JavaScript"} migrations completed successfully`);
|
|
204
|
+
spinner.succeed(`${mode.useTypeScript ? "TypeScript" : "JavaScript"} migrations completed successfully`);
|
|
340
205
|
}
|
|
341
206
|
catch (error) {
|
|
342
207
|
spinner.fail("Migration failed");
|
|
@@ -350,26 +215,27 @@ class MigrateCommand {
|
|
|
350
215
|
}
|
|
351
216
|
}
|
|
352
217
|
static async createMigration(name) {
|
|
353
|
-
|
|
354
|
-
const useTypeScript = true; // Force TS for creation
|
|
355
|
-
const spinner = (0, ora_1.default)("Creating TypeScript migration...").start();
|
|
218
|
+
const spinner = (0, ora_1.default)("Creating migration...").start();
|
|
356
219
|
try {
|
|
357
|
-
|
|
358
|
-
const
|
|
220
|
+
// Always create TS migrations
|
|
221
|
+
const paths = runtime_resolver_1.RuntimeResolver.resolvePaths(undefined, [
|
|
222
|
+
"src/migrations/**/*.ts",
|
|
223
|
+
]);
|
|
224
|
+
const migrationsDir = paths.migrations[0].replace("/migrations/**/*.ts", "/migrations");
|
|
225
|
+
await fs.ensureDir(migrationsDir);
|
|
359
226
|
const timestamp = Date.now();
|
|
360
227
|
const fileName = `${timestamp}-${name}.ts`;
|
|
361
228
|
const filePath = path.join(migrationsDir, fileName);
|
|
362
229
|
const content = `import { MigrationInterface, QueryRunner } from 'typeorm';
|
|
363
230
|
|
|
364
|
-
export class ${name}${timestamp} implements MigrationInterface {
|
|
365
|
-
|
|
231
|
+
export class ${name}${timestamp} implements MigrationInterface {
|
|
232
|
+
async up(queryRunner: QueryRunner): Promise<void> {}
|
|
366
233
|
|
|
367
|
-
|
|
368
|
-
}
|
|
369
|
-
`;
|
|
234
|
+
async down(queryRunner: QueryRunner): Promise<void> {}
|
|
235
|
+
}`;
|
|
370
236
|
await fs.ensureDir(path.dirname(filePath));
|
|
371
237
|
await fs.writeFile(filePath, content);
|
|
372
|
-
spinner.succeed(`
|
|
238
|
+
spinner.succeed(`Migration created: ${fileName}`);
|
|
373
239
|
}
|
|
374
240
|
catch (error) {
|
|
375
241
|
spinner.fail("Failed to create migration");
|
|
@@ -378,16 +244,21 @@ export class ${name}${timestamp} implements MigrationInterface {
|
|
|
378
244
|
}
|
|
379
245
|
}
|
|
380
246
|
static async revertMigration() {
|
|
381
|
-
const
|
|
382
|
-
|
|
247
|
+
const mode = runtime_resolver_1.RuntimeResolver.detectRuntimeMode();
|
|
248
|
+
runtime_resolver_1.RuntimeResolver.printMode();
|
|
249
|
+
const spinner = (0, ora_1.default)(`Reverting ${mode.useTypeScript ? "TypeScript" : "JavaScript"} migration...`).start();
|
|
383
250
|
let dataSource = null;
|
|
384
251
|
try {
|
|
385
|
-
|
|
386
|
-
const
|
|
387
|
-
const
|
|
252
|
+
runtime_resolver_1.RuntimeResolver.registerTypeScriptRuntime();
|
|
253
|
+
const dbConfig = config_utils_1.ConfigUtils.getDatabaseConfig();
|
|
254
|
+
const paths = runtime_resolver_1.RuntimeResolver.resolvePaths(dbConfig.entities, dbConfig.migrations);
|
|
255
|
+
const configOverride = {
|
|
256
|
+
entities: paths.entities,
|
|
257
|
+
migrations: paths.migrations,
|
|
258
|
+
};
|
|
388
259
|
dataSource = await typeorm_module_1.TypeORMModule.initialize(configOverride);
|
|
389
260
|
await typeorm_module_1.TypeORMModule.revertMigration();
|
|
390
|
-
spinner.succeed(`${useTypeScript ? "TypeScript" : "JavaScript"} migration reverted successfully`);
|
|
261
|
+
spinner.succeed(`${mode.useTypeScript ? "TypeScript" : "JavaScript"} migration reverted successfully`);
|
|
391
262
|
}
|
|
392
263
|
catch (error) {
|
|
393
264
|
spinner.fail("Revert failed");
|
|
@@ -401,17 +272,22 @@ export class ${name}${timestamp} implements MigrationInterface {
|
|
|
401
272
|
}
|
|
402
273
|
}
|
|
403
274
|
static async refreshMigrations() {
|
|
404
|
-
const
|
|
405
|
-
|
|
275
|
+
const mode = runtime_resolver_1.RuntimeResolver.detectRuntimeMode();
|
|
276
|
+
runtime_resolver_1.RuntimeResolver.printMode();
|
|
277
|
+
const spinner = (0, ora_1.default)(`Refreshing ${mode.useTypeScript ? "TypeScript" : "JavaScript"} migrations...`).start();
|
|
406
278
|
let dataSource = null;
|
|
407
279
|
try {
|
|
408
|
-
|
|
409
|
-
const
|
|
410
|
-
const
|
|
280
|
+
runtime_resolver_1.RuntimeResolver.registerTypeScriptRuntime();
|
|
281
|
+
const dbConfig = config_utils_1.ConfigUtils.getDatabaseConfig();
|
|
282
|
+
const paths = runtime_resolver_1.RuntimeResolver.resolvePaths(dbConfig.entities, dbConfig.migrations);
|
|
283
|
+
const configOverride = {
|
|
284
|
+
entities: paths.entities,
|
|
285
|
+
migrations: paths.migrations,
|
|
286
|
+
};
|
|
411
287
|
dataSource = await typeorm_module_1.TypeORMModule.initialize(configOverride);
|
|
412
288
|
await typeorm_module_1.TypeORMModule.dropSchema();
|
|
413
289
|
await typeorm_module_1.TypeORMModule.runMigrations();
|
|
414
|
-
spinner.succeed(`${useTypeScript ? "TypeScript" : "JavaScript"} migrations refreshed successfully`);
|
|
290
|
+
spinner.succeed(`${mode.useTypeScript ? "TypeScript" : "JavaScript"} migrations refreshed successfully`);
|
|
415
291
|
}
|
|
416
292
|
catch (error) {
|
|
417
293
|
spinner.fail("Refresh failed");
|
|
@@ -425,16 +301,21 @@ export class ${name}${timestamp} implements MigrationInterface {
|
|
|
425
301
|
}
|
|
426
302
|
}
|
|
427
303
|
static async showStatus() {
|
|
428
|
-
const
|
|
304
|
+
const mode = runtime_resolver_1.RuntimeResolver.detectRuntimeMode();
|
|
305
|
+
runtime_resolver_1.RuntimeResolver.printMode(true);
|
|
429
306
|
let dataSource = null;
|
|
430
307
|
try {
|
|
431
|
-
|
|
432
|
-
const
|
|
433
|
-
const
|
|
308
|
+
runtime_resolver_1.RuntimeResolver.registerTypeScriptRuntime();
|
|
309
|
+
const dbConfig = config_utils_1.ConfigUtils.getDatabaseConfig();
|
|
310
|
+
const paths = runtime_resolver_1.RuntimeResolver.resolvePaths(dbConfig.entities, dbConfig.migrations);
|
|
311
|
+
const configOverride = {
|
|
312
|
+
entities: paths.entities,
|
|
313
|
+
migrations: paths.migrations,
|
|
314
|
+
};
|
|
434
315
|
dataSource = await typeorm_module_1.TypeORMModule.initialize(configOverride);
|
|
435
316
|
const executedMigrations = await dataSource.query(`SELECT * FROM migrations ORDER BY timestamp DESC`);
|
|
436
|
-
const
|
|
437
|
-
console.log(chalk_1.default.blue(`\n📊 ${
|
|
317
|
+
const modeLabel = mode.useTypeScript ? "TypeScript" : "JavaScript";
|
|
318
|
+
console.log(chalk_1.default.blue(`\n📊 ${modeLabel} Migration Status:\n`));
|
|
438
319
|
if (executedMigrations.length === 0) {
|
|
439
320
|
console.log(chalk_1.default.yellow(" No migrations have been executed yet."));
|
|
440
321
|
}
|
|
@@ -444,21 +325,16 @@ export class ${name}${timestamp} implements MigrationInterface {
|
|
|
444
325
|
console.log(` ${chalk_1.default.cyan(m.name)} - ${new Date(m.timestamp).toLocaleString()}`);
|
|
445
326
|
});
|
|
446
327
|
}
|
|
447
|
-
// Show migration
|
|
448
|
-
const migrationsPattern = migrations[0];
|
|
449
|
-
const migrationsDir = this.extractMigrationDirectory(migrationsPattern
|
|
450
|
-
const fileExt = useTypeScript ? ".ts" : ".js";
|
|
328
|
+
// Show migration files
|
|
329
|
+
const migrationsPattern = paths.migrations[0];
|
|
330
|
+
const migrationsDir = this.extractMigrationDirectory(migrationsPattern);
|
|
331
|
+
const fileExt = mode.useTypeScript ? ".ts" : ".js";
|
|
451
332
|
if (fs.existsSync(migrationsDir)) {
|
|
452
333
|
const files = fs
|
|
453
334
|
.readdirSync(migrationsDir)
|
|
454
335
|
.filter((f) => f.endsWith(fileExt));
|
|
455
|
-
console.log(chalk_1.default.blue(`\n Available ${
|
|
336
|
+
console.log(chalk_1.default.blue(`\n Available ${modeLabel.toLowerCase()} migration files: ${files.length}`));
|
|
456
337
|
}
|
|
457
|
-
// Show detection info
|
|
458
|
-
console.log(chalk_1.default.gray(`\n Configuration:`));
|
|
459
|
-
console.log(chalk_1.default.gray(` - Environment mode: ${env_utils_1.EnvUtils.getEnvironmentMode()}`));
|
|
460
|
-
console.log(chalk_1.default.gray(` - ts-node available: ${this.isTsNodeAvailable()}`));
|
|
461
|
-
console.log(chalk_1.default.gray(` - Using: ${useTypeScript ? "TypeScript" : "JavaScript"}`));
|
|
462
338
|
}
|
|
463
339
|
catch (error) {
|
|
464
340
|
console.error(chalk_1.default.red("Failed to show migration status"));
|
|
@@ -471,13 +347,15 @@ export class ${name}${timestamp} implements MigrationInterface {
|
|
|
471
347
|
}
|
|
472
348
|
}
|
|
473
349
|
static async syncSchema() {
|
|
474
|
-
const
|
|
475
|
-
|
|
350
|
+
const mode = runtime_resolver_1.RuntimeResolver.detectRuntimeMode();
|
|
351
|
+
runtime_resolver_1.RuntimeResolver.printMode();
|
|
352
|
+
const spinner = (0, ora_1.default)(`Synchronizing ${mode.useTypeScript ? "TypeScript" : "JavaScript"} schema...`).start();
|
|
476
353
|
let dataSource = null;
|
|
477
354
|
try {
|
|
478
|
-
|
|
479
|
-
const
|
|
480
|
-
const
|
|
355
|
+
runtime_resolver_1.RuntimeResolver.registerTypeScriptRuntime();
|
|
356
|
+
const dbConfig = config_utils_1.ConfigUtils.getDatabaseConfig();
|
|
357
|
+
const paths = runtime_resolver_1.RuntimeResolver.resolvePaths(dbConfig.entities);
|
|
358
|
+
const configOverride = { entities: paths.entities };
|
|
481
359
|
dataSource = await typeorm_module_1.TypeORMModule.initialize(configOverride);
|
|
482
360
|
await typeorm_module_1.TypeORMModule.syncSchema();
|
|
483
361
|
spinner.succeed("Schema synchronized");
|
|
@@ -494,13 +372,15 @@ export class ${name}${timestamp} implements MigrationInterface {
|
|
|
494
372
|
}
|
|
495
373
|
}
|
|
496
374
|
static async dropSchema() {
|
|
497
|
-
const
|
|
498
|
-
|
|
375
|
+
const mode = runtime_resolver_1.RuntimeResolver.detectRuntimeMode();
|
|
376
|
+
runtime_resolver_1.RuntimeResolver.printMode();
|
|
377
|
+
const spinner = (0, ora_1.default)(`Dropping ${mode.useTypeScript ? "TypeScript" : "JavaScript"} schema...`).start();
|
|
499
378
|
let dataSource = null;
|
|
500
379
|
try {
|
|
501
|
-
|
|
502
|
-
const
|
|
503
|
-
const
|
|
380
|
+
runtime_resolver_1.RuntimeResolver.registerTypeScriptRuntime();
|
|
381
|
+
const dbConfig = config_utils_1.ConfigUtils.getDatabaseConfig();
|
|
382
|
+
const paths = runtime_resolver_1.RuntimeResolver.resolvePaths(dbConfig.entities);
|
|
383
|
+
const configOverride = { entities: paths.entities };
|
|
504
384
|
dataSource = await typeorm_module_1.TypeORMModule.initialize(configOverride);
|
|
505
385
|
await typeorm_module_1.TypeORMModule.dropSchema();
|
|
506
386
|
spinner.succeed("Schema dropped");
|
|
@@ -517,10 +397,14 @@ export class ${name}${timestamp} implements MigrationInterface {
|
|
|
517
397
|
}
|
|
518
398
|
}
|
|
519
399
|
static async runSeeds() {
|
|
520
|
-
const
|
|
521
|
-
|
|
400
|
+
const mode = runtime_resolver_1.RuntimeResolver.detectRuntimeMode();
|
|
401
|
+
runtime_resolver_1.RuntimeResolver.printMode();
|
|
402
|
+
const spinner = (0, ora_1.default)(`Running ${mode.useTypeScript ? "TypeScript" : "JavaScript"} seeds...`).start();
|
|
522
403
|
try {
|
|
523
|
-
|
|
404
|
+
runtime_resolver_1.RuntimeResolver.registerTypeScriptRuntime();
|
|
405
|
+
const dbConfig = config_utils_1.ConfigUtils.getDatabaseConfig();
|
|
406
|
+
const paths = runtime_resolver_1.RuntimeResolver.resolvePaths(dbConfig.entities, dbConfig.migrations);
|
|
407
|
+
const seedsDir = paths.seeds;
|
|
524
408
|
if (!fs.existsSync(seedsDir)) {
|
|
525
409
|
spinner.info(`No seeds directory found at ${seedsDir}`);
|
|
526
410
|
return;
|
|
@@ -529,10 +413,8 @@ export class ${name}${timestamp} implements MigrationInterface {
|
|
|
529
413
|
for (const file of files) {
|
|
530
414
|
const isTsFile = file.endsWith(".ts") && !file.endsWith(".d.ts");
|
|
531
415
|
const isJsFile = file.endsWith(".js");
|
|
532
|
-
if ((useTypeScript && isTsFile) ||
|
|
533
|
-
|
|
534
|
-
this.registerTsNodeIfNeeded(true);
|
|
535
|
-
}
|
|
416
|
+
if ((mode.useTypeScript && isTsFile) ||
|
|
417
|
+
(!mode.useTypeScript && isJsFile)) {
|
|
536
418
|
const seedModule = require(path.join(seedsDir, file));
|
|
537
419
|
if (seedModule.default?.run) {
|
|
538
420
|
await seedModule.default.run();
|
|
@@ -548,10 +430,11 @@ export class ${name}${timestamp} implements MigrationInterface {
|
|
|
548
430
|
}
|
|
549
431
|
}
|
|
550
432
|
static async createSeed(name) {
|
|
551
|
-
const useTypeScript = true; // Always create TS seeds
|
|
552
433
|
const spinner = (0, ora_1.default)("Creating TypeScript seed...").start();
|
|
553
434
|
try {
|
|
554
|
-
const
|
|
435
|
+
const dbConfig = config_utils_1.ConfigUtils.getDatabaseConfig();
|
|
436
|
+
const paths = runtime_resolver_1.RuntimeResolver.resolvePaths(dbConfig.entities, dbConfig.migrations);
|
|
437
|
+
const seedsDir = paths.seeds;
|
|
555
438
|
const fileName = `${name}.seed.ts`;
|
|
556
439
|
const filePath = path.join(seedsDir, fileName);
|
|
557
440
|
const content = `export default class ${name}Seed {
|
|
@@ -569,7 +452,7 @@ export class ${name}${timestamp} implements MigrationInterface {
|
|
|
569
452
|
process.exit(1);
|
|
570
453
|
}
|
|
571
454
|
}
|
|
572
|
-
// Helper methods
|
|
455
|
+
// Helper methods
|
|
573
456
|
static verifyEntities(dataSource) {
|
|
574
457
|
const entities = dataSource.entityMetadatas;
|
|
575
458
|
if (entities.length === 0) {
|
|
@@ -581,6 +464,19 @@ export class ${name}${timestamp} implements MigrationInterface {
|
|
|
581
464
|
});
|
|
582
465
|
console.log();
|
|
583
466
|
}
|
|
467
|
+
static extractMigrationDirectory(pattern) {
|
|
468
|
+
// Handle common patterns
|
|
469
|
+
if (pattern.includes("/**/*")) {
|
|
470
|
+
return pattern.split("/**/*")[0];
|
|
471
|
+
}
|
|
472
|
+
if (pattern.includes("/*.")) {
|
|
473
|
+
return pattern.split("/*")[0];
|
|
474
|
+
}
|
|
475
|
+
if (pattern.endsWith(".ts") || pattern.endsWith(".js")) {
|
|
476
|
+
return path.dirname(pattern);
|
|
477
|
+
}
|
|
478
|
+
return pattern;
|
|
479
|
+
}
|
|
584
480
|
static buildQueryStatement(query) {
|
|
585
481
|
let sql = query.query
|
|
586
482
|
.replace(/\\/g, "\\\\")
|
|
@@ -596,14 +492,14 @@ export class ${name}${timestamp} implements MigrationInterface {
|
|
|
596
492
|
}
|
|
597
493
|
return `await queryRunner.query(\`${sql}\`);`;
|
|
598
494
|
}
|
|
599
|
-
static buildMigrationTemplate(className, upStatements, downStatements
|
|
495
|
+
static buildMigrationTemplate(className, upStatements, downStatements) {
|
|
600
496
|
const upBody = upStatements.length > 0
|
|
601
497
|
? upStatements.map((s) => ` ${s}`).join("\n")
|
|
602
498
|
: " // No changes";
|
|
603
499
|
const downBody = downStatements.length > 0
|
|
604
500
|
? downStatements.map((s) => ` ${s}`).join("\n")
|
|
605
501
|
: " // No changes";
|
|
606
|
-
return `import { MigrationInterface, QueryRunner } from "
|
|
502
|
+
return `import { MigrationInterface, QueryRunner } from "typeorm";
|
|
607
503
|
|
|
608
504
|
export class ${className} implements MigrationInterface {
|
|
609
505
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
@@ -617,6 +513,4 @@ ${downBody}
|
|
|
617
513
|
}
|
|
618
514
|
}
|
|
619
515
|
exports.MigrateCommand = MigrateCommand;
|
|
620
|
-
MigrateCommand.tsNodeAvailable = null;
|
|
621
|
-
MigrateCommand.tsNodeRegistered = false;
|
|
622
516
|
//# sourceMappingURL=migrate.command.js.map
|