标签: seamless-immutable

如何使用ESlint禁止特定的命名函数

情况

在我们当前的项目中,我们遇到了一些反复出现的问题,人们使用'asMutable'来实现无缝不可变,而实际上并不是必需的.这导致'search project for string"asMutable"'成为每个pull请求的一部分.为了加快速度,我们想在我们的队列中添加一条规则警告.但我还没弄明白怎么做.

问题

对我来说似乎是最好的解决方案,虽然我对建议持开放态度,这是一条允许我指定禁止的函数名称的规则.ESlint或插件是否具有这种功能?

补充说明

我看起来有点自己编写,但我被AST和创建第一条规则的启动困难所吓倒.如果我找不到更好的答案,我可能会冒险尝试,是的,我们在PR中得到足够的保证.这似乎比我更聪明的人已经解决了,所以我宁愿跟随他们的脚步然后建立我自己的脚步.

javascript eslint seamless-immutable

8
推荐指数
3
解决办法
292
查看次数

将对象数组映射到按对象键js分组的映射中不可变

我想映射一个对象数组以输出按特定对象键分组的不可变映射。

array looks like
[
 {id:1, time:19072016},
 {id:2, time:19072016},
 {id:3, time:19072015},
]
output im seeking is
[
 byId: {
  1:{id:1, time:19072016},
  2:{id:2, time:19072016},
  3:{id:3, time:19072015},
 },
 byTime: {
  19072016:[1,2],
  19072015:[3],
 }
]
Run Code Online (Sandbox Code Playgroud)

使用immutablejs或Seamless-immutable最有效的方法是什么?

目前我正在使用reduce作为:

array.reduce( (final,row) =>final.setIn(['byId',row.id],row) ,
              Immutable.Map({byId:{},byTime:{}});
Run Code Online (Sandbox Code Playgroud)

这个输出byIds是我想要的,但是问题byTime是我需要合并而不是覆盖。

我尝试了无缝不可变:

Seamless(arr).toObject(i=>[i.id,i]) //this will return byId as i want it
Seamless(arr).toObject(i=>[i.time,[i.id]]) //this will not merge [1,2] :(
Run Code Online (Sandbox Code Playgroud)

javascript reduce object immutable.js seamless-immutable

5
推荐指数
1
解决办法
291
查看次数