{"version":3,"sources":["../src/react.ts"],"sourcesContent":["import PartySocket from \"./index\";\nimport { useAttachWebSocketEventHandlers } from \"./use-handlers\";\nimport {\n  getOptionsThatShouldCauseRestartWhenChanged,\n  useStableSocket\n} from \"./use-socket\";\n\nimport type { PartySocketOptions } from \"./index\";\nimport type { EventHandlerOptions } from \"./use-handlers\";\n\ntype UsePartySocketOptions = Omit<PartySocketOptions, \"host\"> &\n  EventHandlerOptions & {\n    host?: string | undefined;\n  };\n\n// A React hook that wraps PartySocket\nexport default function usePartySocket(options: UsePartySocketOptions) {\n  const { host, ...otherOptions } = options;\n\n  const socket = useStableSocket({\n    options: {\n      host:\n        host ||\n        (typeof window !== \"undefined\"\n          ? window.location.host\n          : \"dummy-domain.com\"),\n      ...otherOptions\n    },\n    createSocket: (options) => new PartySocket(options),\n    createSocketMemoKey: (options) =>\n      JSON.stringify([\n        // NOTE: if query is defined as a function, the socket\n        // won't reconnect when you change the function identity\n        options.query,\n        options.id,\n        options.host,\n        options.room,\n        options.party,\n        options.path,\n        options.protocol,\n        options.protocols,\n        options.basePath,\n        options.prefix,\n        ...getOptionsThatShouldCauseRestartWhenChanged(options)\n      ])\n  });\n\n  useAttachWebSocketEventHandlers(socket, options);\n\n  return socket;\n}\n\nexport { default as useWebSocket } from \"./use-ws\";\n\n// TODO: remove the default export in a future breaking change\nexport { usePartySocket };\n"],"mappings":";;;;;;;;;;;;AAgBe,SAAR,eAAgC,SAAgC;AACrE,QAAM,EAAE,MAAM,GAAG,aAAa,IAAI;AAElC,QAAM,SAAS,gBAAgB;AAAA,IAC7B,SAAS;AAAA,MACP,MACE,SACC,OAAO,WAAW,cACf,OAAO,SAAS,OAChB;AAAA,MACN,GAAG;AAAA,IACL;AAAA,IACA,cAAc,CAACA,aAAY,IAAI,YAAYA,QAAO;AAAA,IAClD,qBAAqB,CAACA,aACpB,KAAK,UAAU;AAAA;AAAA;AAAA,MAGbA,SAAQ;AAAA,MACRA,SAAQ;AAAA,MACRA,SAAQ;AAAA,MACRA,SAAQ;AAAA,MACRA,SAAQ;AAAA,MACRA,SAAQ;AAAA,MACRA,SAAQ;AAAA,MACRA,SAAQ;AAAA,MACRA,SAAQ;AAAA,MACRA,SAAQ;AAAA,MACR,GAAG,4CAA4CA,QAAO;AAAA,IACxD,CAAC;AAAA,EACL,CAAC;AAED,kCAAgC,QAAQ,OAAO;AAE/C,SAAO;AACT;","names":["options"]}