Skip to content

Commit 6aeed15

Browse files
committed
Refactor assign
1 parent a12afe6 commit 6aeed15

2 files changed

Lines changed: 13 additions & 15 deletions

File tree

index.js

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -64,20 +64,17 @@ const getKey = reduce((accum, k) => (accum ? accum[k] : undefined))
6464
const get = (key, delimiter = DEFAULTS.objDelimiter) => obj =>
6565
compose(maybe(obj)(getKey(obj)), map(split(delimiter)), Maybe.of)(key)
6666

67-
const assign = (key, delimiter = DEFAULTS.objDelimiter) => {
68-
const keys = key && key.split(delimiter)
69-
return (obj, value) => {
70-
if (keys == null) return obj
71-
72-
keys.reduce((accum, key, i, array) => {
73-
if (i === array.length - 1) accum[key] = value
74-
else if (!accum[key]) accum[key] = createRootObj(array[i + 1])
75-
return accum[key]
76-
}, obj)
77-
78-
return obj
79-
}
80-
}
67+
const setKey = value =>
68+
reduce((accum, key, i, array) => {
69+
if (i === array.length - 1) accum[key] = value
70+
else if (!accum[key]) accum[key] = createRootObj(array[i + 1])
71+
return accum[key]
72+
})
73+
74+
const assign = (key, delimiter = DEFAULTS.objDelimiter) => (obj, value) =>
75+
maybe(obj)(compose(() => obj, setKey(value)(obj), split(delimiter)))(
76+
Maybe.of(key)
77+
)
8178

8279
class Mapper {
8380
constructor(options) {

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
"precommit": "lint-staged",
88
"lint": "xo",
99
"test": "jest",
10-
"coverage": "npm test -- --silent --coverage"
10+
"coverage": "npm test -- --silent --coverage",
11+
"prettier": "prettier --single-quote --no-semi --write *.js"
1112
},
1213
"keywords": [
1314
"transform",

0 commit comments

Comments
 (0)