Nouveau Papier Mâché

    typecheck-extended

    1.0.4 • Public • Published

    typecheck-extended · GitHub license npm version Coverage Status CI Status PRs Welcome

    JavaScript type checker with extended types. Validates all built-in types. Additionally adds support for enums and makes an easier distinction between array and object.

    Install

    npm i typecheck-extended

    Available Types

    Standard Types

    The following native JS types are supported as-is:

    • boolean
    • function
    • number
    • string
    • symbol
    • undefined

    Extended Types

    • array: Arrays only. (ex. ['a', 'b', 'c'])
    • enum: Adds enum support.
    • object: Non-array objects only. (ex. { a: 1, b: 2, c: 3 })

    In javascript, arrays have a typeof "object". typecheck-extended excludes arrays from an "object" type check.

    /*
      Standard Javascript
    */
    >> typeof ['River Tam', 'Mal Reynolds']; // Returns "object"
    >> typeof { name: 'Kaylee Frye' }; // Returns "object"
    >> Array.isArray(['River Tam', 'Mal Reynolds']); // Returns true
    >> Array.isArray({ name: 'Kaylee Frye' }); // Returns false
     
    /*
      typecheck-extended
    */
    >> TypeCheck(['River Tam', 'Mal Reynolds'], 'array'); // Returns true
    >> TypeCheck({ name: 'Kaylee Frye' }, 'array'); // Throws error
    >> TypeCheck({ name: 'Kaylee Frye' }, 'object'); // Returns true
    >> TypeCheck(['River Tam', 'Mal Reynolds'], 'object'); // Throws error
     

    Example Usage

    Parameters

    • parameter: Any - The parameter to have its type validated
    • type: String - Expected type of parameter. Limited to one of the Available Types listed above.
    • required: Bool - Defaults to true. (Optional).
    • format: Array - List of valid enums. (Optional).

    Ex. Required String:

    name must be received AND be string.

    function SayHi(name) {
      TypeCheck(name, 'string');
      return (`Hi ${name}!`);
    }

    Ex. Optional String:

    name can be undefined or null If name is received, it must be string.

    function SayHi2(name) {
      TypeCheck(name, 'string', false);
      if (name) {
          return (`Hi ${name}!`);
      }
      return ("Hi, I'm typecheck-extended. What's your name?");
    }

    Ex. Required Enum:

    uuid must be received AND be string.
    color must be received AND be red, green, or blue.

    const availableColors = ['red', 'green', 'blue'];
    function SaveColorValue(uuid, color) {
      TypeCheck(uuid, 'string');
      TypeCheck(color, 'enum', true, availableColors);
      SaveToDb(uuid, color);
    }

    typecheck-extended uses Semantic Versioning. | Copyright © 2018 Chris Kilpatrick. Released under MIT License.

    Install

    npm i typecheck-extended

    DownloadsWeekly Downloads

    71

    Version

    1.0.4

    License

    MIT

    Unpacked Size

    187 kB

    Total Files

    8

    Last publish

    Collaborators

    • kilpatrick