fragment-ts 1.1.17 → 1.1.18

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.
@@ -183,7 +183,7 @@ class InitCommand {
183
183
  "migrate:revert": "fragment migrate:revert",
184
184
  },
185
185
  dependencies: {
186
- "fragment-ts": "^1.1.17",
186
+ "fragment-ts": "^1.1.18",
187
187
  "reflect-metadata": "^0.1.13",
188
188
  sqlite3: "^5.1.7",
189
189
  },
@@ -1 +1 @@
1
- {"version":3,"file":"config.utils.d.ts","sourceRoot":"","sources":["../../src/shared/config.utils.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CACnC;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,WAAW,CAA+B;IAEzD,OAAO,CAAC,MAAM,CAAC,UAAU;IAmBzB,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG;IAsB1C,MAAM,CAAC,iBAAiB,IAAI,sBAAsB;IAWlD,MAAM,CAAC,mBAAmB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC;IAOnE,MAAM,CAAC,aAAa,IAAI,cAAc;IAItC,MAAM,CAAC,iBAAiB,IAAI,OAAO;IAInC,MAAM,CAAC,UAAU,IAAI,IAAI;CAG1B"}
1
+ {"version":3,"file":"config.utils.d.ts","sourceRoot":"","sources":["../../src/shared/config.utils.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CACnC;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,WAAW,CAA+B;IAEzD,OAAO,CAAC,MAAM,CAAC,UAAU;IAmBzB,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG;IAsB1C,MAAM,CAAC,iBAAiB,IAAI,sBAAsB;IAiClD,MAAM,CAAC,mBAAmB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC;IAOnE,MAAM,CAAC,aAAa,IAAI,cAAc;IAItC,MAAM,CAAC,iBAAiB,IAAI,OAAO;IAInC,MAAM,CAAC,UAAU,IAAI,IAAI;CAG1B"}
@@ -38,6 +38,7 @@ exports.ConfigUtils = void 0;
38
38
  const fs = __importStar(require("fs"));
39
39
  const path = __importStar(require("path"));
40
40
  const env_utils_1 = require("./env.utils");
41
+ const tsconfig_utils_1 = require("./tsconfig.utils");
41
42
  class ConfigUtils {
42
43
  static loadConfig() {
43
44
  if (this.configCache)
@@ -81,10 +82,25 @@ class ConfigUtils {
81
82
  const config = this.loadConfig();
82
83
  if (!config.database)
83
84
  return {};
84
- // Interpolate environment variables first
85
- const interpolated = this.interpolateEnvVars(config.database);
86
- // Return as-is - path resolution is handled by RuntimeResolver
87
- return interpolated;
85
+ let dbConfig = this.interpolateEnvVars(config.database);
86
+ const isProduction = env_utils_1.EnvUtils.getEnvironmentMode() === "production";
87
+ const rootDir = tsconfig_utils_1.TsConfigUtils.getRootDir().replace(/\\/g, "/");
88
+ const outDir = tsconfig_utils_1.TsConfigUtils.getOutDir().replace(/\\/g, "/");
89
+ if (Array.isArray(dbConfig.entities)) {
90
+ dbConfig.entities = dbConfig.entities.map((pattern) => isProduction
91
+ ? pattern
92
+ .replace(new RegExp(`^${rootDir}/`), `${outDir}/`)
93
+ .replace(/\.ts$/, ".js")
94
+ : pattern);
95
+ }
96
+ if (Array.isArray(dbConfig.migrations)) {
97
+ dbConfig.migrations = dbConfig.migrations.map((pattern) => isProduction
98
+ ? pattern
99
+ .replace(new RegExp(`^${rootDir}/`), `${outDir}/`)
100
+ .replace(/\.ts$/, ".js")
101
+ : pattern);
102
+ }
103
+ return dbConfig;
88
104
  }
89
105
  static getDatabaseProperty(property, defaultValue) {
90
106
  const dbConfig = this.getDatabaseConfig();
@@ -1 +1 @@
1
- {"version":3,"file":"config.utils.js","sourceRoot":"","sources":["../../src/shared/config.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.utils.js","sourceRoot":"","sources":["../../src/shared/config.utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fragment-ts",
3
- "version": "1.1.17",
3
+ "version": "1.1.18",
4
4
  "description": "Spring Boot-style framework for TypeScript with Express and TypeORM",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -176,7 +176,7 @@ export class InitCommand {
176
176
  "migrate:revert": "fragment migrate:revert",
177
177
  },
178
178
  dependencies: {
179
- "fragment-ts": "^1.1.17",
179
+ "fragment-ts": "^1.1.18",
180
180
  "reflect-metadata": "^0.1.13",
181
181
  sqlite3: "^5.1.7",
182
182
  },
@@ -3,6 +3,7 @@
3
3
  import * as fs from "fs";
4
4
  import * as path from "path";
5
5
  import { EnvUtils } from "./env.utils";
6
+ import { TsConfigUtils } from "./tsconfig.utils";
6
7
 
7
8
  export interface FragmentDatabaseConfig {
8
9
  type?: string;
@@ -37,8 +38,8 @@ export class ConfigUtils {
37
38
  }
38
39
  try {
39
40
  this.configCache = JSON.parse(fs.readFileSync(configPath, "utf8")) || {};
40
-
41
- if(!this.configCache) return {};
41
+
42
+ if (!this.configCache) return {};
42
43
  return this.configCache;
43
44
  } catch (error) {
44
45
  console.error("❌ Error loading fragment.json:", error);
@@ -73,11 +74,33 @@ export class ConfigUtils {
73
74
  const config = this.loadConfig();
74
75
  if (!config.database) return {};
75
76
 
76
- // Interpolate environment variables first
77
- const interpolated = this.interpolateEnvVars(config.database);
77
+ let dbConfig = this.interpolateEnvVars(config.database);
78
+
79
+ const isProduction = EnvUtils.getEnvironmentMode() === "production";
80
+ const rootDir = TsConfigUtils.getRootDir().replace(/\\/g, "/");
81
+ const outDir = TsConfigUtils.getOutDir().replace(/\\/g, "/");
82
+
83
+ if (Array.isArray(dbConfig.entities)) {
84
+ dbConfig.entities = dbConfig.entities.map((pattern: any) =>
85
+ isProduction
86
+ ? pattern
87
+ .replace(new RegExp(`^${rootDir}/`), `${outDir}/`)
88
+ .replace(/\.ts$/, ".js")
89
+ : pattern,
90
+ );
91
+ }
92
+
93
+ if (Array.isArray(dbConfig.migrations)) {
94
+ dbConfig.migrations = dbConfig.migrations.map((pattern: any) =>
95
+ isProduction
96
+ ? pattern
97
+ .replace(new RegExp(`^${rootDir}/`), `${outDir}/`)
98
+ .replace(/\.ts$/, ".js")
99
+ : pattern,
100
+ );
101
+ }
78
102
 
79
- // Return as-is - path resolution is handled by RuntimeResolver
80
- return interpolated;
103
+ return dbConfig;
81
104
  }
82
105
 
83
106
  static getDatabaseProperty<T>(property: string, defaultValue: T): T {