UNPKG

@codex-storage/sdk-js

Version:

Codex SDK to interact with the Codex decentralized storage network.

1 lines 4.3 kB
{"version":3,"sources":["../src/data/browser-upload.ts"],"names":["_a"],"mappings":";;;AAIO,IAAM,uBAAN,MAAoD;AAAA,EACxC,IAAA;AAAA,EACA,UAAA;AAAA,EAGA,QAAA;AAAA,EAGT,GAAA;AAAA,EAER,WAAA,CACE,IACA,EAAA,UAAA,EACA,QACA,EAAA;AACA,IAAA,IAAA,CAAK,IAAO,GAAA,IAAA;AACZ,IAAA,IAAA,CAAK,UAAa,GAAA,UAAA;AAClB,IAAA,IAAA,CAAK,QAAW,GAAA,QAAA;AAAA;AAClB,EAEA,MACE,CAAA,GAAA,EACA,EAAE,IAAA,EAC0B,EAAA;AAC5B,IAAM,MAAA,GAAA,GAAM,IAAI,cAAe,EAAA;AAC/B,IAAA,IAAA,CAAK,GAAM,GAAA,GAAA;AAEX,IAAO,OAAA,IAAI,OAA2B,CAAA,CAAC,OAAY,KAAA;AA/BvD,MAAA,IAAA,EAAA,EAAA,EAAA;AAgCM,MAAI,GAAA,CAAA,MAAA,CAAO,UAAa,GAAA,CAAC,GAAQ,KAAA;AAhCvC,QAAAA,IAAAA,GAAAA;AAiCQ,QAAA,IAAI,IAAI,gBAAkB,EAAA;AACxB,UAAAA,CAAAA,GAAAA,GAAA,KAAK,UAAL,KAAA,IAAA,GAAA,MAAA,GAAAA,IAAA,IAAkB,CAAA,IAAA,EAAA,GAAA,CAAI,QAAQ,GAAI,CAAA,KAAA,CAAA;AAAA;AACpC,OACF;AAEA,MAAI,GAAA,CAAA,IAAA,CAAK,MAAQ,EAAA,GAAA,EAAK,IAAI,CAAA;AAE1B,MAAI,IAAA,CAAA,EAAA,GAAA,IAAA,CAAK,QAAL,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAe,QAAU,EAAA;AAC3B,QAAI,GAAA,CAAA,gBAAA;AAAA,UACF,qBAAA;AAAA,UACA,wBAAA,GAA2B,IAAK,CAAA,QAAA,CAAS,QAAW,GAAA;AAAA,SACtD;AAAA;AAGF,MAAA,IAAI,6BAAM,KAAO,EAAA;AACf,QAAA,GAAA,CAAI,gBAAiB,CAAA,eAAA,EAAiB,QAAW,GAAA,IAAA,CAAK,KAAK,CAAA;AAAA;AAG7D,MAAI,IAAA,CAAA,EAAA,GAAA,IAAA,CAAK,QAAL,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAe,QAAU,EAAA;AAC3B,QAAA,GAAA,CAAI,gBAAiB,CAAA,cAAA,EAAgB,IAAK,CAAA,QAAA,CAAS,QAAQ,CAAA;AAAA;AAG7D,MAAI,GAAA,CAAA,IAAA,CAAK,KAAK,IAAI,CAAA;AAElB,MAAA,GAAA,CAAI,SAAS,WAAY;AACvB,QAAI,IAAA,GAAA,CAAI,UAAU,GAAK,EAAA;AACrB,UAAQ,OAAA,CAAA;AAAA,YACN,KAAO,EAAA,IAAA;AAAA,YACP,IAAA,EAAM,IAAI,UAAW,CAAA,GAAA,CAAI,cAAc,EAAE,IAAA,EAAM,GAAI,CAAA,MAAA,EAAQ;AAAA,WAC5D,CAAA;AAAA,SACI,MAAA;AACL,UAAA,OAAA,CAAQ,EAAE,KAAO,EAAA,KAAA,EAAO,IAAM,EAAA,GAAA,CAAI,UAAU,CAAA;AAAA;AAC9C,OACF;AAEA,MAAA,GAAA,CAAI,UAAU,WAAY;AACxB,QAAQ,OAAA,CAAA;AAAA,UACN,KAAO,EAAA,IAAA;AAAA,UACP,IAAA,EAAM,IAAI,UAAA,CAAW,8CAA8C;AAAA,SACpE,CAAA;AAAA,OACH;AAAA,KACD,CAAA;AAAA;AACH,EAEA,KAAc,GAAA;AA7EhB,IAAA,IAAA,EAAA;AA8EI,IAAA,CAAA,EAAA,GAAA,IAAA,CAAK,QAAL,IAAU,GAAA,MAAA,GAAA,EAAA,CAAA,KAAA,EAAA;AAAA;AAEd","file":"browser.mjs","sourcesContent":["import { CodexError } from \"../errors/errors\";\nimport type { SafeValue } from \"../values/values\";\nimport type { UploadStategy, UploadStategyOptions } from \"./types\";\n\nexport class BrowserUploadStategy implements UploadStategy {\n private readonly file: Document | XMLHttpRequestBodyInit;\n private readonly onProgress:\n | ((loaded: number, total: number) => void)\n | undefined;\n private readonly metadata:\n | { filename?: string; mimetype?: string }\n | undefined;\n private xhr: XMLHttpRequest | undefined;\n\n constructor(\n file: Document | XMLHttpRequestBodyInit,\n onProgress?: (loaded: number, total: number) => void,\n metadata?: { filename?: string; mimetype?: string }\n ) {\n this.file = file;\n this.onProgress = onProgress;\n this.metadata = metadata;\n }\n\n upload(\n url: string,\n { auth }: UploadStategyOptions\n ): Promise<SafeValue<string>> {\n const xhr = new XMLHttpRequest();\n this.xhr = xhr;\n\n return new Promise<SafeValue<string>>((resolve) => {\n xhr.upload.onprogress = (evt) => {\n if (evt.lengthComputable) {\n this.onProgress?.(evt.loaded, evt.total);\n }\n };\n\n xhr.open(\"POST\", url, true);\n\n if (this.metadata?.filename) {\n xhr.setRequestHeader(\n \"Content-Disposition\",\n 'attachment; filename=\"' + this.metadata.filename + '\"'\n );\n }\n\n if (auth?.basic) {\n xhr.setRequestHeader(\"Authorization\", \"Basic \" + auth.basic);\n }\n\n if (this.metadata?.mimetype) {\n xhr.setRequestHeader(\"Content-Type\", this.metadata.mimetype);\n }\n\n xhr.send(this.file);\n\n xhr.onload = function () {\n if (xhr.status != 200) {\n resolve({\n error: true,\n data: new CodexError(xhr.responseText, { code: xhr.status }),\n });\n } else {\n resolve({ error: false, data: xhr.response });\n }\n };\n\n xhr.onerror = function () {\n resolve({\n error: true,\n data: new CodexError(\"Something went wrong during the file upload.\"),\n });\n };\n });\n }\n\n abort(): void {\n this.xhr?.abort();\n }\n}\n"]}