Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

co-use

overlookmotel538.9k1.1.0

co using your choice of promise implementation

co, use, promise, choice, bluebird

readme

co-use.js

co using your choice of promise implementation

Current status

NPM version Build Status Dependency Status Dev dependency Status Coverage Status

What's it for?

co is a brilliant module which allows you to code async code in a sync style using generators and yield.

Functions which use co return a promise.

The problem is that the promise implementation used within co is the native Javascript Promise and co doesn't make it possible to use an alternative implementation, for example bluebird.

This module adds an extra method .use() which allows the use of any promise implementation you like within co.

Usage

co.use(Promise)

Creates a new instance of co, which uses the Promise implementation provided.

var Bluebird = require('bluebird');
var co = require('co-use').use(Bluebird);

// now use `co` in the usual way
var p = co(function* () {});

console.log(p instanceof Bluebird); // true

Other methods

All other methods are the same as normal co.

Building co-use

I requested that this functionality be included in co (PR) but so far it has not.

So this module is made by loading co and wrapping the code to add the .use() method. I will endeavour to update this module when new versions of co are released. The version of co currently used is v4.6.0.

If you wish to build co-use with the most recent version of co, do the following:

  1. Fork co-use from Github
  2. Go to the directory of the fork
  3. Run the following code:
npm install
npm run build

Please feel free to raise a PR with the updated build.

Tests

Use npm test to run the tests. Use npm run cover to check coverage.

Changelog

See changelog.md

Issues

If you discover a bug, please raise an issue on Github. https://github.com/overlookmotel/co-use/issues

Contribution

Pull requests are very welcome. Please:

  • ensure all tests pass before submitting PR
  • add an entry to changelog
  • add tests for new features
  • document new functionality/API additions in README

changelog

Changelog

0.1.0

  • Initial release

1.0.0

  • Tests run in harmony mode
  • co-use tests use generators
  • npm run build command
  • Do not run jshint on built tests
  • Build loads newest co and creates tests files for co tests
  • Build creates README.md
  • Build for co v4.6.0

1.0.1

  • Update package.json engine to node >=0.12.0

1.1.0

  • Do not throw error if no native Promise