{"version":3,"file":"channel-wkwebview.cjs","names":["Channel","JsonEncoder"],"sources":["../../../src/common/msg/channel-wkwebview.ts"],"sourcesContent":["import type { ChannelMessageEvent } from './channel'\nimport { Channel } from './channel'\nimport { JsonEncoder } from './encoder'\n\nexport class WKWebViewChannel extends Channel {\n  private bridgeName: string\n  private encoder = new JsonEncoder()\n\n  isConnected: boolean\n\n  constructor(bridgeName = 'bridge') {\n    super()\n\n    this.bridgeName = bridgeName\n\n    // window[bridgeName] = this\n\n    // @ts-expect-error xxx\n    const bridge = window.webkit?.messageHandlers[this.bridgeName]\n    this.isConnected = bridge != null\n\n    bridge.on('message', (message: ChannelMessageEvent) => {\n      void this.emit('message', {\n        ...message,\n        data: this.encoder.decode(message?.data),\n      })\n    })\n\n    bridge.on('messageerror', async (error: ChannelMessageEvent) => {\n      await this.emit('messageerror', error)\n    })\n  }\n\n  postMessage(payload: any): void {\n    const data = this.encoder.encode(payload)\n    try {\n      // @ts-expect-error xxx\n      window.webkit?.messageHandlers[this.bridgeName].postMessage(data)\n    }\n    catch (err) {\n      // log.info(\"wkwebview send\", channel, data)\n      // log.warn('Exception:', err)\n    }\n  }\n\n  close() {}\n}\n"],"mappings":";;;;;AAIA,IAAa,mBAAb,cAAsCA,mCAAQ;CAC5C,AAAQ;CACR,AAAQ,UAAU,IAAIC,wCAAa;CAEnC;CAEA,YAAY,aAAa,UAAU;AACjC,SAAO;AAEP,OAAK,aAAa;EAKlB,MAAM,SAAS,OAAO,QAAQ,gBAAgB,KAAK;AACnD,OAAK,cAAc,UAAU;AAE7B,SAAO,GAAG,YAAY,YAAiC;AACrD,GAAK,KAAK,KAAK,WAAW;IACxB,GAAG;IACH,MAAM,KAAK,QAAQ,OAAO,SAAS,KAAK;IACzC,CAAC;IACF;AAEF,SAAO,GAAG,gBAAgB,OAAO,UAA+B;AAC9D,SAAM,KAAK,KAAK,gBAAgB,MAAM;IACtC;;CAGJ,YAAY,SAAoB;EAC9B,MAAM,OAAO,KAAK,QAAQ,OAAO,QAAQ;AACzC,MAAI;AAEF,UAAO,QAAQ,gBAAgB,KAAK,YAAY,YAAY,KAAK;WAE5D,KAAK;;CAMd,QAAQ"}