Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 1 addition & 68 deletions .pnp.cjs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 0 additions & 3 deletions .yarn/cache/@types-ws-npm-6.0.4-4b7cc6a57b-fa958e6459.zip

This file was deleted.

3 changes: 0 additions & 3 deletions .yarn/cache/isomorphic-ws-npm-4.0.1-aa39192848-7cb90dc2f0.zip

This file was deleted.

3 changes: 0 additions & 3 deletions .yarn/cache/ws-npm-7.5.10-878ccb886b-bd7d5f4aaf.zip

This file was deleted.

3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ and this project adheres to
### Changed

- all: Drop support for Node.js < 22.
- @cosmjs/socket: Remove isomorphic-ws dependency ([#1810])

[#1810]: https://github.com/cosmos/cosmjs/issues/1810

## [0.38.0] - 2025-12-30

Expand Down
3 changes: 0 additions & 3 deletions packages/socket/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,6 @@
},
"dependencies": {
"@cosmjs/stream": "workspace:^",
"isomorphic-ws": "^4.0.1",
"ws": "^7",
"xstream": "^11.14.0"
},
"devDependencies": {
Expand All @@ -54,7 +52,6 @@
"@types/karma-firefox-launcher": "^2",
"@types/karma-jasmine": "^4",
"@types/karma-jasmine-html-reporter": "^1",
"@types/ws": "^6.0.1",
"glob": "^13.0.0",
"jasmine": "^4",
"jasmine-spec-reporter": "^6",
Expand Down
2 changes: 1 addition & 1 deletion packages/socket/src/socketwrapper.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ const enabled = !!globalThis.process?.env.SOCKETSERVER_ENABLED;
(error) => {
if (error.message) {
// error message only available in nodejs
expect(error.message).toMatch(/ECONNREFUSED/i);
expect(error.message).toMatch(/network error or non-101 status code/i);
}
done();
},
Expand Down
48 changes: 13 additions & 35 deletions packages/socket/src/socketwrapper.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,3 @@
// eslint-disable-next-line @typescript-eslint/naming-convention
import WebSocket from "isomorphic-ws";

function environmentIsNodeJs(): boolean {
return (
typeof process !== "undefined" &&
typeof process.versions !== "undefined" &&
typeof process.versions.node !== "undefined"
);
}

export interface SocketWrapperCloseEvent {
readonly wasClean: boolean;
readonly code: number;
Expand All @@ -29,7 +18,7 @@ export interface SocketWrapperMessageEvent {
}

/**
* A thin wrapper around isomorphic-ws' WebSocket class that adds
* A thin wrapper around WebSocket that adds
* - constant message/error/open/close handlers
* - explicit connection via a connect() method
* - type support for events
Expand Down Expand Up @@ -159,32 +148,21 @@ export class SocketWrapper {
}

public async send(data: string): Promise<void> {
return new Promise((resolve, reject) => {
if (!this.socket) {
throw new Error("Socket undefined. This must be called after connecting.");
}
if (!this.socket) {
throw new Error("Socket undefined. This must be called after connecting.");
}

if (this.closed) {
throw new Error("Socket was closed, so no data can be sent anymore.");
}
if (this.closed) {
throw new Error("Socket was closed, so no data can be sent anymore.");
}

// this exception should be thrown by send() automatically according to
// https://developer.mozilla.org/de/docs/Web/API/WebSocket#send() but it does not work in browsers
if (this.socket.readyState !== WebSocket.OPEN) {
throw new Error("Websocket is not open");
}
// this exception should be thrown by send() automatically according to
// https://developer.mozilla.org/de/docs/Web/API/WebSocket#send() but it does not work in browsers
if (this.socket.readyState !== WebSocket.OPEN) {
throw new Error("Websocket is not open");
}

if (environmentIsNodeJs()) {
this.socket.send(data, (err) => {
if (err) reject(err);
else resolve();
});
} else {
// Browser websocket send method does not accept a callback
this.socket.send(data);
resolve();
}
});
this.socket.send(data);
}

/**
Expand Down
7 changes: 7 additions & 0 deletions packages/socket/src/streamingsocket.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,13 @@ const enabled = !!globalThis.process?.env.SOCKETSERVER_ENABLED;
subscription.unsubscribe();
done();
},
error: (err) => {
// err is an ErrorEvent but we don't get types for that
const error = err.error;
done.fail(
`Unexpected error in events stream: "${error.message}" / "${error.message}" / "${error.stack}" / JSON=${JSON.stringify(err)} (${err})`,
);
},
});

(async () => {
Expand Down
36 changes: 0 additions & 36 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -539,9 +539,7 @@ __metadata:
"@types/karma-firefox-launcher": "npm:^2"
"@types/karma-jasmine": "npm:^4"
"@types/karma-jasmine-html-reporter": "npm:^1"
"@types/ws": "npm:^6.0.1"
glob: "npm:^13.0.0"
isomorphic-ws: "npm:^4.0.1"
jasmine: "npm:^4"
jasmine-spec-reporter: "npm:^6"
karma: "npm:^6.3.14"
Expand All @@ -557,7 +555,6 @@ __metadata:
typescript: "npm:~5.9"
webpack: "npm:^5.76.0"
webpack-cli: "npm:^4.6.0"
ws: "npm:^7"
xstream: "npm:^11.14.0"
languageName: unknown
linkType: soft
Expand Down Expand Up @@ -1699,15 +1696,6 @@ __metadata:
languageName: node
linkType: hard

"@types/ws@npm:^6.0.1":
version: 6.0.4
resolution: "@types/ws@npm:6.0.4"
dependencies:
"@types/node": "npm:*"
checksum: 10c0/fa958e64596ca9487c3ed6012834de70b47f25d971f1950cfb8e6a99cb77ff340ae82ac7627744e01b58010674ef8ede07d5a2ac29ca9ad0d67a430fcc69ae14
languageName: node
linkType: hard

"@typescript-eslint/eslint-plugin@npm:^8.46.0":
version: 8.46.2
resolution: "@typescript-eslint/eslint-plugin@npm:8.46.2"
Expand Down Expand Up @@ -4999,15 +4987,6 @@ __metadata:
languageName: node
linkType: hard

"isomorphic-ws@npm:^4.0.1":
version: 4.0.1
resolution: "isomorphic-ws@npm:4.0.1"
peerDependencies:
ws: "*"
checksum: 10c0/7cb90dc2f0eb409825558982fb15d7c1d757a88595efbab879592f9d2b63820d6bbfb5571ab8abe36c715946e165a413a99f6aafd9f40ab1f514d73487bc9996
languageName: node
linkType: hard

"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.0.0-alpha.1, istanbul-lib-coverage@npm:^3.2.0":
version: 3.2.2
resolution: "istanbul-lib-coverage@npm:3.2.2"
Expand Down Expand Up @@ -8083,21 +8062,6 @@ __metadata:
languageName: node
linkType: hard

"ws@npm:^7":
version: 7.5.10
resolution: "ws@npm:7.5.10"
peerDependencies:
bufferutil: ^4.0.1
utf-8-validate: ^5.0.2
peerDependenciesMeta:
bufferutil:
optional: true
utf-8-validate:
optional: true
checksum: 10c0/bd7d5f4aaf04fae7960c23dcb6c6375d525e00f795dd20b9385902bd008c40a94d3db3ce97d878acc7573df852056ca546328b27b39f47609f80fb22a0a9b61d
languageName: node
linkType: hard

"ws@npm:~8.17.1":
version: 8.17.1
resolution: "ws@npm:8.17.1"
Expand Down
Loading