util.promisify but for Tasks ! 🙌
yarn add util.taskify
or
npm install util.taskify
taskify the Task data type of your choice.
I suggest you to try Fluture or Taskorama.
For a single function :
consttaskify=require('util.taskify')constfs=require('fs')constTask=require('taskorama')// or// const Task = require('fluture')constreadFileTask=taskify(Task,fs.readFile)readFileTask('package.json','utf8').fork(err=>console.error('Failed.',err),str=>console.log('Done!',str))Or for a whole module :
consttaskify=require('util.taskify')constfs=require('fs')constTask=require('taskorama')// or// const Task = require('fluture')constFilesystem=taskify(Task,fs)Filesystem.readFile('package.json','utf8').fork(err=>console.error('Failed.',err),str=>console.log('Done!',str))If you like currying (using ramda curry() function) :
const{ curry }=require('ramda')constutil_taskify=require('util.taskify')constfs=require('fs')constTask=require('taskorama')// or// const Task = require('fluture')//consttaskify=curry(util_taskify)consttaskifier=taskify(Task)constreadFileTask=taskifier(fs.readFile)readFileTask('package.json').fork(err=>console.error('Failed.',err),str=>console.log('Done!',str))