ws-wrapper
Version:
Lightweight WebSocket wrapper lib with socket.io-like event handling, requests, and channels
154 lines (100 loc) • 4.08 kB
Markdown
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [4.3.1] - 2026-05-03
### Changed
- Request IDs must now be positive integers (0 is no longer allowed).
- Removed unneeded processing of event handler arguments.
### Fixed
- `RequestAbortedError` and `RequestTimeoutError` are now properly exported.
- For anonymous channels inheriting the `AbortSignal` from the initial request,
the abort reason is now correctly forwarded to the remote and to `closeSignal`.
## [4.3.0] - 2026-04-30
### Added
- TypeScript support for typed requests. (EXPERIMENTAL)
- CI workflow to run linter and tests.
- Optional `error` parameter to `WebSocketWrapper.abort`.
- Missing JSDoc comments.
- README library comparison table.
### Changed
- Wire protocol: `h` field is now numeric (numeric strings still accepted for
backward compatibility).
- `package.json` `files` whitelist to reduce npm package size.
- Improved browser detection for `options.errorToJSON`.
- Clarified `bind()` documentation for pending outbound requests.
- Documented event handler error behavior.
### Fixed
- Package exports bug.
- `channel.of("")` now throws as expected.
- `iterableHandler` now works for handlers that return Promises.
## [4.2.0] - 2026-04-16
### Added
- Anonymous (request-scoped) channels.
- `WebSocketChannel[Symbol.asyncIterator]`.
- `iterableHandler(fn)` handler wrapper.
- Custom `messageEncode` / `messageDecode` options.
- Additional integration test coverage.
### Changed
- Split API and wire protocol documentation into dedicated documents.
- Updated README and TypeScript definitions.
- Updated lint configuration and upgraded ESLint to v10.
### Fixed
- Request cancellation when a request resolves to an anonymous channel.
- Async iterator behavior in edge cases.
- Channel abort/close handling, including close reason support.
- Example/test lint issues and compatibility with Node 14 lint target.
## [4.1.0] - 2026-03-29
### Added
- See 4.0.0 below for further details.
### Changed
- Redesigned encoding of rejection and cancellation payloads.
### Fixed
- `package.json` example-app bundling configuration.
## [4.0.0] - 2026-03-28 [YANKED]
### Added
- TypeScript declarations file.
- Initial automated test suite.
- Request cancellation support and error classes.
### Changed
- Updated dependencies.
- Node.js 14+ is now explicitly required.
- README cleanup and linter configuration updates.
### Fixed
- Validation for `options.requestTimeout`.
- Validation for sockets passed to `wrapper.bind()`.
- Pending-message send behavior.
## [3.0.3] - 2025-05-18
### Changed
- Updated dependencies.
## [3.0.2] - 2025-01-27
### Changed
- Added `"connect"` to `NO_WRAP_EVENTS`.
- Added Go server-wrapper reference in the README.
- Ran Prettier formatting on Markdown.
### Fixed
- Convert string `msg.e` values into `Error` instances.
- README typo fixes.
## [3.0.1] - 2025-01-18
### Added
- Added `index.mjs` entrypoint.
## [3.0.0] - 2025-01-17
### Changed
- Migrated package to ES Modules.
- Migrated example app build to Parcel.
- Improved ESLint configuration.
- Code formatting updates.
### Fixed
- Example app bug fixes.
[unreleased]: https://github.com/bminer/ws-wrapper/compare/v4.3.1...HEAD
[4.3.1]: https://github.com/bminer/ws-wrapper/compare/v4.3.0...v4.3.1
[4.3.0]: https://github.com/bminer/ws-wrapper/compare/v4.2.0...v4.3.0
[4.2.0]: https://github.com/bminer/ws-wrapper/compare/v4.1.0...v4.2.0
[4.1.0]: https://github.com/bminer/ws-wrapper/compare/v4.0.0...v4.1.0
[4.0.0]: https://github.com/bminer/ws-wrapper/compare/v3.0.3...v4.0.0
[3.0.3]: https://github.com/bminer/ws-wrapper/compare/v3.0.2...v3.0.3
[3.0.2]: https://github.com/bminer/ws-wrapper/compare/v3.0.1...v3.0.2
[3.0.1]: https://github.com/bminer/ws-wrapper/compare/v3.0.0...v3.0.1
[3.0.0]: https://github.com/bminer/ws-wrapper/releases/tag/v3.0.0