export async function updatePom()

in src/Utils/xml/index.ts [9:34]


export async function updatePom(uri: vscode.Uri, deps: IArtifact[], boms: IBom[]) {
    const edit = new vscode.WorkspaceEdit();
    const projectNode: Element = await getActiveProjectNode();
    const dependenciesNode: Element | undefined = projectNode.children && projectNode.children.find(node => isTag(node) && node.tagName === XmlTagName.Dependencies) as Element;
    if (dependenciesNode !== undefined) {
        await updateWorkspaceEdit(edit, uri, dependenciesNode, new DependencyNodes(deps));
    } else {
        await updateWorkspaceEdit(edit, uri, projectNode, new DependencyNodes(deps, {initParent: true}));
    }

    if (boms && boms.length > 0) {
        const depMgmtNode: Element | undefined = projectNode.children && projectNode.children.find(node => isTag(node) && node.tagName === XmlTagName.DependencyManagement) as Element;
        if (depMgmtNode !== undefined) {
            const depsNodes: Element | undefined = depMgmtNode.children && depMgmtNode.children.find(node => isTag(node) && node.tagName === XmlTagName.Dependencies) as Element;
            if (depsNodes !== undefined) {
                await updateWorkspaceEdit(edit, uri, depsNodes, new BOMNodes(boms));
            } else {
                await updateWorkspaceEdit(edit, uri, depMgmtNode, new BOMNodes(boms, {parents: ["dependencies"]}));
            }
        } else {
            await updateWorkspaceEdit(edit, uri, projectNode, new BOMNodes(boms, {parents: ["dependencies", "dependencyManagement"]}));
        }
    }

    vscode.workspace.applyEdit(edit);
}