@reldens/cms 0.13.0 → 0.15.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/lib/installer.js +48 -4
- package/package.json +3 -3
package/lib/installer.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
const { FileHandler, Encryptor } = require('@reldens/server-utils');
|
|
8
|
-
const { DriversMap, EntitiesGenerator, PrismaSchemaGenerator } = require('@reldens/storage');
|
|
8
|
+
const { DriversMap, DriversClassMap, EntitiesGenerator, PrismaSchemaGenerator } = require('@reldens/storage');
|
|
9
9
|
const { EntitiesLoader } = require('./entities-loader');
|
|
10
10
|
const { Logger, sc } = require('@reldens/utils');
|
|
11
11
|
|
|
@@ -244,21 +244,65 @@ class Installer
|
|
|
244
244
|
|
|
245
245
|
async generateEntities(server, isOverride = false)
|
|
246
246
|
{
|
|
247
|
+
let driverType = sc.get(DriversClassMap, server.constructor.name, '');
|
|
248
|
+
Logger.debug('Driver type detected: '+driverType+', Server constructor: '+server.constructor.name);
|
|
249
|
+
if('prisma' === driverType){
|
|
250
|
+
let dbConfig = this.extractDbConfigFromServer(server);
|
|
251
|
+
Logger.debug('Extracted DB config:', dbConfig);
|
|
252
|
+
if(dbConfig){
|
|
253
|
+
let generatedPrismaSchema = await this.generatePrismaSchema(dbConfig);
|
|
254
|
+
if(!generatedPrismaSchema){
|
|
255
|
+
Logger.error('Could not generate Prisma schema for entities generation.');
|
|
256
|
+
return false;
|
|
257
|
+
}
|
|
258
|
+
Logger.info('Generated Prisma schema for entities generation.');
|
|
259
|
+
}
|
|
260
|
+
}
|
|
247
261
|
let generator = new EntitiesGenerator({server, projectPath: this.projectRoot, isOverride});
|
|
248
262
|
let success = await generator.generate();
|
|
249
263
|
if(!success){
|
|
250
264
|
Logger.error('Entities generation failed.');
|
|
251
265
|
return false;
|
|
252
266
|
}
|
|
253
|
-
Logger.info('Entities generation success.');
|
|
254
267
|
return true;
|
|
255
268
|
}
|
|
256
269
|
|
|
257
|
-
|
|
270
|
+
extractDbConfigFromServer(server)
|
|
258
271
|
{
|
|
272
|
+
let config = sc.get(server, 'config');
|
|
273
|
+
if(!config){
|
|
274
|
+
Logger.warning('Could not extract database config from server.');
|
|
275
|
+
return false;
|
|
276
|
+
}
|
|
277
|
+
let dbConfig = {
|
|
278
|
+
client: sc.get(server, 'client', 'mysql'),
|
|
279
|
+
config: {
|
|
280
|
+
host: sc.get(config, 'host', 'localhost'),
|
|
281
|
+
port: sc.get(config, 'port', 3306),
|
|
282
|
+
database: sc.get(config, 'database', ''),
|
|
283
|
+
user: sc.get(config, 'user', ''),
|
|
284
|
+
password: sc.get(config, 'password', ''),
|
|
285
|
+
multipleStatements: true
|
|
286
|
+
},
|
|
287
|
+
debug: false
|
|
288
|
+
};
|
|
289
|
+
Logger.debug('Extracted DB config structure:', {
|
|
290
|
+
client: dbConfig.client,
|
|
291
|
+
host: dbConfig.config.host,
|
|
292
|
+
database: dbConfig.config.database
|
|
293
|
+
});
|
|
294
|
+
return dbConfig;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
async generatePrismaSchema(connectionData, useDataProxy = false)
|
|
298
|
+
{
|
|
299
|
+
if(!connectionData){
|
|
300
|
+
Logger.error('Missing "connectionData" to generate Prisma Schema.');
|
|
301
|
+
return false;
|
|
302
|
+
}
|
|
259
303
|
let generator = new PrismaSchemaGenerator({
|
|
260
304
|
...connectionData,
|
|
261
|
-
dataProxy:
|
|
305
|
+
dataProxy: useDataProxy,
|
|
262
306
|
prismaSchemaPath: this.projectRoot+'/prisma'
|
|
263
307
|
});
|
|
264
308
|
let success = await generator.generate();
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reldens/cms",
|
|
3
3
|
"scope": "@reldens",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.15.0",
|
|
5
5
|
"description": "Reldens - CMS",
|
|
6
6
|
"author": "Damian A. Pastorini",
|
|
7
7
|
"license": "MIT",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@reldens/server-utils": "^0.18.0",
|
|
37
|
-
"@reldens/storage": "^0.
|
|
38
|
-
"@reldens/utils": "^0.
|
|
37
|
+
"@reldens/storage": "^0.51.0",
|
|
38
|
+
"@reldens/utils": "^0.50.0",
|
|
39
39
|
"dotenv": "^16.5.0",
|
|
40
40
|
"mustache": "^4.2.0"
|
|
41
41
|
}
|