@react-native-harness/bridge 1.2.0 → 1.4.0-rc.1
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/dist/__tests__/client.test.d.ts +2 -0
- package/dist/__tests__/client.test.d.ts.map +1 -0
- package/dist/__tests__/client.test.js +81 -0
- package/dist/__tests__/heartbeat.test.d.ts +2 -0
- package/dist/__tests__/heartbeat.test.d.ts.map +1 -0
- package/dist/__tests__/heartbeat.test.js +37 -0
- package/dist/__tests__/protocol.test.d.ts +2 -0
- package/dist/__tests__/protocol.test.d.ts.map +1 -0
- package/dist/__tests__/protocol.test.js +37 -0
- package/dist/__tests__/rpc-peer.test.d.ts +2 -0
- package/dist/__tests__/rpc-peer.test.d.ts.map +1 -0
- package/dist/__tests__/rpc-peer.test.js +127 -0
- package/dist/client.d.ts +7 -14
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +96 -42
- package/dist/errors.d.ts +5 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +23 -0
- package/dist/heartbeat.d.ts +13 -0
- package/dist/heartbeat.d.ts.map +1 -0
- package/dist/heartbeat.js +49 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/protocol.d.ts +51 -0
- package/dist/protocol.d.ts.map +1 -0
- package/dist/protocol.js +132 -0
- package/dist/rpc-peer.d.ts +28 -0
- package/dist/rpc-peer.d.ts.map +1 -0
- package/dist/rpc-peer.js +146 -0
- package/dist/server.d.ts +1 -20
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +133 -67
- package/dist/shared/test-collector.d.ts +7 -3
- package/dist/shared/test-collector.d.ts.map +1 -1
- package/dist/shared/test-context.d.ts +21 -0
- package/dist/shared/test-context.d.ts.map +1 -0
- package/dist/shared/test-context.js +1 -0
- package/dist/shared/test-runner.d.ts +13 -0
- package/dist/shared/test-runner.d.ts.map +1 -1
- package/dist/shared.d.ts +2 -3
- package/dist/shared.d.ts.map +1 -1
- package/dist/transport.d.ts +22 -0
- package/dist/transport.d.ts.map +1 -0
- package/dist/transport.js +22 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/websocket-client-transport.d.ts +3 -0
- package/dist/websocket-client-transport.d.ts.map +1 -0
- package/dist/websocket-client-transport.js +45 -0
- package/dist/websocket-server-transport.d.ts +4 -0
- package/dist/websocket-server-transport.d.ts.map +1 -0
- package/dist/websocket-server-transport.js +43 -0
- package/eslint.config.mjs +5 -1
- package/package.json +6 -5
- package/src/__tests__/client.test.ts +99 -0
- package/src/__tests__/heartbeat.test.ts +47 -0
- package/src/__tests__/protocol.test.ts +51 -0
- package/src/__tests__/rpc-peer.test.ts +181 -0
- package/src/client.ts +146 -57
- package/src/errors.ts +32 -0
- package/src/heartbeat.ts +67 -0
- package/src/index.ts +1 -0
- package/src/protocol.ts +233 -0
- package/src/rpc-peer.ts +222 -0
- package/src/server.ts +191 -109
- package/src/shared/test-collector.ts +10 -3
- package/src/shared/test-context.ts +21 -0
- package/src/shared/test-runner.ts +14 -0
- package/src/shared.ts +6 -2
- package/src/transport.ts +47 -0
- package/src/websocket-client-transport.ts +85 -0
- package/src/websocket-server-transport.ts +54 -0
- package/vite.config.ts +18 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { RawData, WebSocket as NodeWebSocket } from 'ws';
|
|
2
|
+
import {
|
|
3
|
+
toTransportState,
|
|
4
|
+
type BridgeTransport,
|
|
5
|
+
} from './transport.js';
|
|
6
|
+
|
|
7
|
+
const toUint8Array = (message: RawData): Uint8Array => {
|
|
8
|
+
const buffer = Array.isArray(message)
|
|
9
|
+
? Buffer.concat(message)
|
|
10
|
+
: Buffer.isBuffer(message)
|
|
11
|
+
? message
|
|
12
|
+
: Buffer.from(message);
|
|
13
|
+
|
|
14
|
+
return new Uint8Array(buffer);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const createNodeWebSocketTransport = (
|
|
18
|
+
socket: NodeWebSocket,
|
|
19
|
+
): BridgeTransport => {
|
|
20
|
+
return {
|
|
21
|
+
get state() {
|
|
22
|
+
return toTransportState(socket.readyState);
|
|
23
|
+
},
|
|
24
|
+
send: (message) => {
|
|
25
|
+
socket.send(message);
|
|
26
|
+
},
|
|
27
|
+
close: (code, reason) => {
|
|
28
|
+
socket.close(code, reason);
|
|
29
|
+
},
|
|
30
|
+
onOpen: () => {
|
|
31
|
+
return () => undefined;
|
|
32
|
+
},
|
|
33
|
+
onMessage: (listener) => {
|
|
34
|
+
const handleMessage = (message: RawData, isBinary: boolean) => {
|
|
35
|
+
listener(isBinary ? toUint8Array(message) : message.toString());
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
socket.on('message', handleMessage);
|
|
39
|
+
return () => socket.off('message', handleMessage);
|
|
40
|
+
},
|
|
41
|
+
onClose: (listener) => {
|
|
42
|
+
const handleClose = (code: number, reason: Buffer) => {
|
|
43
|
+
listener({ code, reason: reason.toString() });
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
socket.on('close', handleClose);
|
|
47
|
+
return () => socket.off('close', handleClose);
|
|
48
|
+
},
|
|
49
|
+
onError: (listener) => {
|
|
50
|
+
socket.on('error', listener);
|
|
51
|
+
return () => socket.off('error', listener);
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
};
|
package/vite.config.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/// <reference types='vitest' />
|
|
2
|
+
import { defineConfig } from 'vite';
|
|
3
|
+
|
|
4
|
+
export default defineConfig(() => ({
|
|
5
|
+
root: __dirname,
|
|
6
|
+
cacheDir: '../../node_modules/.vite/packages/bridge',
|
|
7
|
+
test: {
|
|
8
|
+
watch: false,
|
|
9
|
+
globals: true,
|
|
10
|
+
environment: 'node',
|
|
11
|
+
include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
|
|
12
|
+
reporters: ['default'],
|
|
13
|
+
coverage: {
|
|
14
|
+
reportsDirectory: './test-output/vitest/coverage',
|
|
15
|
+
provider: 'v8' as const,
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
}));
|