# co-on

> co based event handling.

Latest version **0.0.5** (published 2014-07-02) · MIT license · 0 weekly downloads

## Install

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

## Health

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

Positive: no vulnerabilities.

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

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.5 |
| Published | 2014-07-02 |
| First published | 2014-05-15 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 33 |
| Author | hrsh7th |
| Maintainers | hrsh7th |
| Keywords | co, event, emitter |

## Links

- npm: https://www.npmjs.com/package/co-on
- Repository: https://github.com/hrsh7th/js-co-on
- Issues: https://github.com/hrsh7th/js-co-on/issues
- npm.io page: https://npm.io/package/co-on

## Alternatives

- [async-exit-hook](https://npm.io/package/async-exit-hook.md) — 3.7M weekly downloads
- [evnty](https://npm.io/package/evnty.md) — 7.2K weekly downloads
- [eleventy-plugin-asciidoc](https://npm.io/package/eleventy-plugin-asciidoc.md) — 3.5K weekly downloads
- [@jswork/next-get2get](https://npm.io/package/@jswork/next-get2get.md) — 945 weekly downloads
- [@dashersw/axon](https://npm.io/package/@dashersw/axon.md) — 934 weekly downloads

## Recent versions

- 0.0.5 (latest) — 2014-07-02
- 0.0.4 — 2014-07-01
- 0.0.3 — 2014-07-01
- 0.0.2 — 2014-05-20
- 0.0.1 — 2014-05-15

## README

co-on
========

[![Build Status](https://travis-ci.org/hrsh7th/js-co-on.png?branch=master)](https://travis-ci.org/hrsh7th/js-co-on)

co based event handling.

usage
--------
```js
var co = require('co');
var on = require('co-on');

co(function*() {
  var db = require('db');
  db.connect('localhost/example');
  yield on(db, 'connect');
  console.log('connect success.');
});
```

```js
var co = require('co');
var on = require('co-on');
var fs = require('fs');

co(function*() {
  var stream = fs.createReadStream('sample.txt').resume();
  var e = on(stream)

  var data = '';
  while (!e.emitted('end')) {
    var chunk = yield e.on('data', 'end');
    if (chunk) {
      data += chunk;
    }
  }
  console.log(data);
});
```

api
--------
#### ```var e = on(emitter, [...types]);```
- args
  - emitter
    - EventEmitter instance.
  - ...types
    - event names.
- return
  - thunk or co-on object.

#### ```yield e.on(...types)```
- args
  - ...types
    - event names.
      - see usage.
- return
  - EventEmitter#emit(type, ```...```);

#### ```e.emitted(type)```
- args
  - type
    - event name.
- return
  - whether event was already emitted (and buffer is empty).


todo
--------
- error event handling.

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