init commit
This commit is contained in:
81
remotion/node_modules/@remotion/webcodecs/dist/esm/web-fs.mjs
generated
vendored
Normal file
81
remotion/node_modules/@remotion/webcodecs/dist/esm/web-fs.mjs
generated
vendored
Normal file
@@ -0,0 +1,81 @@
|
||||
// src/writers/web-fs.ts
|
||||
var createContent = async ({
|
||||
filename
|
||||
}) => {
|
||||
const directoryHandle = await navigator.storage.getDirectory();
|
||||
const actualFilename = `__remotion_mediaparser:${filename}`;
|
||||
const remove = async () => {
|
||||
try {
|
||||
await directoryHandle.removeEntry(actualFilename, {
|
||||
recursive: true
|
||||
});
|
||||
} catch {}
|
||||
};
|
||||
await remove();
|
||||
const fileHandle = await directoryHandle.getFileHandle(actualFilename, {
|
||||
create: true
|
||||
});
|
||||
const writable = await fileHandle.createWritable();
|
||||
let written = 0;
|
||||
let writPromise = Promise.resolve();
|
||||
const write = async (arr) => {
|
||||
await writable.write(arr);
|
||||
written += arr.byteLength;
|
||||
};
|
||||
const updateDataAt = async (position, data) => {
|
||||
await writable.seek(position);
|
||||
await writable.write(data);
|
||||
await writable.seek(written);
|
||||
};
|
||||
const writer = {
|
||||
write: (arr) => {
|
||||
writPromise = writPromise.then(() => write(arr));
|
||||
return writPromise;
|
||||
},
|
||||
finish: async () => {
|
||||
await writPromise;
|
||||
try {
|
||||
await writable.close();
|
||||
} catch {}
|
||||
},
|
||||
async getBlob() {
|
||||
const newHandle = await directoryHandle.getFileHandle(actualFilename, {
|
||||
create: true
|
||||
});
|
||||
const newFile = await newHandle.getFile();
|
||||
return newFile;
|
||||
},
|
||||
getWrittenByteCount: () => written,
|
||||
updateDataAt: (position, data) => {
|
||||
writPromise = writPromise.then(() => updateDataAt(position, data));
|
||||
return writPromise;
|
||||
},
|
||||
remove
|
||||
};
|
||||
return writer;
|
||||
};
|
||||
var webFsWriter = {
|
||||
createContent
|
||||
};
|
||||
var canUseWebFsWriter = async () => {
|
||||
if (!("storage" in navigator)) {
|
||||
return false;
|
||||
}
|
||||
if (!("getDirectory" in navigator.storage)) {
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
const directoryHandle = await navigator.storage.getDirectory();
|
||||
const fileHandle = await directoryHandle.getFileHandle("remotion-probe-web-fs-support", {
|
||||
create: true
|
||||
});
|
||||
const canUse = fileHandle.createWritable !== undefined;
|
||||
return canUse;
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
export {
|
||||
webFsWriter,
|
||||
canUseWebFsWriter
|
||||
};
|
||||
Reference in New Issue
Block a user