1.2.0 • Published 11 days ago

ndjson-readablestream v1.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
11 days ago

ndjson-readablestream

A small JS package for reading a ReadableStream of NDJSON.

readNDJSONStream() accepts a ReadableStream object, and returns an AsyncGenerator where each yielded event is a valid JSON object.

Example usage:

import readNDJSONStream from 'ndjson-readablestream';

const response = await fetch('/chat', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ message: 'Hi, how are you?' }),
});
for await (const event of readNDJSONStream(response.body)) {
  console.log('Received', event);
}

Example usage in a webpage:

<script src="https://cdn.jsdelivr.net/npm/ndjson-readablestream@1.0.1/dist/ndjson-readablestream.umd.js"></script>
<script>
  const response = await fetch("/chat", {
      method: "POST",
      headers: {"Content-Type": "application/json"},
      body: JSON.stringify({message: "Hi, how are you?"})
  });
  for await (const event of readNDJSONStream(response.body)) {
      console.log("Received", event);
  }
</script>

For more details and examples, read my blog post on Fetching JSON over streaming HTTP.

Contributing

Install the development dependencies:

npm install

Run the tests:

npm test

Format the code:

npm run format

Publishing a new version

These instructions are for maintainers only.

  1. Create a branch
  2. Bump the version in package.json using either:
    • npm version patch
    • npm version minor
    • npm version major
  3. Run npm install to update package-lock.json
  4. Update CHANGELOG.md with description of changes in version
  5. Create a pull request
  6. Once merged, checkout main and run:
    1. npm run build
    2. npm login
    3. npm publish
1.2.0

11 days ago

1.1.0

4 months ago

1.1.0-alpha.0

5 months ago

1.0.9

5 months ago

1.0.8

6 months ago

1.0.7

8 months ago

1.0.6

9 months ago

1.0.5

9 months ago

1.0.4

9 months ago

1.0.3

9 months ago

1.0.2

9 months ago

1.0.1

9 months ago

1.0.0

9 months ago