UNPKG

@what-a-faka/obj-mutation

Version:

The Object Mutation

129 lines (111 loc) 2.35 kB
# @what-a-faka/obj-mutation 对象字段转化器,用于剔除字段、转化字段、改变键名、合并键值。 ## 初始化 首先,安装依赖: ``` $ npm install @what-a-faka/obj-mutation ``` 然后在项目中导入: ``` import ObjMutation from '@what-a-faka/obj-mutation' ``` 接着通过传入字段信息(SCHEMA)与初始化选项(OPTIONS)即可初始化一个对象: ``` const mutator = new ObjMutation(SCHEMA, OPTIONS) ``` 此时即可通过`parse`方法获取转化结果: ``` mutator.parse(DATA) ``` ## 字段信息 schema主要功能为定义对象的字段转化规则,支持`mutate``format``create`,首先我们初始化一个带转化对象: ``` const data = { test1: 1, test2: 2, test3: '' } ``` ### mutate ``` const mutator = new ObjMutation({ test1: { mutate: { test1_mutate: value => `${value}_mutate`, } } }) const result = mutator.parse(data) ``` 最终得到的结果为: ``` { test1_mutate: "1_mutate", test2: 2, } ``` ### create ``` const mutator = new ObjMutation({ test4: { create(araw) { return raw.test1 + raw.test2 } } }) const result = mutator.parse(data) ``` 最终得到的结果为: ``` { test1: 1, test2: 2, test4: 3 } ``` ### format ``` const mutator = new ObjMutation({ test2: { format: value => 222 }, }) const result = mutator.parse(data) ``` 最终得到的结果为: ``` { test1: 1, test2: 222, } ``` ## 选项 - 参数: - {string} schema,表配置项,以下会详细说明 - {string} options.clean,过滤掉Falsy的key,默认为true - {string[]} options.omit,剔除对象的字段 - {string} options.cleanValue, 过滤掉与cleanValue全等的key,默认会过滤掉所有Falsy 由上可知,默认会过滤掉一切Falsy值: ``` const data = { test1: '', test2: 0, test3: false, } const mutator = new ObjMutation({}) const result = mutator.parse(data) console.log(result) // {} ``` 若是要过滤掉指定的值,可以传递cleanValue任意值: ``` const data = { test1: '', test2: 0, test3: false, } const mutator = new ObjMutation({}, { cleanValue: '' }) const result = mutator.parse(data) console.log(result) // {test2: 0, test3: false} ``` 如果不使用过滤功能,只需要将options.clean设为false即可。 omit的用法请参考lodash/omit。