# TypeScript Proto Socket Status: planned This package implements Proto Socket protocol version `0.1` for TypeScript. ## Scope - Runtime targets: Node.js TCP, Node.js WebSocket, browser native WebSocket. - Browser entrypoint (`proto-socket`): `Communicator`, `BaseClient`, `BrowserWsClient`, `connectBrowserWs`. Has no `ws`, `node:*`, or `Buffer` dependency. - Node entrypoint (`proto-socket/node`): all of the above plus `TcpClient`/`TcpServer`, `NodeWsClient`/`NodeWsServer`, `connectNodeWs`/`connectNodeWss`. ## Import ```ts // browser import { connectBrowserWs } from "proto-socket"; // node import { connectNodeWs, NodeWsServer, TcpClient } from "proto-socket/node"; ``` ## Runtime Dependencies `ws` is declared as an optional peer dependency. Install it only when using the Node WebSocket entrypoint (`NodeWsClient`/`NodeWsServer`/`connectNodeWs`/`connectNodeWss`): ```bash npm install ws ``` The browser entrypoint and Node TCP-only consumers do not need `ws`. ## Proto Generation Generated bindings live in `src/packets/`. ```bash cd typescript PATH="$PWD/node_modules/.bin:$PATH" protoc \ --proto_path ../proto \ --es_out src/packets \ --es_opt target=ts \ message_common.proto ``` After generation, run from the repository root: ```bash tools/check_proto_sync.sh ``` ## Validation ```bash cd typescript npx tsc --noEmit npx vitest run ``` ```bash cd go go run ./crosstest/go_typescript.go ```