partysocket
Version:
A better WebSocket that Just Works™
1 lines • 1.58 kB
Source Map (JSON)
{"version":3,"file":"use-ws.cjs","names":["useStableSocket","WebSocket","getOptionsThatShouldCauseRestartWhenChanged"],"sources":["../src/use-ws.ts"],"sourcesContent":["import { useAttachWebSocketEventHandlers } from \"./use-handlers\";\nimport {\n getOptionsThatShouldCauseRestartWhenChanged,\n useStableSocket\n} from \"./use-socket\";\nimport WebSocket from \"./ws\";\n\nimport type { EventHandlerOptions } from \"./use-handlers\";\nimport type { SocketOptions } from \"./use-socket\";\nimport type { ProtocolsProvider, UrlProvider } from \"./ws\";\n\ntype UseWebSocketOptions = SocketOptions & EventHandlerOptions;\n\n// A React hook that wraps PartySocket\nexport default function useWebSocket(\n url: UrlProvider,\n protocols?: ProtocolsProvider,\n options: UseWebSocketOptions = {}\n) {\n const socket = useStableSocket({\n options,\n createSocket: (options) => new WebSocket(url, protocols, options),\n createSocketMemoKey: (options) =>\n JSON.stringify([\n // will reconnect if url or protocols are specified as a string.\n // if they are functions, the WebSocket will handle reconnection\n url,\n protocols,\n ...getOptionsThatShouldCauseRestartWhenChanged(options)\n ])\n });\n\n useAttachWebSocketEventHandlers(socket, options);\n\n return socket;\n}\n"],"mappings":";;;;AAcA,SAAwB,aACtB,KACA,WACA,UAA+B,EAAE,EACjC;CACA,MAAM,SAASA,mCAAgB;EAC7B;EACA,eAAe,YAAY,IAAIC,mBAAU,KAAK,WAAW,QAAQ;EACjE,sBAAsB,YACpB,KAAK,UAAU;GAGb;GACA;GACA,GAAGC,+DAA4C,QAAQ;GACxD,CAAC;EACL,CAAC;AAEF,oDAAgC,QAAQ,QAAQ;AAEhD,QAAO"}