# obj-stream

> simple object streams

Latest version **0.0.26** (published 2015-06-20) · ISC license · 0 weekly downloads

## Install

```sh
npm install obj-stream
pnpm add obj-stream
yarn add obj-stream
bun add obj-stream
```

## 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.26 |
| Published | 2015-06-20 |
| First published | 2015-03-31 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 998 |
| Maintainers | architectd |

## Links

- npm: https://www.npmjs.com/package/obj-stream
- Repository: https://github.com/crcn/crudlet.js
- Issues: https://github.com/crcn/crudlet.js/issues
- npm.io page: https://npm.io/package/obj-stream

## Dependencies (1)

- [protoclass](https://npm.io/package/protoclass.md) 0.0.6

## Recent versions

- 0.0.26 (latest) — 2015-06-20
- 0.0.25 — 2015-06-10
- 0.0.24 — 2015-06-10
- 0.0.23 — 2015-04-23
- 0.0.22 — 2015-04-23
- 0.0.19 — 2015-04-23
- 0.0.18 — 2015-04-23
- 0.0.16 — 2015-04-16
- 0.0.14 — 2015-04-07
- 0.0.13 — 2015-04-07
- 0.0.12 — 2015-04-01
- 0.0.11 — 2015-04-01
- 0.0.10 — 2015-04-01
- 0.0.9 — 2015-04-01
- 0.0.8 — 2015-04-01
- … 5 more at https://npm.io/package/obj-stream/versions

## README

[![Build Status](https://travis-ci.org/mojo-js/obj-stream.svg)](https://travis-ci.org/mojo-js/obj-stream) [![Coverage Status](https://coveralls.io/repos/mojo-js/obj-stream/badge.svg?branch=master)](https://coveralls.io/r/mojo-js/obj-stream?branch=master) [![Dependency Status](https://david-dm.org/mojo-js/obj-stream.svg)](https://david-dm.org/mojo-js/obj-stream)

A lightweight object stream library for NodeJS and the browser.

```javascript
var stream = require("obj-stream");

var stream = new stream.Stream();
stream.write({ name: "obj" }); // valid
stream.write("blah"); // invalid
stream.end();

var readable = new stream.Readable([{ name: "obj" }]);
readable.pipe(new stream.Stream());
```

#### writable stream.writable()

creates a new writable stream

```javascript
var writable = stream.writable();
```

#### writable.write(object)

Writes a new object

```javascript
writable.write({ name: "Jeff Gordon" });
```

#### writable.end([object])

Ends the stream

```javascript
writable.write({ name: "Donkay" });
writable.write({ name: "Shrek" });
writable.end(); // done
```

#### writable.once(event, callback)

listens to one event then disposes

#### reader writable.reader

```javascript
Returns the readable object

var writer = stream.writable();
var reader = writer.reader;

reader.on("data", function() {

});

reader.on("end", function() {

});

writer.end({ name: "Oprah" }); // write & end
```

#### reader stream.readable()

creates a new readable object

#### reader.on(event, callback)

listens for an event.

- `event`
  - `error` - emitted on error
  - `data` - emitted on data
  - `end` - emitted when the stream closes
  - `drain` - emitted when the writer is resumed

#### reader.once(event, callback)

listens to one event then disposes

#### reader.removeListener(event, callback)

removes a listener

#### reader.pause()

pauses the stream.

```javascript
var writer = stream.writable();
var reader = writer.reader;

reader.pause();
writer.write({ name: "bob" }); // buffered, doesn't get emitted as data
```

#### reader.resume()

resumes the stream.

#### reader.isPaused()

returns true if the stream is paused.

#### writable.pipe(writable)

pipes data to a writable

#### stream stream.through(fn)

helper for transforming data

```javascript
var writable = stream.writable();
writable.reader.pipe(stream.though(function(data, next) {
  this.push("blah");
  next(); // done
})).on("data", function(data) {
  // blah is always emitted here
});

writable.write({ name: "org" });
writable.end();
```

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