teambition / teambition-sdk

Isomorphic JavaScript SDK for Teambition APIs
433 stars 62 forks source link

refactor(sockets/MapToTable): 弱化从复数自动匹配到单数表名逻辑的决定性 #707

Closed chuan6 closed 4 years ago

chuan6 commented 4 years ago

从 websocket 事件上可能单复数形式共存的对象名称到唯一确定的表名(一般 是单数形式)的转换,是通过一个简单的 cutSTrailing 函数做到的,它无差别 地把结尾的 s 给拿掉,没有任何智能的逻辑,也对当前词汇无感。

将这个转换得到的结果与表名匹配,原先是 alias 匹配之后唯一的匹配逻辑。 导致一些以 s 结尾的对象名(如:taskflowstatus)被误砍 s,结果 (如:taskflowstatu)与表名不能匹配,导致需要特别定义 alias 条目来绕 开,让后期新增对象名的过程多了一个可能的坑。

这里调整为,在 alias 匹配之后,优先做直接匹配,只有当直接匹配失败,才 尝试砍掉 s 匹配单数。让这个不智能的单复数转换逻辑成为直接匹配的补充, 而不是替换。

coveralls commented 4 years ago

Coverage Status

Coverage decreased (-0.002%) to 95.911% when pulling 8b8923a87ad1cfa961b16612a82868555fed9010 on refactor/cut-s-trailing into f99e3f1d87e5d6d17eb67e50057a342e5f20ddd4 on release.