UNPKG

@veecode-platform/safira-cli

Version:

Generate a microservice project from your spec.

24 lines (23 loc) 1.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MavenUpdate = void 0; const fast_xml_parser_1 = require("fast-xml-parser"); const file_system_utils_1 = require("../../../utils/file-system-utils"); const update_dependency_1 = require("./update-dependency"); class MavenUpdate extends update_dependency_1.UpdateDenpendencies { update(projectFolder, imports) { const pomXml = file_system_utils_1.FileSystemUtils.buildPath(projectFolder, "pom.xml"); if (!file_system_utils_1.FileSystemUtils.exists(pomXml)) return; const content = super.loadFile(pomXml); const json = new fast_xml_parser_1.XMLParser().parse(content); for (const element of this.parseDependencies(imports)) json.project.dependencies.dependency.push(element); const newContent = new fast_xml_parser_1.XMLBuilder({ format: true, cdataPropName: "cdatatag" }).build(json); file_system_utils_1.FileSystemUtils.writeFile(pomXml, `<?xml version="1.0" encoding="UTF-8"?>\n${newContent}`); } parseDependencies(imports) { return imports.map(element => Object.assign({ groupId: element.groupId, artifactId: element.artifactId }, element.type.maven ? { scope: element.type.maven } : null, element.version ? { version: element.version } : null)); } } exports.MavenUpdate = MavenUpdate;