{"version":3,"file":"shared-BLZ0SS0h.mjs","names":[],"sources":["../src/adapters/webworkers/internal.ts","../src/adapters/webworkers/shared.ts"],"sourcesContent":["import type { EventTag } from '../..'\nimport type { WorkerPayload } from './shared'\n\nimport { nanoid } from '../..'\n\nexport function generateWorkerPayload<T>(type: EventTag<any, any>, payload: T): WorkerPayload<T> {\n  return {\n    id: nanoid(),\n    type,\n    payload,\n  }\n}\n\nexport function parseWorkerPayload<T>(data: unknown): WorkerPayload<T> {\n  return data as WorkerPayload<T>\n}\n","import type { EventContext } from '../../context'\nimport type { Eventa, EventTag } from '../../eventa'\nimport type { AdapterErrorPayload } from '../errors'\n\nimport { defineEventa, defineOutboundEventa } from '../../eventa'\nimport { isExtendableInvokeResponseLike } from '../../invoke'\n\nexport type { AdapterErrorKind, AdapterErrorPayload } from '../errors'\n\nexport interface WorkerPayload<T> {\n  id: string\n  type: EventTag<any, any>\n  payload: T\n  transfer?: Transferable[]\n}\n\nexport interface WorkerEventa<T> extends Eventa<{ message: T, transfer?: Transferable[] }> {\n  _workerTransfer: true\n}\n\nexport function defineWorkerEventa<T>(id?: string): WorkerEventa<T> {\n  return {\n    ...defineEventa<{ message: T, transfer?: Transferable[] }>(id),\n    _workerTransfer: true,\n  }\n}\n\nexport function defineOutboundWorkerEventa<T>(id?: string): WorkerEventa<T> {\n  return {\n    ...defineOutboundEventa<{ message: T, transfer?: Transferable[] }>(id),\n    _workerTransfer: true,\n  }\n}\n\nexport function isWorkerEventa(event: Eventa<any>): event is WorkerEventa<any> {\n  return typeof event === 'object'\n    && '_workerTransfer' in event\n    && typeof event._workerTransfer === 'boolean'\n    && event._workerTransfer === true\n}\n\n/**\n * Emitted by the worker adapters whenever a worker fails: an inbound message\n * fails to parse (`kind: 'parse'`, non-fatal), the worker hits a fatal\n * `error` (`kind: 'fatal'`), or a message can't be deserialized\n * (`kind: 'messageerror'`). Has a stable id so it can be subscribed to across\n * module boundaries.\n */\nexport const workerErrorEvent = defineEventa<AdapterErrorPayload>('eventa:worker:error')\n\nexport function normalizeOnListenerParameters(event: Eventa<any>, options?: { transfer?: Transferable[] } | unknown) {\n  let eventPayload: any = event.body\n  let transfer: Transferable[] | undefined\n\n  if (isExtendableInvokeResponseLike<unknown, EventContext<{ invokeResponse?: { transfer?: Transferable[] } }>>(event)) {\n    if (event.body!.content.invokeResponse?.transfer != null) {\n      transfer = event.body!.content.invokeResponse!.transfer\n      delete event.body!.content.invokeResponse\n    }\n\n    eventPayload = { ...event.body, content: event.body!.content.response }\n    delete eventPayload.content.response\n  }\n  else if (isWorkerEventa(event)) {\n    transfer = event.body?.transfer\n    delete event.body?.transfer\n\n    eventPayload = event.body?.message\n    delete event.body?.message\n  }\n\n  // Override from options\n  if (typeof options !== 'undefined' && options != null && typeof options === 'object' && 'transfer' in options) {\n    if (Array.isArray(options.transfer)) {\n      transfer = options.transfer\n    }\n  }\n\n  return {\n    body: eventPayload,\n    transfer,\n  }\n}\n"],"mappings":";;;AAKA,SAAgB,sBAAyB,MAA0B,SAA8B;CAC/F,OAAO;EACL,IAAI,OAAO;EACX;EACA;CACF;AACF;AAEA,SAAgB,mBAAsB,MAAiC;CACrE,OAAO;AACT;;;ACKA,SAAgB,mBAAsB,IAA8B;CAClE,OAAO;EACL,GAAG,aAAwD,EAAE;EAC7D,iBAAiB;CACnB;AACF;AAEA,SAAgB,2BAA8B,IAA8B;CAC1E,OAAO;EACL,GAAG,qBAAgE,EAAE;EACrE,iBAAiB;CACnB;AACF;AAEA,SAAgB,eAAe,OAAgD;CAC7E,OAAO,OAAO,UAAU,YACnB,qBAAqB,SACrB,OAAO,MAAM,oBAAoB,aACjC,MAAM,oBAAoB;AACjC;;;;;;;;AASA,MAAa,mBAAmB,aAAkC,qBAAqB;AAEvF,SAAgB,8BAA8B,OAAoB,SAAmD;CACnH,IAAI,eAAoB,MAAM;CAC9B,IAAI;CAEJ,IAAI,+BAA0G,KAAK,GAAG;EACpH,IAAI,MAAM,KAAM,QAAQ,gBAAgB,YAAY,MAAM;GACxD,WAAW,MAAM,KAAM,QAAQ,eAAgB;GAC/C,OAAO,MAAM,KAAM,QAAQ;EAC7B;EAEA,eAAe;GAAE,GAAG,MAAM;GAAM,SAAS,MAAM,KAAM,QAAQ;EAAS;EACtE,OAAO,aAAa,QAAQ;CAC9B,OACK,IAAI,eAAe,KAAK,GAAG;EAC9B,WAAW,MAAM,MAAM;EACvB,OAAO,MAAM,MAAM;EAEnB,eAAe,MAAM,MAAM;EAC3B,OAAO,MAAM,MAAM;CACrB;CAGA,IAAI,OAAO,YAAY,eAAe,WAAW,QAAQ,OAAO,YAAY,YAAY,cAAc;MAChG,MAAM,QAAQ,QAAQ,QAAQ,GAChC,WAAW,QAAQ;CAAA;CAIvB,OAAO;EACL,MAAM;EACN;CACF;AACF"}