fantasy-do

Do notation for javascript.

Usage no npm install needed!

<script type="module">
  import fantasyDo from 'https://cdn.skypack.dev/fantasy-do';
</script>

README

fantasy-do

NPM version Build status Dependencies

What is it? Take your pick:

  • do notation for fantasy-land javascript.
  • co for monads.
  • async/await for chainables.

It allows you take take this code:

const div = (b === 0) ? Nothing() : Just(a / b)
const result = div(8, 2)
  .map(a => a + 2)
  .chain(b => div(b, 2))
}

And write it like this:

const mdo = require('fantasy-do')
const result = mdo(function * () {
  const a = yield div(8, 2)
  b = a + 2
  return div(b, 2)
})