包详细信息

ndjson-readablestream

pamelafox153.2kMIT1.2.0

A small JS package for reading a ReadableStream of NDJSON

自述文件

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

更新日志

Changelog

All notable changes to this project will be documented in this file.

[1.2.0] - Apr. 27, 2024

  • Change to TypeScript type notation to improve type extendability.

[1.1.0] - Jan. 12, 2024

  • Fix for CJS module error when running vitest on imported package.

[1.1.0-alpha.0] - Dec. 19, 2023

  • Attempting to fix CJS module error when running vitest on imported package.

[1.0.9] - Nov. 30, 2023

  • Fixed issue with streaming multibyte characters.

[1.0.8] - Nov. 11, 2023

  • No code changes, documentation only.