{"library":"pom-parser","title":"Node.js POM Parser","description":"pom-parser is a Node.js library designed for parsing Java/Maven `pom.xml` files, converting their hierarchical XML structure into a navigable JavaScript object. Currently at version `1.2.0`, the package provides an API to extract critical project metadata, including group IDs, artifact IDs, versions, and build configurations, crucial for environments transitioning Java applications to Node.js or integrating with existing Maven-based repository systems like Nexus. It merges XML attributes directly into parent elements and offers the flexibility to provide custom parsing options, leveraging `xml2js` internally. While no explicit release cadence is stated, updates focus on dependency maintenance and adopting modern JavaScript features like native Promises, ensuring compatibility and stability.","language":"javascript","status":"maintenance","last_verified":"Sun Apr 19","install":{"commands":["npm install pom-parser"],"cli":null},"imports":["const pomParser = require('pom-parser');","pomParser.parse(opts, callback);"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"const pomParser = require('pom-parser');\nconst path = require('path');\nconst fs = require('fs');\n\n// Create a dummy pom.xml for demonstration\nconst dummyPomContent = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd\">\n  <modelVersion>4.0.0</modelVersion>\n  <groupId>com.example</groupId>\n  <artifactId>my-app</artifactId>\n  <version>1.0.0</version>\n  <name>My App</name>\n  <properties>\n    <java.version>11</java.version>\n  </properties>\n  <build>\n    <finalName>my-app</finalName>\n  </build>\n</project>`;\n\nconst pomFilePath = path.join(__dirname, 'temp-pom.xml');\nfs.writeFileSync(pomFilePath, dummyPomContent);\n\nconst opts = {\n  filePath: pomFilePath,\n  // Other xml2js parsing options can be added here\n};\n\n// Using callback pattern (still supported)\npomParser.parse(opts, function(err, pomResponse) {\n  if (err) {\n    console.error(\"ERROR (callback): \" + err);\n    return;\n  }\n  console.log(\"--- Callback Result ---\");\n  console.log(\"XML: \" + pomResponse.pomXml.substring(0, 100) + '...');\n  console.log(\"OBJECT: \" + JSON.stringify(pomResponse.pomObject.project.name, null, 2));\n});\n\n// Using Promise pattern (since v1.2.0)\nasync function parsePomWithPromise() {\n  try {\n    const pomResponse = await pomParser.parse(opts);\n    console.log(\"\\n--- Promise Result ---\");\n    console.log(\"XML: \" + pomResponse.pomXml.substring(0, 100) + '...');\n    console.log(\"OBJECT: \" + JSON.stringify(pomResponse.pomObject.project.version, null, 2));\n  } catch (err) {\n    console.error(\"ERROR (promise): \" + err);\n  } finally {\n    // Clean up the dummy file\n    fs.unlinkSync(pomFilePath);\n  }\n}\n\nparsePomWithPromise();\n","lang":"javascript","description":"This quickstart demonstrates how to parse a `pom.xml` file, showing both the traditional callback and the modern Promise-based (async/await) approaches. It outputs parts of the parsed XML and JSON object.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}