Buckets:
| ; | |
| var __defProp = Object.defineProperty; | |
| var __getOwnPropDesc = Object.getOwnPropertyDescriptor; | |
| var __getOwnPropNames = Object.getOwnPropertyNames; | |
| var __hasOwnProp = Object.prototype.hasOwnProperty; | |
| var __export = (target, all) => { | |
| for (var name in all) | |
| __defProp(target, name, { get: all[name], enumerable: true }); | |
| }; | |
| var __copyProps = (to, from, except, desc) => { | |
| if (from && typeof from === "object" || typeof from === "function") { | |
| for (let key of __getOwnPropNames(from)) | |
| if (!__hasOwnProp.call(to, key) && key !== except) | |
| __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); | |
| } | |
| return to; | |
| }; | |
| var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); | |
| var stream_exports = {}; | |
| __export(stream_exports, { | |
| StreamingApi: () => StreamingApi | |
| }); | |
| module.exports = __toCommonJS(stream_exports); | |
| class StreamingApi { | |
| writer; | |
| encoder; | |
| writable; | |
| abortSubscribers = []; | |
| responseReadable; | |
| /** | |
| * Whether the stream has been aborted. | |
| */ | |
| aborted = false; | |
| /** | |
| * Whether the stream has been closed normally. | |
| */ | |
| closed = false; | |
| constructor(writable, _readable) { | |
| this.writable = writable; | |
| this.writer = writable.getWriter(); | |
| this.encoder = new TextEncoder(); | |
| const reader = _readable.getReader(); | |
| this.abortSubscribers.push(async () => { | |
| await reader.cancel(); | |
| }); | |
| this.responseReadable = new ReadableStream({ | |
| async pull(controller) { | |
| const { done, value } = await reader.read(); | |
| done ? controller.close() : controller.enqueue(value); | |
| }, | |
| cancel: () => { | |
| this.abort(); | |
| } | |
| }); | |
| } | |
| async write(input) { | |
| try { | |
| if (typeof input === "string") { | |
| input = this.encoder.encode(input); | |
| } | |
| await this.writer.write(input); | |
| } catch { | |
| } | |
| return this; | |
| } | |
| async writeln(input) { | |
| await this.write(input + "\n"); | |
| return this; | |
| } | |
| sleep(ms) { | |
| return new Promise((res) => setTimeout(res, ms)); | |
| } | |
| async close() { | |
| try { | |
| await this.writer.close(); | |
| } catch { | |
| } | |
| this.closed = true; | |
| } | |
| async pipe(body) { | |
| this.writer.releaseLock(); | |
| await body.pipeTo(this.writable, { preventClose: true }); | |
| this.writer = this.writable.getWriter(); | |
| } | |
| onAbort(listener) { | |
| this.abortSubscribers.push(listener); | |
| } | |
| /** | |
| * Abort the stream. | |
| * You can call this method when stream is aborted by external event. | |
| */ | |
| abort() { | |
| if (!this.aborted) { | |
| this.aborted = true; | |
| this.abortSubscribers.forEach((subscriber) => subscriber()); | |
| } | |
| } | |
| } | |
| // Annotate the CommonJS export names for ESM import in node: | |
| 0 && (module.exports = { | |
| StreamingApi | |
| }); | |
Xet Storage Details
- Size:
- 2.78 kB
- Xet hash:
- 2f3499ecb67d1599d4c9633bc9696219e2f17e96028622dbd304a6ac3357ce1d
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.