@reldens/storage 0.35.0 → 0.37.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.
package/README.md
CHANGED
|
@@ -104,7 +104,7 @@ Then, use the PrismaDataServer in your code:
|
|
|
104
104
|
const { PrismaDataServer } = require('@reldens/storage');
|
|
105
105
|
|
|
106
106
|
const server = new PrismaDataServer({
|
|
107
|
-
client: '
|
|
107
|
+
client: 'mysql',
|
|
108
108
|
config: {
|
|
109
109
|
user: 'reldens',
|
|
110
110
|
password: 'reldens',
|
package/index.js
CHANGED
|
@@ -29,6 +29,11 @@ module.exports = {
|
|
|
29
29
|
'mikro-orm': MikroOrmDataServer,
|
|
30
30
|
'prisma': PrismaDataServer
|
|
31
31
|
},
|
|
32
|
+
DriversClassMap: {
|
|
33
|
+
'ObjectionJsDataServer': 'objection-js',
|
|
34
|
+
'MikroOrmDataServer': 'mikro-orm',
|
|
35
|
+
'PrismaDataServer': 'prisma-server'
|
|
36
|
+
},
|
|
32
37
|
// objection-js:
|
|
33
38
|
ObjectionJsDataServer,
|
|
34
39
|
ObjectionJsDriver,
|
|
@@ -37,6 +37,11 @@ class EntitiesGenerator
|
|
|
37
37
|
'mikro-orm': MikroOrmDataServer,
|
|
38
38
|
'prisma': PrismaDataServer
|
|
39
39
|
};
|
|
40
|
+
this.driversClassMap = {
|
|
41
|
+
'ObjectionJsDataServer': 'objection-js',
|
|
42
|
+
'MikroOrmDataServer': 'mikro-orm',
|
|
43
|
+
'PrismaDataServer': 'prisma-server'
|
|
44
|
+
};
|
|
40
45
|
this.server = sc.get(props, 'server', false);
|
|
41
46
|
this.connectionData = sc.get(props, 'connectionData', false);
|
|
42
47
|
if(!this.server && !this.connectionData){
|
|
@@ -194,7 +199,7 @@ class EntitiesGenerator
|
|
|
194
199
|
|
|
195
200
|
addTypeAttribute(props, column, type)
|
|
196
201
|
{
|
|
197
|
-
if(
|
|
202
|
+
if(column.referencedTable){
|
|
198
203
|
props.push('type: \'reference\'');
|
|
199
204
|
props.push('reference: \''+this.getReferenceTable(column)+'\'');
|
|
200
205
|
return;
|
|
@@ -247,8 +252,7 @@ class EntitiesGenerator
|
|
|
247
252
|
return [];
|
|
248
253
|
}
|
|
249
254
|
let valuesString = match[1];
|
|
250
|
-
|
|
251
|
-
return values;
|
|
255
|
+
return valuesString.split('\',\'');
|
|
252
256
|
}
|
|
253
257
|
|
|
254
258
|
addRequiredAttribute(props, column)
|
|
@@ -258,14 +262,6 @@ class EntitiesGenerator
|
|
|
258
262
|
}
|
|
259
263
|
}
|
|
260
264
|
|
|
261
|
-
isForeignKey(column)
|
|
262
|
-
{
|
|
263
|
-
if(column.referencedTable){
|
|
264
|
-
return true;
|
|
265
|
-
}
|
|
266
|
-
return false;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
265
|
getReferenceTable(column)
|
|
270
266
|
{
|
|
271
267
|
if(column.referencedTable){
|
|
@@ -562,14 +558,24 @@ class EntitiesGenerator
|
|
|
562
558
|
try {
|
|
563
559
|
await this.server.connect();
|
|
564
560
|
} catch (error) {
|
|
565
|
-
|
|
561
|
+
Logger.critical('Failed to connect to database: '+error.message);
|
|
562
|
+
return false;
|
|
566
563
|
}
|
|
567
564
|
let tables = await this.server.fetchEntitiesFromDatabase();
|
|
568
565
|
if(!tables){
|
|
569
|
-
|
|
566
|
+
Logger.critical('EntitiesGenerator tables fetch failed.');
|
|
567
|
+
return false;
|
|
570
568
|
}
|
|
571
569
|
this.ensureFoldersExist();
|
|
572
|
-
let driverKey = sc.get(
|
|
570
|
+
let driverKey = sc.get(
|
|
571
|
+
this.connectionData,
|
|
572
|
+
'driver',
|
|
573
|
+
(this.server ? sc.get(this.driversClassMap, this.server.constructor.name, false) : false)
|
|
574
|
+
);
|
|
575
|
+
if(!driverKey){
|
|
576
|
+
Logger.critical('Failed to fetch driver key.');
|
|
577
|
+
return false;
|
|
578
|
+
}
|
|
573
579
|
for(let tableName in tables){
|
|
574
580
|
let tableData = tables[tableName];
|
|
575
581
|
await this.generateEntityFile(tableName, tableData);
|
|
@@ -583,6 +589,9 @@ class EntitiesGenerator
|
|
|
583
589
|
|
|
584
590
|
createServer()
|
|
585
591
|
{
|
|
592
|
+
if(this.server){
|
|
593
|
+
return this.server;
|
|
594
|
+
}
|
|
586
595
|
let driverKey = sc.get(this.connectionData, 'driver', 'objection-js');
|
|
587
596
|
let driverClassMapped = this.driverMap[driverKey];
|
|
588
597
|
if(!driverClassMapped){
|
|
@@ -598,6 +607,7 @@ class EntitiesGenerator
|
|
|
598
607
|
port: sc.get(this.connectionData, 'port', 3306)
|
|
599
608
|
}
|
|
600
609
|
});
|
|
610
|
+
return this.server;
|
|
601
611
|
}
|
|
602
612
|
|
|
603
613
|
}
|
|
@@ -102,7 +102,7 @@ class MikroOrmDataServer extends BaseDataServer
|
|
|
102
102
|
async fetchEntitiesFromDatabase()
|
|
103
103
|
{
|
|
104
104
|
if(!this.initialized){
|
|
105
|
-
Logger.
|
|
105
|
+
Logger.critical('Connection was not initialized, please use the connect method first.');
|
|
106
106
|
return false;
|
|
107
107
|
}
|
|
108
108
|
try {
|
|
@@ -120,10 +120,11 @@ class MikroOrmDataServer extends BaseDataServer
|
|
|
120
120
|
}
|
|
121
121
|
return tables;
|
|
122
122
|
}
|
|
123
|
-
|
|
123
|
+
Logger.critical('Unsupported client type: '+this.client);
|
|
124
124
|
} catch(error) {
|
|
125
|
-
|
|
125
|
+
Logger.critical('MikroORM tables fetch failed. ' + error.message);
|
|
126
126
|
}
|
|
127
|
+
return false;
|
|
127
128
|
}
|
|
128
129
|
|
|
129
130
|
}
|
|
@@ -177,13 +177,14 @@ class PrismaDataServer extends BaseDataServer
|
|
|
177
177
|
async fetchEntitiesFromDatabase()
|
|
178
178
|
{
|
|
179
179
|
if(!this.initialized){
|
|
180
|
-
Logger.
|
|
180
|
+
Logger.critical('Connection was not initialized, please use the connect method first.');
|
|
181
181
|
return false;
|
|
182
182
|
}
|
|
183
183
|
try {
|
|
184
184
|
return await MySQLTablesProvider.fetchTables(this);
|
|
185
185
|
} catch(error) {
|
|
186
|
-
|
|
186
|
+
Logger.critical('Prisma Data Server tables fetch failed. '+error.message);
|
|
187
|
+
return false;
|
|
187
188
|
}
|
|
188
189
|
}
|
|
189
190
|
|
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.37.0",
|
|
5
5
|
"description": "Reldens - Storage",
|
|
6
6
|
"author": "Damian A. Pastorini",
|
|
7
7
|
"license": "MIT",
|
|
@@ -25,6 +25,8 @@
|
|
|
25
25
|
"mikro",
|
|
26
26
|
"mikroorm",
|
|
27
27
|
"mikro-orm",
|
|
28
|
+
"prisma",
|
|
29
|
+
"prisma-orm",
|
|
28
30
|
"driver",
|
|
29
31
|
"orm",
|
|
30
32
|
"database",
|