@whop/api
Version:
Whop API client
1 lines • 4.89 kB
Source Map (JSON)
{"version":3,"sources":["../src/attachments/upload-part-browser.ts","../src/sdk/client-sdk-browser.ts","../src/sdk/server-sdk-browser.ts"],"sourcesContent":["import {\n\tMULTIPART_UPLOAD_CHUNK_SIZE,\n\ttype MultipartUploadTask,\n} from \"@/attachments/common\";\n\n/**\n * Uploads a part of a file in a browser environment.\n * @param task The task to upload.\n * @returns The etag of the uploaded part.\n */\nexport async function uploadPartImpl({\n\turl,\n\tfullData,\n\tpartNumber,\n\theaders,\n\tonProgress,\n\tsignal,\n}: MultipartUploadTask) {\n\tconst offset = (partNumber - 1) * MULTIPART_UPLOAD_CHUNK_SIZE;\n\tconst data = fullData.slice(\n\t\toffset,\n\t\tMath.min(offset + MULTIPART_UPLOAD_CHUNK_SIZE, fullData.size),\n\t);\n\n\tsignal?.throwIfAborted();\n\n\tconst cleanup: (() => void)[] = [];\n\n\treturn new Promise<string>((resolve, reject) => {\n\t\tconst fullURL = new URL(url);\n\t\tconst xhr = new XMLHttpRequest();\n\n\t\tif (signal) {\n\t\t\tconst onAbort = () => {\n\t\t\t\txhr.abort();\n\t\t\t\treject(new Error(\"Upload aborted\"));\n\t\t\t};\n\t\t\tsignal.addEventListener(\"abort\", onAbort);\n\t\t\tcleanup.push(() => signal.removeEventListener(\"abort\", onAbort));\n\t\t}\n\n\t\txhr.upload.onprogress = (event) => {\n\t\t\tonProgress?.(event);\n\t\t};\n\n\t\txhr.onload = () => {\n\t\t\tif (xhr.status >= 200 && xhr.status < 300) {\n\t\t\t\tconst etag = xhr.getResponseHeader(\"Etag\");\n\t\t\t\tif (!etag) {\n\t\t\t\t\treject(new Error(\"Could not upload file\"));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tresolve(etag.slice(1, -1));\n\t\t\t} else {\n\t\t\t\treject(new Error(\"Could not upload file\"));\n\t\t\t}\n\t\t};\n\n\t\txhr.onerror = () => {\n\t\t\treject(new Error(\"Could not upload file\"));\n\t\t};\n\n\t\txhr.open(\"PUT\", fullURL.href);\n\n\t\tif (headers) {\n\t\t\tfor (const [key, value] of Object.entries(headers)) {\n\t\t\t\txhr.setRequestHeader(key, value);\n\t\t\t}\n\t\t}\n\n\t\txhr.send(data);\n\t\tonProgress?.(new ProgressEvent(\"upload\", { total: data.size, loaded: 0 }));\n\t}).finally(() => {\n\t\tfor (const fn of cleanup) {\n\t\t\tfn();\n\t\t}\n\t});\n}\n","import { makeUploadAttachmentFunction } from \"@/attachments/upload\";\nimport { uploadPartImpl } from \"@/attachments/upload-part-browser\";\nimport { makeWhopClientSdk } from \"./client-sdk-shared\";\n\nconst uploadFile = makeUploadAttachmentFunction({ uploadPart: uploadPartImpl });\n\nconst sdk = makeWhopClientSdk({ uploadFile });\n\nimport type { WhopClientSdkOptions } from \"./client-sdk-shared\";\n\nexport function WhopClientSdk(options?: WhopClientSdkOptions) {\n\treturn sdk(options);\n}\n\nexport type WhopClientSdk = ReturnType<typeof WhopClientSdk>;\nexport type { WhopClientSdkOptions };\n","import { makeUploadAttachmentFunction } from \"@/attachments/upload\";\nimport { uploadPartImpl } from \"@/attachments/upload-part-browser\";\n\nconst uploadFile = makeUploadAttachmentFunction({ uploadPart: uploadPartImpl });\n\nconst sdk = makeWhopServerSdk({ uploadFile });\n\nimport type { WhopServerSdkOptions } from \"./server-sdk-shared\";\nimport { makeWhopServerSdk } from \"./server-sdk-shared\";\n\nexport function WhopServerSdk(options: WhopServerSdkOptions) {\n\treturn sdk(options);\n}\n\nexport type WhopServerSdk = ReturnType<typeof WhopServerSdk>;\nexport type { WhopServerSdkOptions };\n"],"mappings":";;;;;;;;;;;;;AAUA,eAAsB,eAAe;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAwB;AACvB,QAAM,UAAU,aAAa,KAAK;AAClC,QAAM,OAAO,SAAS;AAAA,IACrB;AAAA,IACA,KAAK,IAAI,SAAS,6BAA6B,SAAS,IAAI;AAAA,EAC7D;AAEA,UAAQ,eAAe;AAEvB,QAAM,UAA0B,CAAC;AAEjC,SAAO,IAAI,QAAgB,CAAC,SAAS,WAAW;AAC/C,UAAM,UAAU,IAAI,IAAI,GAAG;AAC3B,UAAM,MAAM,IAAI,eAAe;AAE/B,QAAI,QAAQ;AACX,YAAM,UAAU,MAAM;AACrB,YAAI,MAAM;AACV,eAAO,IAAI,MAAM,gBAAgB,CAAC;AAAA,MACnC;AACA,aAAO,iBAAiB,SAAS,OAAO;AACxC,cAAQ,KAAK,MAAM,OAAO,oBAAoB,SAAS,OAAO,CAAC;AAAA,IAChE;AAEA,QAAI,OAAO,aAAa,CAAC,UAAU;AAClC,mBAAa,KAAK;AAAA,IACnB;AAEA,QAAI,SAAS,MAAM;AAClB,UAAI,IAAI,UAAU,OAAO,IAAI,SAAS,KAAK;AAC1C,cAAM,OAAO,IAAI,kBAAkB,MAAM;AACzC,YAAI,CAAC,MAAM;AACV,iBAAO,IAAI,MAAM,uBAAuB,CAAC;AACzC;AAAA,QACD;AACA,gBAAQ,KAAK,MAAM,GAAG,EAAE,CAAC;AAAA,MAC1B,OAAO;AACN,eAAO,IAAI,MAAM,uBAAuB,CAAC;AAAA,MAC1C;AAAA,IACD;AAEA,QAAI,UAAU,MAAM;AACnB,aAAO,IAAI,MAAM,uBAAuB,CAAC;AAAA,IAC1C;AAEA,QAAI,KAAK,OAAO,QAAQ,IAAI;AAE5B,QAAI,SAAS;AACZ,iBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,OAAO,GAAG;AACnD,YAAI,iBAAiB,KAAK,KAAK;AAAA,MAChC;AAAA,IACD;AAEA,QAAI,KAAK,IAAI;AACb,iBAAa,IAAI,cAAc,UAAU,EAAE,OAAO,KAAK,MAAM,QAAQ,EAAE,CAAC,CAAC;AAAA,EAC1E,CAAC,EAAE,QAAQ,MAAM;AAChB,eAAW,MAAM,SAAS;AACzB,SAAG;AAAA,IACJ;AAAA,EACD,CAAC;AACF;;;ACzEA,IAAM,aAAa,6BAA6B,EAAE,YAAY,eAAe,CAAC;AAE9E,IAAM,MAAM,kBAAkB,EAAE,WAAW,CAAC;AAIrC,SAAS,cAAc,SAAgC;AAC7D,SAAO,IAAI,OAAO;AACnB;;;ACTA,IAAMA,cAAa,6BAA6B,EAAE,YAAY,eAAe,CAAC;AAE9E,IAAMC,OAAM,kBAAkB,EAAE,YAAAD,YAAW,CAAC;AAKrC,SAAS,cAAc,SAA+B;AAC5D,SAAOC,KAAI,OAAO;AACnB;","names":["uploadFile","sdk"]}