132 lines
3.7 KiB
TypeScript
132 lines
3.7 KiB
TypeScript
export type FFFSPath = string;
|
|
/**
|
|
* ffmpeg-core loading configuration.
|
|
*/
|
|
export interface FFMessageLoadConfig {
|
|
/**
|
|
* `ffmpeg-core.js` URL.
|
|
*
|
|
* @defaultValue `https://unpkg.com/@ffmpeg/core@${CORE_VERSION}/dist/umd/ffmpeg-core.js`;
|
|
*/
|
|
coreURL?: string;
|
|
/**
|
|
* `ffmpeg-core.wasm` URL.
|
|
*
|
|
* @defaultValue `https://unpkg.com/@ffmpeg/core@${CORE_VERSION}/dist/umd/ffmpeg-core.wasm`;
|
|
*/
|
|
wasmURL?: string;
|
|
/**
|
|
* `ffmpeg-core.worker.js` URL. This worker is spawned when using multithread version of ffmpeg-core.
|
|
*
|
|
* @ref: https://ffmpegwasm.netlify.app/docs/overview#architecture
|
|
* @defaultValue `https://unpkg.com/@ffmpeg/core-mt@${CORE_VERSION}/dist/umd/ffmpeg-core.worker.js`;
|
|
*/
|
|
workerURL?: string;
|
|
/**
|
|
* `ffmpeg.worker.js` URL. This worker is spawned when FFmpeg.load() is called, it is an essential worker and usually you don't need to update this config.
|
|
*
|
|
* @ref: https://ffmpegwasm.netlify.app/docs/overview#architecture
|
|
* @defaultValue `./worker.js`
|
|
*/
|
|
classWorkerURL?: string;
|
|
}
|
|
export interface FFMessageExecData {
|
|
args: string[];
|
|
timeout?: number;
|
|
}
|
|
export interface FFMessageWriteFileData {
|
|
path: FFFSPath;
|
|
data: FileData;
|
|
}
|
|
export interface FFMessageReadFileData {
|
|
path: FFFSPath;
|
|
encoding: string;
|
|
}
|
|
export interface FFMessageDeleteFileData {
|
|
path: FFFSPath;
|
|
}
|
|
export interface FFMessageRenameData {
|
|
oldPath: FFFSPath;
|
|
newPath: FFFSPath;
|
|
}
|
|
export interface FFMessageCreateDirData {
|
|
path: FFFSPath;
|
|
}
|
|
export interface FFMessageListDirData {
|
|
path: FFFSPath;
|
|
}
|
|
/**
|
|
* @remarks
|
|
* Only deletes empty directory.
|
|
*/
|
|
export interface FFMessageDeleteDirData {
|
|
path: FFFSPath;
|
|
}
|
|
export declare enum FFFSType {
|
|
MEMFS = "MEMFS",
|
|
NODEFS = "NODEFS",
|
|
NODERAWFS = "NODERAWFS",
|
|
IDBFS = "IDBFS",
|
|
WORKERFS = "WORKERFS",
|
|
PROXYFS = "PROXYFS"
|
|
}
|
|
export type WorkerFSFileEntry = File;
|
|
export interface WorkerFSBlobEntry {
|
|
name: string;
|
|
data: Blob;
|
|
}
|
|
export interface WorkerFSMountData {
|
|
blobs?: WorkerFSBlobEntry[];
|
|
files?: WorkerFSFileEntry[];
|
|
}
|
|
export type FFFSMountOptions = WorkerFSMountData;
|
|
export interface FFMessageMountData {
|
|
fsType: FFFSType;
|
|
options: FFFSMountOptions;
|
|
mountPoint: FFFSPath;
|
|
}
|
|
export interface FFMessageUnmountData {
|
|
mountPoint: FFFSPath;
|
|
}
|
|
export type FFMessageData = FFMessageLoadConfig | FFMessageExecData | FFMessageWriteFileData | FFMessageReadFileData | FFMessageDeleteFileData | FFMessageRenameData | FFMessageCreateDirData | FFMessageListDirData | FFMessageDeleteDirData | FFMessageMountData | FFMessageUnmountData;
|
|
export interface Message {
|
|
type: string;
|
|
data?: FFMessageData;
|
|
}
|
|
export interface FFMessage extends Message {
|
|
id: number;
|
|
}
|
|
export interface FFMessageEvent extends MessageEvent {
|
|
data: FFMessage;
|
|
}
|
|
export interface LogEvent {
|
|
type: string;
|
|
message: string;
|
|
}
|
|
export interface ProgressEvent {
|
|
progress: number;
|
|
time: number;
|
|
}
|
|
export type ExitCode = number;
|
|
export type ErrorMessage = string;
|
|
export type FileData = Uint8Array | string;
|
|
export type IsFirst = boolean;
|
|
export type OK = boolean;
|
|
export interface FSNode {
|
|
name: string;
|
|
isDir: boolean;
|
|
}
|
|
export type CallbackData = FileData | ExitCode | ErrorMessage | LogEvent | ProgressEvent | IsFirst | OK | Error | FSNode[] | undefined;
|
|
export interface Callbacks {
|
|
[id: number | string]: (data: CallbackData) => void;
|
|
}
|
|
export type LogEventCallback = (event: LogEvent) => void;
|
|
export type ProgressEventCallback = (event: ProgressEvent) => void;
|
|
export interface FFMessageEventCallback {
|
|
data: {
|
|
id: number;
|
|
type: string;
|
|
data: CallbackData;
|
|
};
|
|
}
|