@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
|
-
|
|
31
|
-
|
|
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.
|
|
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.
|
|
50
|
-
"@reldens/utils": "^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",
|