naming, alias, compute, drop, map data from one to another.
npm install data-transform将源数据转换成一个全新的规范的数据
后端 API 接口吐出的数据,可能由于格式或者命名和前端的代码风格不统一,会使得前端的代码不够优雅,
也常常会引起 lint 不通过等等...
通过 data-transform 可以将后端 API 吐出的数据转换成前端想要的格式。
* node
``js
import dataTransform from 'data-transform';
let result = dataTransform(data, config);
`
* browser
- 对于 IE < 9 的浏览器需要使用 es5-shim
- 先在 html 中引用脚本
`html`
- 上面脚本会在全局中导入一个 DT 变量,在 JS 文件中就可以这样用
`js`
var result = DT.dataTransform(data, config);
`typescript
interface TransformConfig {
map?: Function;
naming?: string | Array
drop?: string | Array
alias?: Object;
computed?: Object;
}
dataTransform(data: any, config: TransformConfig);
`
* naming:keys 命名转换
`js
dataTransform({foo_bar: 1, 'bar bar': 2}, {naming: 'camel'});
// => {fooBar: 1, barBar: 2}
`
* drop:删除不用的 keys
`js
dataTransform(
{list: [{a: 'a1', b: 'b1'}, {a: 'a2', b: 'b2'}]},
{drop: ['list.[].b']}
);
// => {list: [{a: 'a1'}, {a: 'a2'}]}
`
* alias: 别名替换
`js
dataTransform(
[{b: 'a1'}, {b: 'a2'}],
{alias: {
'[].b': 'a'
}}
);
// => [{a: 'a1'}, {a: 'a2'}]
`
* computed: 生成新的 keys
`js
dataTransform({a: 'a'}, {
computed: {
b: function () { return this.a + 'b'; }
}
});
// => {a: 'a', b: 'ab'}
`
* map: 类似于数组的 map 方法,即输入一个对象,返回另一个对象
`js
dataTransform({a: 'b'}, {map: function (target) {
target.a = 'a';
return target;
});
// => {a: 'a'}
``