I have to expose the argument passed to "getOrNewThing" (config), so when I fold the task I can use it again at "AddThenGetThing".
here is where it started:
export const getOrNewThing= ctx => cfg => pipe(
GetThingByName(ctx),
T.fold(()=>AddThenGetThing(ctx)(cfg),T.of),
)(cfg);
got then improved to:
export const getOrNewThing= ctx => cfg =>
GetThingByName(ctx)(cfg)
.fold(()=>AddThenGetThing(ctx)(cfg),T.of);
signatures:
//* GetThingByName:: (Ctx -> Object) => Task(Promise(Thing))
//* AddThenGetThing:: (Ctx -> Object) => Task(Promise(Thing))
All works but I feel I am missing something here. Can this be simplified to be more point free but still as readable?
Thanks