Skip to content
根据Schema萃取所需值
JavaScript
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib
test
.gitignore
.travis.yml
Makefile
README.md
index.js
package.json

README.md

leach Build Status Coverage Status

步骤:

  1. 选出需要的字段
  2. 检查字段的类型是否正确,如果不对,尝试转换为目标类型
  3. 检测值是否符合目标类型
  4. 检测值是否在范围中
  5. 上述条件任意一条不符合,就舍弃该字段
  6. 得到最终值

设计思路:

  1. Schema
  2. 验证方法

使用

Installation

$ npm install leach

Demo

var schema = {
  'hehe': {
    type: 'number',
    check: function (input) {
      return [1, 2, 3, 4].indexOf(input) !== -1;
    }
  }
};

leach(schema, {'hehe': '1000'});
// => {} 数据不在范围中
leach(schema, {'hehe': '3'});
// => {hehe: 3} 转换为正确的类型且数据在区间中

自定义类型

var schema = {
  'hehe': {
    type: 'string',
    check: function (input) {
      return ['hello', 'world'];
    }
  }
};

var opts = {
  converter: { // 数据转换
    'string': function (input) {
      return String(input);
    }
  },
  validator: { // 验证转换后的数据
    'string': function (input) {
      return Object.prototype.toString.call(input) == '[object String]';
    }
  }
};

leach(schema, {hehe: 'hehe'});
// => {} 数据不在范围中
leach(schema, {hehe: new String('hello')});
// => {hehe: 'hello'} 转换为正确的类型且数据在区间中

License

The MIT license

Something went wrong with that request. Please try again.