parse-package-name
Version:
Parse npm package name into name, version and path
18 lines (17 loc) • 425 B
JavaScript
// src/index.ts
var RE_SCOPED = /^(@[^\/]+\/[^@\/]+)(?:@([^\/]+))?(\/.*)?$/;
var RE_NON_SCOPED = /^([^@\/]+)(?:@([^\/]+))?(\/.*)?$/;
function parse(input) {
const m = RE_SCOPED.exec(input) || RE_NON_SCOPED.exec(input);
if (!m) {
throw new Error(`[parse-package-name] invalid package name: ${input}`);
}
return {
name: m[1] || "",
version: m[2] || "latest",
path: m[3] || ""
};
}
export {
parse
};