reldens
Version:
Reldens - MMORPG Platform
44 lines (38 loc) • 1.72 kB
JavaScript
/**
*
* Reldens - DataServerInitializer
*
*/
const { DataServerConfig } = require('./data-server-config');
const { EntitiesLoader } = require('./entities-loader');
const { DriversMap } = require('./storage/drivers-map');
const { Logger, sc } = require('@reldens/utils');
class DataServerInitializer
{
static initializeEntitiesAndDriver(props)
{
let {config, dataServerDriver, serverManager} = props;
let dataServerConfig = DataServerConfig.prepareDbConfig(config);
let loadEntitiesOptions = {
serverManager: serverManager,
reldensModuleLibPath: serverManager.themeManager.reldensModuleLibPath,
bucketFullPath: serverManager.themeManager.projectThemePath,
distPath: serverManager.themeManager.distPath,
isHotPlugEnabled: serverManager.isHotPlugEnabled,
withConfig: true,
withTranslations: true,
storageDriver: dataServerConfig.storageDriver
};
let loadedEntities = EntitiesLoader.loadEntities(loadEntitiesOptions);
dataServerConfig.loadedEntities = loadedEntities.entities;
dataServerConfig.translations = sc.get(loadedEntities, 'translations', {});
dataServerConfig.rawEntities = Object.assign(
(loadedEntities?.entitiesRaw || {}),
sc.get(config, 'rawEntities', {})
);
Logger.info('Storage Driver:', dataServerConfig.storageDriver);
let dataServer = dataServerDriver || new DriversMap[dataServerConfig.storageDriver](dataServerConfig);
return {dataServerConfig, dataServer};
}
}
module.exports.DataServerInitializer = DataServerInitializer;