Code Monkey home page Code Monkey logo

taskify's Introduction

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)
  )

taskify's People

Contributors

yannickdot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

taskify's Issues

Flip arguments

I think passing in the Task as the first argument opens up more opportunities.
We could partially apply the Task implementation for example or map over a list of things to taskify etc. What do you think?

const taskify = require('util.taskify')
const dataTask = require('data.task')

const task = taskify(dataTask)
const readFile = task( fs.readFile)

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.