Skip to content
This repository has been archived by the owner on Nov 3, 2022. It is now read-only.

nuxy/DataType-FU

Repository files navigation

DataType-FU Build Status

One of the most annoying things I find about the JavaScript language is the lack of support for strict typing when declaring function variable arguments. Because of this I’m forced to litter my code with conditions that contain typeof and instanceof to type check each argument.

This is my attempt to resolve this madness.

Installation

This package can be easily installed using:

Bower

$ bower install datatype-fu

NPM

$ npm install datatype-fu

Use Example

var fu = require('datatype-fu').fu;   // NodeJS usage

// standard types
var doSomething = fu(
  ['Array', 'Boolean', 'Function', 'Number', 'Object', 'String', 'undefined'],
  function(arr, bool, func, num, obj, str, und) {

    // do something with the values
  }
);

doSomething(
  ['bucket1', 'bucket2', 'bucket3'],
  true,
  function() {},
  1234567890,
  { key: 'value' },
  'Hello World',
  undefined
);

// Wildcard and conditional types
var doSomething = fu(
  ['*', 'Array|Boolean|undefined'],
  function(any, cond) {

    // do something with the values
  }
);

Performance

General test cases have been created on jsPerf to measure fu'd operations across supported web browsers.

Maintainer

For feedback, bug reports, or other comments, feel free to contact me at: devel at mbrooks dot info

License and Warranty

This package is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.

DataType-FU is provided under the terms of the MIT license

Author

Marc S. Brooks