// src/writers/buffer-implementation/writer.ts var createContent = ({ filename, mimeType }) => { const buf = new ArrayBuffer(0, { maxByteLength: 2000000000 }); if (!buf.resize) { throw new Error("Could not create buffer writer"); } const write = (newData) => { const oldLength = buf.byteLength; const newLength = oldLength + newData.byteLength; buf.resize(newLength); const newArray = new Uint8Array(buf); newArray.set(newData, oldLength); }; const updateDataAt = (position, newData) => { const newArray = new Uint8Array(buf); newArray.set(newData, position); }; let writPromise = Promise.resolve(); let removed = false; const writer = { write: (arr) => { writPromise = writPromise.then(() => write(arr)); return writPromise; }, finish: async () => { await writPromise; if (removed) { return Promise.reject(new Error("Already called .remove() on the result")); } return Promise.resolve(); }, getBlob() { const arr = new Uint8Array(buf); return Promise.resolve(new File([arr.slice()], filename, { type: mimeType })); }, remove() { removed = true; return Promise.resolve(); }, getWrittenByteCount: () => buf.byteLength, updateDataAt: (position, newData) => { writPromise = writPromise.then(() => updateDataAt(position, newData)); return writPromise; } }; return Promise.resolve(writer); }; // src/writers/buffer.ts var bufferWriter = { createContent }; export { bufferWriter };