Skip to content

monolithed/package-name-parser

Repository files navigation

@pobedit/package-name-parser

Build Status License

A package name parser and the semantic versioner for npm packages.

Installation

Install with npm or Yarn:

npm:

npm install @pobedit/package-name-parser --save

Yarn:

yarn add @pobedit/package-name

Synopsis

type Package = {
    scope?: string;
    name: string;
    version?: {
        basic: string;
        comparator?: string;
        preRelease?: string;
        buildMetadata?: string;
        original: string;
    }
};

parse(input: string): Package | never;

Basic usage

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');

Contributing

Feel free to submit a pull request if you find any bugs. Please make sure all commits are properly documented.

Tests

npm test

Publishing

npm publish --access public --verbose

License

MIT

Useful links

About

A package name parser

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published