Nine Pounds of Mayonnaise

    semver-compare-multi
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/semver-compare-multi package

    1.0.3 • Public • Published

    semver-compare-multi

    Compare two semver version strings, returning -1, 0, or 1

    They don't need to be strict x.y.z formated strings, the size is automaticaly checked. As the size is dynamic, comparing cmp("1.0.0", "1.0.0.1")returns -1, that is, the longer version is considered greater.

    The return value of cmp can be fed straight into [].sort.

    You can pass newComparer, which returns an cmp(a,b), an array of characters to match as split points, mind to escape regex special symbols with \\, as of: newComparer(["\\.", "-"])

    build status

    example

    import { cmp } from "semver-compare-multi";
    var versions = [
        '1.2.3',
        '4.11.6',
        '4.2.0',
        '1.5.19',
        '1.5.5',
        '4.1.3',
        '2.3.1',
        '10.5.5',
        '11.3.0'
    ];
    console.log(versions.sort(cmp).join('\n'));

    Or

    import { newComparer } from "semver-compare-multi";
    var versions = [
        '1.2-3',
        '4.11_6',
        '4.2_0',
        '1.5-19',
        '1.5-5',
        '4.1-3',
        '2.3_1',
        '10.5_5',
        '11.3_0'
    ];
    console.log(versions.sort(newComparer(["\\.", "-", "_"])).join('\n'));

    prints:

    1.2-3
    1.5-5
    1.5-19
    2.3_1
    4.1-3
    4.2_0
    4.11_6
    10.5_5
    11.3_0
    

    whereas the default lexicographic sort (versions.sort()) would be:

    1.2-3
    1.5-19
    1.5-5
    10.5_5
    11.3_0
    2.3_1
    4.1-3
    4.11_6
    4.2_0
    

    methods

    import { cmp, newComparer } from "semver-compare-multi";
    

    cmp(a, b)

    If the semver string a is greater than b, return 1. If the semver string b is greater than a, return -1. If a equals b, return 0;

    It is the same as newComparer(), which returns an cmp(a, b) with "." and "-" default separators.

    install

    With npm do:

    npm install semver-compare-multi
    

    license

    MIT

    Install

    npm i semver-compare-multi

    DownloadsWeekly Downloads

    61

    Version

    1.0.3

    License

    MIT

    Last publish

    Collaborators

    • zenithpolar