@orpc/client 2.0.0-beta.11 → 2.0.0-beta.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -50,6 +50,7 @@ You can read the documentation [here](https://orpc.dev).
50
50
  - [@orpc/experimental-effect](https://www.npmjs.com/package/@orpc/experimental-effect): Integrate with [Effect](https://effect.website/).
51
51
  - [@orpc/nest](https://www.npmjs.com/package/@orpc/nest): Implement your contract with [NestJS](https://nestjs.com/).
52
52
  - [@orpc/bun](https://www.npmjs.com/package/@orpc/bun): Adapters for [Bun's Redis](https://bun.sh/).
53
+ - [@orpc/cloudflare](https://www.npmjs.com/package/@orpc/cloudflare): Adapters for [Cloudflare's RateLimit and Durable Objects](https://developers.cloudflare.com/workers/).
53
54
 
54
55
  **Observability**
55
56
 
@@ -1,5 +1,5 @@
1
- import { value, isPlainObject, toStringOrBytes } from '@orpc/shared';
2
- import { ClientPeer, encodePeerMessage, decodePeerMessage, isServerPeerSendMessage } from '@standardserver/peer';
1
+ import { value } from '@orpc/shared';
2
+ import { ClientPeer, encodePeerMessage, decodePeerMessage, isServerPeerSendMessage, isPeerMessage } from '@standardserver/peer';
3
3
  import { S as StandardLink, R as RPCLinkCodec } from '../../shared/client.BN52ep3E.mjs';
4
4
  import '@standardserver/core';
5
5
  import '@standardserver/fetch';
@@ -59,19 +59,24 @@ class MessagePortLinkTransport {
59
59
  postMessagePortMessage(port, await encodePeerMessage(message, encodePeerMessageOptions));
60
60
  }
61
61
  });
62
- onMessagePortMessage(port, async (message) => {
63
- if (isPlainObject(message)) {
64
- await this.peer.message(message);
65
- return;
62
+ onMessagePortMessage(port, async (data) => {
63
+ let peerMessage;
64
+ if (typeof data === "string" || data instanceof Uint8Array) {
65
+ const result = decodePeerMessage(data, decodePeerMessageOptions);
66
+ if (result.matched && isServerPeerSendMessage(result.message)) {
67
+ peerMessage = result.message;
68
+ }
69
+ } else if (isPeerMessage(data) && isServerPeerSendMessage(data)) {
70
+ peerMessage = data;
66
71
  }
67
- const encodedMessage = await toStringOrBytes(message);
68
- const result = decodePeerMessage(encodedMessage, decodePeerMessageOptions);
69
- if (result.matched && isServerPeerSendMessage(result.message)) {
70
- await this.peer.message(result.message);
72
+ if (peerMessage === void 0) {
73
+ return { matched: false };
71
74
  }
75
+ await this.peer.message(peerMessage);
76
+ return { matched: true };
72
77
  });
73
- onMessagePortClose(port, () => {
74
- this.peer.close();
78
+ onMessagePortClose(port, async () => {
79
+ await this.peer.close();
75
80
  });
76
81
  }
77
82
  async send(standardRequest, _path, _options) {
@@ -1,4 +1,4 @@
1
- import { runWithSignal, AbortError, sleep, promiseWithResolvers, toStringOrBytes } from '@orpc/shared';
1
+ import { runWithSignal, AbortError, sleep, promiseWithResolvers, sequential, loadBytes, toStringOrBytes } from '@orpc/shared';
2
2
  import { ClientPeer, encodePeerMessage, decodePeerMessage, isServerPeerSendMessage } from '@standardserver/peer';
3
3
  import { S as StandardLink, R as RPCLinkCodec } from '../../shared/client.BN52ep3E.mjs';
4
4
  import '@standardserver/core';
@@ -71,13 +71,13 @@ class WebSocketLinkTransport {
71
71
  connectingResolvers?.resolve();
72
72
  });
73
73
  }
74
- websocket.addEventListener("message", async (event) => {
75
- const message = await toStringOrBytes(event.data);
74
+ websocket.addEventListener("message", sequential(async (event) => {
75
+ const message = event.data instanceof Blob ? await loadBytes(event.data) : toStringOrBytes(event.data);
76
76
  const result = decodePeerMessage(message, this.decodePeerMessageOptions);
77
77
  if (result.matched && isServerPeerSendMessage(result.message)) {
78
- await peer.message(result.message);
78
+ peer.message(result.message);
79
79
  }
80
- });
80
+ }));
81
81
  websocket.addEventListener("close", async (event) => {
82
82
  connectingResolvers?.resolve();
83
83
  if (this.reconnectOnCloseEnabled) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orpc/client",
3
3
  "type": "module",
4
- "version": "2.0.0-beta.11",
4
+ "version": "2.0.0-beta.13",
5
5
  "license": "MIT",
6
6
  "homepage": "https://orpc.dev",
7
7
  "repository": {
@@ -53,7 +53,7 @@
53
53
  "@standardserver/core": "^0.0.25",
54
54
  "@standardserver/fetch": "^0.0.25",
55
55
  "@standardserver/peer": "^0.0.25",
56
- "@orpc/shared": "2.0.0-beta.11"
56
+ "@orpc/shared": "2.0.0-beta.13"
57
57
  },
58
58
  "devDependencies": {
59
59
  "zod": "^4.4.3"