0.0.2 • Published 8 years ago

data-transform v0.0.2

Weekly downloads
10
License
MIT
Repository
github
Last release
8 years ago

data-transform

NPM version Build Status Coverage Status

将源数据转换成一个全新的规范的数据

背景

后端 API 接口吐出的数据,可能由于格式或者命名和前端的代码风格不统一,会使得前端的代码不够优雅, 也常常会引起 lint 不通过等等...

通过 data-transform 可以将后端 API 吐出的数据转换成前端想要的格式。

使用

  • node

    import dataTransform from 'data-transform';
    
    let result = dataTransform(data, config);
  • browser

    • 对于 IE < 9 的浏览器需要使用 es5-shim
    • 先在 html 中引用脚本

      <script src="./node_module/data-transform/dist/data-transform.bundle.min.js"></script>
    • 上面脚本会在全局中导入一个 DT 变量,在 JS 文件中就可以这样用

      var result = DT.dataTransform(data, config);

API

interface TransformConfig {
    map?: Function;
    naming?: string | Array<string>; // 支持 kebab, camel, capCamel, upper, snake
    drop?: string | Array<string>;
    alias?: Object;
    computed?: Object;
}

dataTransform(data: any, config: TransformConfig);

Example

  • naming:keys 命名转换

    dataTransform({foo_bar: 1, 'bar bar': 2}, {naming: 'camel'});
    
    // => {fooBar: 1, barBar: 2}
  • drop:删除不用的 keys

    dataTransform(
      {list: [{a: 'a1', b: 'b1'}, {a: 'a2', b: 'b2'}]},
      {drop: ['list.[].b']}
    );
    
    // => {list: [{a: 'a1'}, {a: 'a2'}]}
  • alias: 别名替换

    dataTransform(
      [{b: 'a1'}, {b: 'a2'}],
      {alias: {
        '[].b': 'a'
      }}
    );
    
    // => [{a: 'a1'}, {a: 'a2'}]
  • computed: 生成新的 keys

    dataTransform({a: 'a'}, {
      computed: {
        b: function () { return this.a + 'b'; }
      }
    });
    
    // => {a: 'a', b: 'ab'}
  • map: 类似于数组的 map 方法,即输入一个对象,返回另一个对象

    dataTransform({a: 'b'}, {map: function (target) {
      target.a = 'a';
      return target;
    });
    
    // => {a: 'a'}