@reldens/storage 0.46.0 → 0.47.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.
@@ -4,9 +4,9 @@
4
4
  *
5
5
  */
6
6
 
7
- const { ErrorManager, Logger, sc } = require('@reldens/utils');
8
- const { FileHandler } = require('@reldens/server-utils');
9
7
  const { execSync } = require('child_process');
8
+ const { FileHandler } = require('@reldens/server-utils');
9
+ const { Logger, sc } = require('@reldens/utils');
10
10
 
11
11
  class PrismaSchemaGenerator
12
12
  {
@@ -16,6 +16,8 @@ class PrismaSchemaGenerator
16
16
  this.config = sc.get(props, 'config', {});
17
17
  this.client = sc.get(props, 'client', 'mysql');
18
18
  this.debug = sc.get(props, 'debug', false);
19
+ this.dataProxy = sc.get(props, 'dataProxy', false);
20
+ this.checkInterval = sc.get(props, 'checkInterval', 1000);
19
21
  this.prismaSchemaPath = sc.get(props, 'prismaSchemaPath', FileHandler.joinPaths(process.cwd(), 'prisma'));
20
22
  this.schemaFilePath = FileHandler.joinPaths(this.prismaSchemaPath, 'schema.prisma');
21
23
  }
@@ -27,8 +29,13 @@ class PrismaSchemaGenerator
27
29
  this.generateSchemaFile();
28
30
  Logger.info('Running prisma introspect "npx prisma db pull"...');
29
31
  execSync('npx prisma db pull', { stdio: 'inherit' });
30
- Logger.info('Running prisma generate "npx prisma generate"...');
31
- execSync('npx prisma generate', { stdio: 'inherit' });
32
+ let generateCommand = 'npx prisma generate';
33
+ if(this.dataProxy){
34
+ generateCommand += ' --data-proxy';
35
+ }
36
+ Logger.info('Running prisma generate "'+generateCommand+'"...');
37
+ execSync(generateCommand, { stdio: 'inherit' });
38
+ await this.waitForSchemaGeneration();
32
39
  return true;
33
40
  } catch(error) {
34
41
  Logger.critical('Failed to generate Prisma schema. '+error.message);
@@ -36,6 +43,20 @@ class PrismaSchemaGenerator
36
43
  return false;
37
44
  }
38
45
 
46
+ async waitForSchemaGeneration()
47
+ {
48
+ let generatedClientPath = FileHandler.joinPaths(this.prismaSchemaPath, '..', 'node_modules', '.prisma', 'client');
49
+ let clientIndexPath = FileHandler.joinPaths(generatedClientPath, 'index.js');
50
+ return new Promise((resolve) => {
51
+ let interval = setInterval(() => {
52
+ if(FileHandler.exists(clientIndexPath)){
53
+ clearInterval(interval);
54
+ resolve();
55
+ }
56
+ }, this.checkInterval);
57
+ });
58
+ }
59
+
39
60
  generateSchemaFile()
40
61
  {
41
62
  let datasourceProvider = 'mysql';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@reldens/storage",
3
3
  "scope": "@reldens",
4
- "version": "0.46.0",
4
+ "version": "0.47.0",
5
5
  "description": "Reldens - Storage",
6
6
  "author": "Damian A. Pastorini",
7
7
  "license": "MIT",
@@ -46,8 +46,8 @@
46
46
  "@mikro-orm/mongodb": "^6.4.15",
47
47
  "@mikro-orm/mysql": "^6.4.15",
48
48
  "@prisma/client": "^6.8.2",
49
- "@reldens/server-utils": "^0.17.0",
50
- "@reldens/utils": "^0.47.0",
49
+ "@reldens/server-utils": "^0.18.0",
50
+ "@reldens/utils": "^0.49.0",
51
51
  "knex": "^3.1.0",
52
52
  "mysql": "^2.18.1",
53
53
  "mysql2": "^3.14.1",