weak-type-wizard

1.4.0 • Public • Published

A small schema enforcer that attempts to cast the properties of an object to the types you want 'em to be.

Travis CI

Install

npm install weak-type-wizard
var Wizard = require('weak-type-wizard')

Example

 
var cast = new Wizard({
    boolean: 'sexy',
    number: 'devil',
    date: 'Tue May 05 2015 20:51:30 GMT-0500 (CDT)',
    string: ['one', 'two', 'cat']
})
 
cast({
    sexy: "true",
    devil: "667",
    one: 1,
    two: "200"
}) // => { sexy: true, devil: 667, one: '1', two: '200' }
 

The "primitive" types of boolean, number, date, and string are supported. You can supply default values, or even add your own types, like so:

 
var wizard = new Wizard({
    date: 'dateProperty',
    exciting: 'butts',
    number: ['someNumber', 'anotherNumber'],
    default: {
        someNumber: 666,
        anotherNumber: '1337'
    },
    cast: {
        exciting: function castToExciting(input) {
            return "!" + input + "!"
        }
    }
})
 

LevelUP support

Use a wizard as a LevelUP encoding - serialize the objects to JSON, and get them back out with all of the parameters cast to whatever you like. Example:

 
var levelmem = require('level-mem')
 
var wizard = new Wizard({
    date: ['dateProperty'],
    number: 'someNumber'
})
 
var db = levelmem('test', {
    valueEncoding: wizard.getLevelUpEncoding()
})
 

License

WTFPL

Readme

Keywords

Package Sidebar

Install

npm i weak-type-wizard

Weekly Downloads

21

Version

1.4.0

License

none

Last publish

Collaborators

  • tehshrike