UNPKG

morpheus4j

Version:

Morpheus is a migration tool for Neo4j. It aims to be a simple and intuitive way to migrate your database.

43 lines 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConfigService = void 0; const fs_extra_1 = require("fs-extra"); const zod_1 = require("zod"); const types_1 = require("../types"); class ConfigService { static load(flags, configFilePath) { try { const fileConfig = this.readConfigFile(configFilePath); const mergedConfig = this.mergeConfigs(fileConfig, flags); return types_1.Neo4jConfigSchema.parse(mergedConfig); } catch (error) { if (error instanceof zod_1.z.ZodError) { const issues = error.issues.map((issue) => `${issue.path.join('.')}: ${issue.message}`).join('\n'); throw new Error(`Configuration validation failed:\n${issues}`); } throw error; } } static loadWithOutValidation(flags, configFilePath) { const fileConfig = this.readConfigFile(configFilePath); const mergedConfig = this.mergeConfigs(fileConfig, flags); return mergedConfig; } static mergeConfigs(fileConfig, envVars) { return { ...fileConfig, ...Object.fromEntries(Object.entries(envVars).filter(([_, value]) => value !== undefined)), }; } static readConfigFile(configFilePath) { try { return (0, fs_extra_1.pathExistsSync)(configFilePath) ? (0, fs_extra_1.readJsonSync)(configFilePath) : {}; } catch (error) { throw new Error(`Failed to read config file: ${error instanceof Error ? error.message : String(error)}`); } } } exports.ConfigService = ConfigService; //# sourceMappingURL=config.service.js.map