@veecode-platform/safira-cli
Version:
Generate a microservice project from your spec.
24 lines (23 loc) • 1.38 kB
JavaScript
;
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;