snyk-mvn-plugin
Version:
Snyk CLI Maven plugin
76 lines • 2.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseDependency = parseDependency;
exports.buildDependencyString = buildDependencyString;
const UNKNOWN = 'unknown';
const unknownDependency = {
groupId: UNKNOWN,
artifactId: UNKNOWN,
type: UNKNOWN,
version: UNKNOWN,
};
function parseDependency(value) {
if (typeof value !== 'string')
return unknownDependency;
const parts = value.split(':');
switch (parts.length) {
// using classifier and scope
// "com.example:my-app:jar:jdk8:1.2.3:compile"
case 6: {
return {
groupId: getPart(parts, 0),
artifactId: getPart(parts, 1),
type: getPart(parts, 2),
classifier: getPart(parts, 3),
version: getPart(parts, 4),
scope: getPart(parts, 5),
};
}
// using scope
// "com.example:my-app:jar:1.2.3:compile"
case 5: {
return {
groupId: getPart(parts, 0),
artifactId: getPart(parts, 1),
type: getPart(parts, 2),
version: getPart(parts, 3),
scope: getPart(parts, 4),
};
}
// everything else
// "com.example:my-app:jar:1.2.3"
case 4: {
return {
groupId: getPart(parts, 0),
artifactId: getPart(parts, 1),
type: getPart(parts, 2),
version: getPart(parts, 3),
};
}
default: {
return unknownDependency;
}
}
}
function buildDependencyString(dependency) {
const parts = [
formatMavenPart(dependency.groupId),
formatMavenPart(dependency.artifactId),
formatMavenPart(dependency.type),
formatMavenPart(dependency.version),
];
if (dependency.scope) {
parts.push(formatMavenPart(dependency.scope));
}
if (dependency.classifier) {
parts.splice(3, 0, formatMavenPart(dependency.classifier));
}
return parts.join(':');
}
function getPart(parts, index) {
return parts[index] || UNKNOWN;
}
function formatMavenPart(part) {
return part == UNKNOWN ? '' : part;
}
//# sourceMappingURL=dependency.js.map