coolest

A faster node coroutine

Usage no npm install needed!

<script type="module">
  import coolest from 'https://cdn.skypack.dev/coolest';
</script>

README

coolest

Convert a generator (support yield a thenable object) to a function that return a promise object.

Demo

const assert = require('assert');
const coolest = require('../coolest');

const test = coolest(function*(arg) {
  assert.equal(yield arg, 123);
  assert.equal(yield Promise.resolve(123), 123);
  try {
    yield Promise.reject(123);
  } catch (error) {
    assert.equal(error, 123);
  }
  return 123;
});

test(123).then(result => {
  assert.equal(result, 123);
});