Notorious Party Muppets

    semver-dsl
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.1 • Public • Published

    Build Status

    SemVer DSL

    A simple internal DSL which allows you to invoke different functionality depending on version match. Used in codelyzer for keeping the code compatible across different versions of the Angular compiler.

    Demo

    $ npm i semver-dsl --save
    import {SemVerDSL} from 'semver-dsl';
     
    const base = () => {};
    const elseIf1 = () => {};
    const elseIf2 = () => {};
    const else = () => console.log('I will be invoked!');
     
    SemVerDSL('3.0.0')
      .gt('3.2.1', base)
      .elseIf.gt('3.0.1', elseIf1)
      .elseIf.between('3.0.1', '3.1.8', elseIf2)
      .else(else);

    In the example above will be invoked else.

    API

    • SemDSL(version: string) - factory which accepts a version and returns an object.
    • gte(version: string, callback?: Function): ISemContextualDSL - returns an object with elseIf and else properties.
    • lte(version: string, callback?: Function): ISemContextualDSL - returns an object with elseIf and else properties.
    • gt(version: string, callback?: Function): ISemContextualDSL - returns an object with elseIf and else properties.
    • lt(version: string, callback?: Function): ISemContextualDSL - returns an object with elseIf and else properties.
    • eq(version: string, callback?: Function): ISemContextualDSL - returns an object with elseIf and else properties.
    • neq(version: string, callback?: Function): ISemContextualDSL - returns an object with elseIf and else properties.
    • between(v1: string, v2: string, callback?: Function): ISemContextualDSL - returns an object with elseIf properties.
    • elseIf - returns an object of type ISemVerDSL bound to the previous predicate.
    • else - invokes given callback if all of the previous conditions have failed.
    export interface ISemVerDSL {
      gte(version: string, callback: Function): ISemContextualDSL;
      lte(version: string, callback: Function): ISemContextualDSL;
      gt(version: string, callback: Function): ISemContextualDSL;
      lt(version: string, callback: Function): ISemContextualDSL;
      eq(version: string, callback: Function): ISemContextualDSL;
      neq(version: string, callback: Function): ISemContextualDSL;
      between(v1: string, v2: string, callback: Function): ISemContextualDSL;
    }
    export interface ISemVerContextBoundDSL {
      elseIf: ISemVerDSL;
      else(callback: Function): void;
    }

    License

    MIT

    Keywords

    Install

    npm i semver-dsl

    DownloadsWeekly Downloads

    993,644

    Version

    1.0.1

    License

    MIT

    Last publish

    Collaborators

    • mgechev