fuse3.one
Version:
FUSE3 N-API bindings for Node.js - Linux native FUSE3 implementation
72 lines (67 loc) • 3.69 kB
text/typescript
/**
* Common FUSE types shared between Linux and Windows implementations
*/
// Error constants (same as Linux FUSE)
export const EPERM = 1;
export const ENOENT = 2;
export const EIO = 5;
export const EACCES = 13;
export const EEXIST = 17;
export const ENOTDIR = 20;
export const EISDIR = 21;
export const EINVAL = 22;
export const ENOSPC = 28;
export const EROFS = 30;
export const EBUSY = 16;
export const ENOTEMPTY = 39;
export interface Stats {
mtime: Date;
atime: Date;
ctime: Date;
size: number;
mode: number;
uid: number;
gid: number;
nlink?: number;
}
export interface FuseError extends Error {
code: string;
path?: string;
}
export interface FuseOperations {
init?: (cb: (err: number) => void) => void;
error?: (err: Error) => void;
access?: (path: string, mode: number, cb: (err: number) => void) => void;
statfs?: (path: string, cb: (err: number, stat?: any) => void) => void;
getattr?: (path: string, cb: (err: number, stat?: Stats) => void) => void;
fgetattr?: (path: string, fd: number, cb: (err: number, stat?: Stats) => void) => void;
flush?: (path: string, fd: number, cb: (err: number) => void) => void;
fsync?: (path: string, datasync: boolean, fd: number, cb: (err: number) => void) => void;
fsyncdir?: (path: string, datasync: boolean, fd: number, cb: (err: number) => void) => void;
readdir?: (path: string, cb: (err: number, files?: string[], stats?: Stats[]) => void) => void;
truncate?: (path: string, size: number, cb: (err: number) => void) => void;
ftruncate?: (path: string, fd: number, size: number, cb: (err: number) => void) => void;
readlink?: (path: string, cb: (err: number, linkString?: string) => void) => void;
chown?: (path: string, uid: number, gid: number, cb: (err: number) => void) => void;
chmod?: (path: string, mode: number, cb: (err: number) => void) => void;
mknod?: (path: string, mode: number, dev: number, cb: (err: number) => void) => void;
setxattr?: (path: string, name: string, value: Buffer, size: number, flags: number, cb: (err: number) => void) => void;
getxattr?: (path: string, name: string, cb: (err: number, value?: Buffer) => void) => void;
listxattr?: (path: string, cb: (err: number, list?: string[]) => void) => void;
removexattr?: (path: string, name: string, cb: (err: number) => void) => void;
open?: (path: string, flags: number, cb: (err: number, fd?: number) => void) => void;
opendir?: (path: string, flags: number, cb: (err: number, fd?: number) => void) => void;
read?: (path: string, fd: number, buffer: Buffer, length: number, position: number, cb: (err: number, bytesRead?: number) => void) => void;
write?: (path: string, fd: number, buffer: Buffer, length: number, position: number, cb: (err: number, bytesWritten?: number) => void) => void;
release?: (path: string, fd: number, cb: (err: number) => void) => void;
releasedir?: (path: string, fd: number, cb: (err: number) => void) => void;
create?: (path: string, mode: number, cb: (err: number, fd?: number) => void) => void;
utimens?: (path: string, atime: number, mtime: number, cb: (err: number) => void) => void;
unlink?: (path: string, cb: (err: number) => void) => void;
rename?: (src: string, dest: string, cb: (err: number) => void) => void;
link?: (src: string, dest: string, cb: (err: number) => void) => void;
symlink?: (src: string, dest: string, cb: (err: number) => void) => void;
mkdir?: (path: string, mode: number, cb: (err: number) => void) => void;
rmdir?: (path: string, cb: (err: number) => void) => void;
}
export type OPERATIONS = Required<FuseOperations>;