util.promisify but for Tasks ! 🙌
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
.babelrc
.gitignore
.npmignore
LICENSE
README.md
index.js
package.json
rollup.config.dev.js
rollup.config.prod.js
yarn.lock

README.md

Taskify

util.promisify but for Tasks ! 🙌

Install

yarn add util.taskify

or

npm install util.taskify

⚠️ You must give taskify the Task data type of your choice.

I suggest you to try Fluture or Taskorama.

Usage

For a single function :

const taskify = require('util.taskify')
const fs = require('fs')
const Task = require('taskorama')
// or
// const Task = require('fluture')

const readFileTask = taskify(Task, fs.readFile)

readFileTask('package.json', 'utf8')
  .fork(
    err => console.error('Failed.', err),
    str => console.log('Done!', str)
  )

Or for a whole module :

const taskify = require('util.taskify')
const fs = require('fs')
const Task = require('taskorama')
// or
// const Task = require('fluture')

const Filesystem = taskify(Task, fs)

Filesystem.readFile('package.json', 'utf8')
  .fork(
    err => console.error('Failed.', err),
    str => console.log('Done!', str)
  )

BONUS

If you like currying (using ramda curry() function) :

const { curry } = require('ramda')
const util_taskify = require('util.taskify')
const fs = require('fs')
const Task = require('taskorama')
// or
// const Task = require('fluture')
//

const taskify = curry(util_taskify)
const taskifier = taskify(Task)

const readFileTask = taskifier(fs.readFile)

readFileTask('package.json')
  .fork(
    err => console.error('Failed.', err),
    str => console.log('Done!', str)
  )