@reldens/storage 0.36.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: 'mysql2',
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(this.isForeignKey(column)){
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
- let values = valuesString.split('\',\'');
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
- ErrorManager.error('Failed to connect to database: '+error.message);
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
- ErrorManager.error('Failed to fetch tables from database.');
566
+ Logger.critical('EntitiesGenerator tables fetch failed.');
567
+ return false;
570
568
  }
571
569
  this.ensureFoldersExist();
572
- let driverKey = sc.get(this.connectionData, 'driver', 'objection-js');
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.error('Connection was not initialized, please use the connect method first.');
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
- ErrorManager.error('Unsupported client type: '+this.client);
123
+ Logger.critical('Unsupported client type: '+this.client);
124
124
  } catch(error) {
125
- ErrorManager.error('Failed to fetch tables from database: ' + error.message);
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.error('Connection was not initialized, please use the connect method first.');
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
- ErrorManager.error('Failed to fetch tables from database: '+error.message);
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.36.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",