# co-use

> co using your choice of promise implementation

Latest version **1.1.0** (published 2015-09-19) · 0 weekly downloads

## Install

```sh
npm install co-use
pnpm add co-use
yarn add co-use
bun add co-use
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.0 |
| Published | 2015-09-19 |
| First published | 2015-09-14 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=0.12.0 |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | Overlook Motel |
| Maintainers | overlookmotel |
| Keywords | co, use, promise, choice, bluebird |

## Links

- npm: https://www.npmjs.com/package/co-use
- Repository: https://github.com/overlookmotel/co-use
- Issues: https://github.com/overlookmotel/co-use/issues
- npm.io page: https://npm.io/package/co-use

## Alternatives

- [flatbuffers](https://npm.io/package/flatbuffers.md) — 6.0M weekly downloads
- [jwt-simple](https://npm.io/package/jwt-simple.md) — 259.5K weekly downloads
- [@exodus/patch-broken-hermes-typed-arrays](https://npm.io/package/@exodus/patch-broken-hermes-typed-arrays.md) — 28.5K weekly downloads
- [@native-to-anchor/buffer-layout](https://npm.io/package/@native-to-anchor/buffer-layout.md) — 12.2K weekly downloads
- [binary-parser-encoder](https://npm.io/package/binary-parser-encoder.md) — 5.3K weekly downloads

## Recent versions

- 1.1.0 (latest) — 2015-09-19
- 1.0.1 — 2015-09-19
- 1.0.0 — 2015-09-18
- 0.1.0 — 2015-09-14

## README

# co-use.js

# co using your choice of promise implementation

## Current status

[![NPM version](https://img.shields.io/npm/v/co-use.svg)](https://www.npmjs.com/package/co-use)
[![Build Status](https://img.shields.io/travis/overlookmotel/co-use/master.svg)](http://travis-ci.org/overlookmotel/co-use)
[![Dependency Status](https://img.shields.io/david/overlookmotel/co-use.svg)](https://david-dm.org/overlookmotel/co-use)
[![Dev dependency Status](https://img.shields.io/david/dev/overlookmotel/co-use.svg)](https://david-dm.org/overlookmotel/co-use)
[![Coverage Status](https://img.shields.io/coveralls/overlookmotel/co-use/master.svg)](https://coveralls.io/r/overlookmotel/co-use)

## What's it for?

[co](https://www.npmjs.com/package/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](https://www.npmjs.com/package/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.

```js
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](https://www.npmjs.com/package/co).

## Building co-use

I requested that this functionality be included in `co` ([PR](https://github.com/tj/co/pull/226)) 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](https://github.com/overlookmotel/co-use/blob/master/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

---
_Source: https://npm.io/package/co-use · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
