A package name parser and the semantic versioner for npm packages.
Install with npm or Yarn:
npm:
npm install @pobedit/package-name-parser --save
Yarn:
yarn add @pobedit/package-name
type Package = {
scope?: string;
name: string;
version?: {
basic: string;
comparator?: string;
preRelease?: string;
buildMetadata?: string;
original: string;
}
};
parse(input: string): Package | never;
import {parse} from '@pobedit/package-name-parser';
try {
const {scope, name, version} = parse('@foo/bar@^1.0.0-alpha+0.0.1f');
console.log(scope, name, version);
/*
{
scope: 'foo',
name: 'bar',
version: {
basic: '1.0.0',
comparator: '^',
preRelease: 'alpha',
buildMetadata: '0.0.1f',
original: '^1.0.0-alpha+0.0.1f'
}
}
*/
}
catch ({message}) {
console.error(message);
}
scope
and version
are optional:
parse('foo');
parse('@foo/bar');
parse('@foo/bar@0.0.1');
parse('@foo/bar@0.0.1-alpha');
parse('@foo/bar@0.0.1+beta');
parse('@foo/bar@0.0.1-alpha+beta');
Feel free to submit a pull request if you find any bugs. Please make sure all commits are properly documented.
npm test
npm publish --access public --verbose
MIT