tower-type

    0.1.0 • Public • Published

    Tower Type

    API for defining/sanitizing custom resource attribute types.

    Installation

    node.js:

    $ npm install tower-type

    browser:

    $ component install tower/type

    Example

    Define comparators/validators for basic types:

    var type = require('tower-type');
     
    type('string')
      .validator('gte', function gte(a, b){
        return a.length >= b.length;
      })
      .validator('gt', function gt(a, b){
        return a.length > b.length;
      });

    Define a custom type with custom validators:

    var now = Date.parse('2013-05-01');
     
    type('birthdate')
      .validator('can-drive', function(val){
        return now >= val;
      });
     
    var validate = type.validator('birthdate.can-drive');
    validate(Date.parse('1950-12-21')); // true

    Sanitize values:

    type('digits')
      .use(stripWhitespace)
      .use(stripLetters);
     
    type('digits').sanitize('  1  foo b2a3r'); // 123
     
    function stripWhitespace(val) {
      return val.replace(/\s+/g, '');
    }
     
    function stripLetters(val) {
      return val.replace(/[a-z]+/g, '');
    }

    Testing

    Install testem:

    $ npm install -g testem

    Run tests:

    $ testem

    Then, open all the browsers you want to test by going to the outputted url defaulted to http://localhost:7357

    Tests will run on any open browser linked to the stated url and your current Node environment.

    Contributing

    Before you send a pull request, make sure your code meets the style guidelines at https://github.com/tower/style-guide and all tests pass.

    License

    MIT

    Keywords

    none

    Install

    npm i tower-type

    DownloadsWeekly Downloads

    4

    Version

    0.1.0

    License

    none

    Last publish

    Collaborators

    • viatropos