@trevrpc/trevrpc-js 0.2.3 → 1.1.0

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.
Files changed (47) hide show
  1. package/README.md +127 -46
  2. package/package.json +12 -45
  3. package/src/bytes.js +10 -0
  4. package/src/call.js +520 -0
  5. package/src/channel.js +258 -288
  6. package/src/client.js +543 -1254
  7. package/src/datagram.js +336 -0
  8. package/src/framing.js +151 -548
  9. package/src/generator.js +66 -109
  10. package/src/index.d.ts +235 -463
  11. package/src/index.js +4 -3
  12. package/src/qmux/frames.js +262 -0
  13. package/src/qmux/params.js +104 -0
  14. package/src/qmux/session.js +739 -0
  15. package/src/race.js +90 -0
  16. package/src/status.js +24 -70
  17. package/src/varint.js +73 -0
  18. package/src/wire.js +21 -89
  19. package/examples/greeter/README.md +0 -35
  20. package/examples/greeter/client.js +0 -172
  21. package/examples/greeter/greeter.node.trevrpc.d.ts +0 -53
  22. package/examples/greeter/greeter.node.trevrpc.js +0 -9
  23. package/examples/greeter/greeter.proto +0 -18
  24. package/examples/greeter/greeter.trevrpc.d.ts +0 -55
  25. package/examples/greeter/greeter.trevrpc.js +0 -103
  26. package/examples/greeter/index.html +0 -140
  27. package/examples/greeter/static-server.js +0 -168
  28. package/src/advanced.d.ts +0 -29
  29. package/src/advanced.js +0 -1
  30. package/src/browser-channel.js +0 -49
  31. package/src/connect.js +0 -6
  32. package/src/connect.node.js +0 -6
  33. package/src/index.node.d.ts +0 -10
  34. package/src/index.node.js +0 -3
  35. package/src/native-loader.js +0 -118
  36. package/src/node-advanced.d.ts +0 -27
  37. package/src/node-advanced.js +0 -1
  38. package/src/node-generated.d.ts +0 -24
  39. package/src/node-generated.js +0 -126
  40. package/src/node-index.d.ts +0 -1
  41. package/src/node-index.js +0 -7
  42. package/src/node.d.ts +0 -298
  43. package/src/node.js +0 -1456
  44. package/src/runtime.js +0 -66
  45. package/src/server-response.js +0 -49
  46. package/src/timer.js +0 -29
  47. package/src/webtransport.js +0 -639
package/src/runtime.js DELETED
@@ -1,66 +0,0 @@
1
- export {
2
- Code,
3
- FrameTooLargeError,
4
- TrevRpcError,
5
- cancelled,
6
- codeFromNumber,
7
- codeName,
8
- deadlineExceeded,
9
- internal,
10
- invalidArgument,
11
- isOkStatus,
12
- resourceExhausted,
13
- statusError,
14
- statusFromResponse,
15
- unavailable,
16
- } from "./status.js";
17
- export {
18
- MaxMetadataEntries,
19
- MaxMetadataKeyLen,
20
- MaxMetadataTotalSize,
21
- MaxMetadataValueLen,
22
- ReservedMetadataPrefix,
23
- metadataValueToBytes,
24
- normalizeMetadata,
25
- normalizeMetadataKey,
26
- validateMetadata,
27
- } from "./metadata.js";
28
- export {
29
- RpcKind,
30
- RpcRequest,
31
- RpcResponse,
32
- RpcStreamFrame,
33
- RpcStreamFrameKind,
34
- WireVersion,
35
- createRoot,
36
- messageFrame,
37
- protobuf,
38
- wireRoot,
39
- } from "./wire.js";
40
- export {
41
- DefaultMaxFrameSize,
42
- FrameReader,
43
- decodeFrame,
44
- decodeStreamFrameBody,
45
- encodeFrame,
46
- encodeMessageStreamFrame,
47
- encodeMessageStreamFrames,
48
- frameBodyLength,
49
- marshalMessage,
50
- unmarshalMessage,
51
- writeFrame,
52
- writeMessageStreamFrames,
53
- } from "./framing.js";
54
- export {
55
- BidirectionalStreamingCall,
56
- ClientStreamingCall,
57
- bidirectionalStreaming,
58
- clientStreaming,
59
- createServiceClient,
60
- defaultCallOptions,
61
- mergeCallOptions,
62
- serverStreaming,
63
- unary,
64
- unaryWithResponse,
65
- } from "./client.js";
66
- export { createStreamingResponse, createUnaryResponse } from "./server-response.js";
@@ -1,49 +0,0 @@
1
- import { normalizeMetadata } from "./metadata.js";
2
- import { Code, codeFromNumber } from "./status.js";
3
-
4
- const UnaryResponseBrand = Symbol("trevrpc.unaryServerResponse");
5
- const StreamingResponseBrand = Symbol("trevrpc.streamingServerResponse");
6
-
7
- /** Creates an opaque unary generated-server response envelope. */
8
- export function createUnaryResponse(message, metadata = {}) {
9
- return Object.freeze({
10
- [UnaryResponseBrand]: true,
11
- message,
12
- metadata: Object.freeze(normalizeMetadata(metadata)),
13
- });
14
- }
15
-
16
- /** Creates an opaque streaming generated-server response envelope. */
17
- export function createStreamingResponse(messages, status = {}) {
18
- if (!isIterable(messages)) {
19
- throw new TypeError("streaming response messages must be an iterable or async iterable");
20
- }
21
-
22
- return Object.freeze({
23
- [StreamingResponseBrand]: true,
24
- messages,
25
- status: Object.freeze({
26
- code: codeFromNumber(status.code ?? Code.Ok),
27
- message: status.message ?? "",
28
- metadata: Object.freeze(normalizeMetadata(status.metadata ?? {})),
29
- }),
30
- });
31
- }
32
-
33
- /** Internal generated-dispatcher predicate. */
34
- export function isUnaryServerResponse(value) {
35
- return value?.[UnaryResponseBrand] === true;
36
- }
37
-
38
- /** Internal generated-dispatcher predicate. */
39
- export function isStreamingServerResponse(value) {
40
- return value?.[StreamingResponseBrand] === true;
41
- }
42
-
43
- function isIterable(value) {
44
- return (
45
- value != null &&
46
- (typeof value[Symbol.iterator] === "function" ||
47
- typeof value[Symbol.asyncIterator] === "function")
48
- );
49
- }
package/src/timer.js DELETED
@@ -1,29 +0,0 @@
1
- const MaxTimerDelayMs = 2_147_483_647;
2
-
3
- /** Schedules a cancellable timeout without overflowing platform timer limits. */
4
- export function scheduleTimeout(callback, delayMs) {
5
- let remaining = delayMs;
6
- let timer;
7
- let cancelled = false;
8
-
9
- const schedule = () => {
10
- const chunk = Math.min(remaining, MaxTimerDelayMs);
11
- timer = setTimeout(() => {
12
- if (cancelled) {
13
- return;
14
- }
15
- remaining -= chunk;
16
- if (remaining > 0) {
17
- schedule();
18
- } else {
19
- callback();
20
- }
21
- }, chunk);
22
- };
23
-
24
- schedule();
25
- return () => {
26
- cancelled = true;
27
- clearTimeout(timer);
28
- };
29
- }