Package detail

it-goodbye

alanshaw18.3kApache-2.0 OR MIT4.0.6

Add a goodbye handshake to a duplex async iterable

readme

it-goodbye

codecov CI

Add a goodbye handshake to a duplex async iterable

About

Add a goodbye handshake to a duplex async iterable.

In a uniplex stream, the end event signifies the end of the stream. But a duplex stream, it's a little more complicated - there are two paired streams that may end independently.

node's net module has an allowHalfOpen mode, but support for this method is patchy - more often, by default duplex streams are like a telephone - when one side hangs up, both streams are terminated. Humans deal with this problem by moving stream termination into the "application" layer - it's polite to say "goodbye", and to wait to receive "goodbye" before call termination.

Example

Given another duplex stream, wrap it with it-goodbye.

goodbye(stream, goodbye_message) takes a duplex stream and a message (by default, the string "GOODBYE"), this must be encodable whatever codec the stream uses. The codec should probably be applied outside of it-goodbye.

import { goodbye } from 'it-goodbye'

// a duplex stream from somewhere...
var duplex = whatever.createStream()

return goodbye(duplex, 'GoodBye')

Install

$ npm i it-goodbye

Browser <script> tag

Loading this module through a script tag will make it's exports available as ItGoodbye in the global namespace.

<script src="https://unpkg.com/it-goodbye/dist/index.min.js"></script>

API Docs

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

changelog

4.0.6 (2023-12-28)

Dependencies

  • dev: bump muxrpc from 6.7.3 to 8.0.0 (#79) (553df3c)

4.0.5 (2023-12-28)

Dependencies

  • bump it-stream-types from 1.0.5 to 2.0.1 (#77) (60218ac)

4.0.4 (2023-12-28)

Dependencies

  • dev: bump it-all from 1.0.6 to 3.0.4 (#76) (d579b54)
  • dev: bump it-pipe from 2.0.5 to 3.0.1 (#75) (8c29886)

4.0.3 (2023-12-28)

Trivial Changes

  • deps-dev: bump aegir from 36.2.3 to 41.3.2 (#69) (da3918b)

Dependencies

  • bump uint8arrays from 3.1.1 to 5.0.1 (#74) (f29057e)
  • dev: bump it-filter from 1.0.3 to 3.0.4 (#78) (4a6b4cc)

4.0.2 (2023-08-14)

Trivial Changes

  • add or force update .github/workflows/js-test-and-release.yml (#73) (b863d5e)
  • delete templates [skip ci] (#72) (0e624f4)

4.0.1 (2022-01-13)

Bug Fixes

4.0.0 (2022-01-12)

⚠ BREAKING CHANGES

  • !: switch to named exports, ESM only

Features

Bug Fixes

Trivial Changes

  • update dependency badge url (97c44aa)