Skip to content

Commit d499622

Browse files
committed
Have getMapSpec return Maybe
1 parent 2135e04 commit d499622

1 file changed

Lines changed: 12 additions & 17 deletions

File tree

index.js

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ const DEFAULTS = {
1313

1414
/* --- Functional Utilities --- */
1515
const map = fn => x => (x.map ? x.map(fn) : fn(x)) // FIXME remove check
16-
const chain = fn => m => m.chain(fn)
1716
const join = m => m.join()
17+
// const chain = fn => m => m.chain(fn)
1818
const compose = (...fns) => (res, ...args) =>
1919
fns.reduceRight((accum, next) => next(accum, ...args), res)
2020

@@ -28,29 +28,24 @@ const createRootObj = compose(
2828
Number
2929
)
3030

31-
const normalizeField = delimiter =>
32-
compose(
33-
join,
34-
chain(m =>
35-
Maybe.of(m)
36-
.map(m => m.indexOf(delimiter) > -1)
37-
.map(b => (b ? m : m + delimiter + m))
38-
.map(split(delimiter))
39-
),
40-
Maybe.of
41-
)
31+
const normalizeField = delimiter => m =>
32+
Maybe.of(m)
33+
.map(m => m.indexOf(delimiter) > -1)
34+
.map(b => (b ? m : m + delimiter + m))
35+
.map(split(delimiter))
4236

4337
const getMapSpec = delimiter => mapping =>
4438
Maybe.of(mapping)
4539
.map(Array.isArray)
4640
.map(b => (b ? Either.of(mapping) : left(mapping)))
4741
.map(
4842
either(
49-
normalizeField(delimiter),
50-
reduce((spec, field) => {
51-
const [source, target] = normalizeField(delimiter)(field)
52-
return [[...spec[0], source], target]
53-
})([[], null])
43+
compose(join, normalizeField(delimiter)),
44+
reduce((spec, field) =>
45+
normalizeField(delimiter)(field)
46+
.map(([source, target]) => [[...spec[0], source], target])
47+
.join()
48+
)([[], null])
5449
)
5550
)
5651

0 commit comments

Comments
 (0)