@nmxjs/app 1.1.1 → 1.1.2

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,7 @@
1
+ export declare const ensureDatabase: (db: {
2
+ host: string;
3
+ port: number;
4
+ username?: string;
5
+ password?: string;
6
+ database?: string;
7
+ }) => Promise<void>;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ensureDatabase = void 0;
4
+ const pg_1 = require("pg");
5
+ const ensureDatabase = async (db) => {
6
+ const client = new pg_1.Client({
7
+ host: db.host,
8
+ port: db.port,
9
+ user: db.username,
10
+ password: db.password,
11
+ database: 'postgres',
12
+ });
13
+ try {
14
+ await client.connect();
15
+ const res = await client.query('SELECT 1 FROM pg_database WHERE datname = $1', [db.database]);
16
+ if (res.rowCount === 0) {
17
+ await client.query(`CREATE DATABASE "${db.database}"`);
18
+ }
19
+ }
20
+ finally {
21
+ await client.end();
22
+ }
23
+ };
24
+ exports.ensureDatabase = ensureDatabase;
25
+ //# sourceMappingURL=ensureDatabase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensureDatabase.js","sourceRoot":"","sources":["../src/ensureDatabase.ts"],"names":[],"mappings":";;;AAAA,2BAA4B;AAErB,MAAM,cAAc,GAAG,KAAK,EAAE,EAA2F,EAAE,EAAE;IAClI,MAAM,MAAM,GAAG,IAAI,WAAM,CAAC;QACxB,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,IAAI,EAAE,EAAE,CAAC,QAAQ;QACjB,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,QAAQ,EAAE,UAAU;KACrB,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,8CAA8C,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9F,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC;AACH,CAAC,CAAC;AAlBW,QAAA,cAAc,kBAkBzB"}
@@ -3,8 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getTypeOrmModule = void 0;
4
4
  const typeorm_1 = require("@nestjs/typeorm");
5
5
  const config_1 = require("@nmxjs/config");
6
+ const ensureDatabase_1 = require("./ensureDatabase");
6
7
  const getTypeOrmModule = (options) => typeorm_1.TypeOrmModule.forRootAsync({
7
- useFactory: (config) => (Object.assign(Object.assign({ type: config.db.type, host: config.db.host, port: config.db.port, username: config.db.username, password: config.db.password, database: config.db.database, synchronize: true, autoLoadEntities: true }, (config.db.options ? config.db.options : {})), (options ? options : {}))),
8
+ useFactory: async (config) => {
9
+ var _a;
10
+ if (((_a = config.db) === null || _a === void 0 ? void 0 : _a.type) === 'postgres') {
11
+ await (0, ensureDatabase_1.ensureDatabase)(config.db);
12
+ }
13
+ return Object.assign(Object.assign({ type: config.db.type, host: config.db.host, port: config.db.port, username: config.db.username, password: config.db.password, database: config.db.database, synchronize: true, autoLoadEntities: true }, (config.db.options ? config.db.options : {})), (options ? options : {}));
14
+ },
8
15
  inject: [config_1.configKey],
9
16
  });
10
17
  exports.getTypeOrmModule = getTypeOrmModule;
@@ -1 +1 @@
1
- {"version":3,"file":"getTypeOrmModule.js","sourceRoot":"","sources":["../src/getTypeOrmModule.ts"],"names":[],"mappings":";;;AAAA,6CAAsE;AACtE,0CAAmD;AAE5C,MAAM,gBAAgB,GAAG,CAAC,OAAuC,EAAE,EAAE,CAC1E,uBAAa,CAAC,YAAY,CAAC;IACzB,UAAU,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,+BAC/B,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EACpB,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EACpB,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EACpB,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAC5B,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAC5B,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAC5B,WAAW,EAAE,IAAI,EACjB,gBAAgB,EAAE,IAAI,IACnB,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAC5C,CAAC,OAAO,CAAC,CAAC,CAAM,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAChC;IACF,MAAM,EAAE,CAAC,kBAAS,CAAC;CACpB,CAAC,CAAC;AAfQ,QAAA,gBAAgB,oBAexB"}
1
+ {"version":3,"file":"getTypeOrmModule.js","sourceRoot":"","sources":["../src/getTypeOrmModule.ts"],"names":[],"mappings":";;;AAAA,6CAAsE;AACtE,0CAAmD;AACnD,qDAAkD;AAE3C,MAAM,gBAAgB,GAAG,CAAC,OAAuC,EAAE,EAAE,CAC1E,uBAAa,CAAC,YAAY,CAAC;IACzB,UAAU,EAAE,KAAK,EAAE,MAAe,EAAE,EAAE;;QACpC,IAAI,CAAA,MAAA,MAAM,CAAC,EAAE,0CAAE,IAAI,MAAK,UAAU,EAAE,CAAC;YACnC,MAAM,IAAA,+BAAc,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,qCACE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EACpB,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EACpB,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EACpB,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAC5B,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAC5B,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAC5B,WAAW,EAAE,IAAI,EACjB,gBAAgB,EAAE,IAAI,IACnB,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAC5C,CAAC,OAAO,CAAC,CAAC,CAAM,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAChC;IACJ,CAAC;IACD,MAAM,EAAE,CAAC,kBAAS,CAAC;CACpB,CAAC,CAAC;AArBQ,QAAA,gBAAgB,oBAqBxB"}
package/dist/index.d.ts CHANGED
@@ -8,3 +8,4 @@ export * from './CrudService';
8
8
  export * from './ExtraRepository';
9
9
  export * from './GqlExceptionFilter';
10
10
  export * from './createTestNestHttpApp';
11
+ export * from './ensureDatabase';
package/dist/index.js CHANGED
@@ -24,4 +24,5 @@ __exportStar(require("./CrudService"), exports);
24
24
  __exportStar(require("./ExtraRepository"), exports);
25
25
  __exportStar(require("./GqlExceptionFilter"), exports);
26
26
  __exportStar(require("./createTestNestHttpApp"), exports);
27
+ __exportStar(require("./ensureDatabase"), exports);
27
28
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,kDAAgC;AAChC,kDAAgC;AAChC,qDAAmC;AACnC,qDAAmC;AACnC,sDAAoC;AACpC,gDAA8B;AAC9B,oDAAkC;AAClC,uDAAqC;AACrC,0DAAwC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,kDAAgC;AAChC,kDAAgC;AAChC,qDAAmC;AACnC,qDAAmC;AACnC,sDAAoC;AACpC,gDAA8B;AAC9B,oDAAkC;AAClC,uDAAqC;AACrC,0DAAwC;AACxC,mDAAiC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nmxjs/app",
3
- "version": "1.1.1",
3
+ "version": "1.1.2",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -24,6 +24,7 @@
24
24
  "devDependencies": {
25
25
  "@types/body-parser": "^1.19.6",
26
26
  "@types/node": "^22.19.15",
27
+ "@types/pg": "^8.15.2",
27
28
  "typescript": "^5.9.3"
28
29
  },
29
30
  "dependencies": {
@@ -36,6 +37,7 @@
36
37
  "graphql-upload-ts": "^2.1.3",
37
38
  "graphql-ws": "^6.0.7",
38
39
  "helmet": "^8.1.0",
40
+ "pg": "^8.16.3",
39
41
  "typeorm": "^0.3.28"
40
42
  },
41
43
  "peerDependencies": {