UNPKG

@codesandbox/sandpack-client

Version:

<img style="width:100%" src="https://user-images.githubusercontent.com/4838076/143581035-ebee5ba2-9cb1-4fe8-a05b-2f44bd69bb4b.gif" alt="Component toolkit for live running code editing experiences" />

69 lines (68 loc) 3.68 kB
/// <reference types="node" /> import { FileSystem, BFSOneArgCallback, BFSCallback } from '../core/file_system'; import { FileFlag } from '../core/file_flag'; import { default as Stats } from '../core/node_fs_stats'; import { File } from '../core/file'; /** * This class serializes access to an underlying async filesystem. * For example, on an OverlayFS instance with an async lower * directory operations like rename and rmdir may involve multiple * requests involving both the upper and lower filesystems -- they * are not executed in a single atomic step. OverlayFS uses this * LockedFS to avoid having to reason about the correctness of * multiple requests interleaving. */ export default class LockedFS<T extends FileSystem> implements FileSystem { private _fs; private _mu; constructor(fs: T); getName(): string; getFSUnlocked(): T; diskSpace(p: string, cb: (total: number, free: number) => any): void; isReadOnly(): boolean; supportsLinks(): boolean; supportsProps(): boolean; supportsSynch(): boolean; rename(oldPath: string, newPath: string, cb: BFSOneArgCallback): void; renameSync(oldPath: string, newPath: string): void; stat(p: string, isLstat: boolean, cb: BFSCallback<Stats>): void; statSync(p: string, isLstat: boolean): Stats; open(p: string, flag: FileFlag, mode: number, cb: BFSCallback<File>): void; openSync(p: string, flag: FileFlag, mode: number): File; unlink(p: string, cb: BFSOneArgCallback): void; unlinkSync(p: string): void; rmdir(p: string, cb: BFSOneArgCallback): void; rmdirSync(p: string): void; mkdir(p: string, mode: number, cb: BFSOneArgCallback): void; mkdirSync(p: string, mode: number): void; readdir(p: string, cb: BFSCallback<string[]>): void; readdirSync(p: string): string[]; exists(p: string, cb: (exists: boolean) => void): void; existsSync(p: string): boolean; realpath(p: string, cache: { [path: string]: string; }, cb: BFSCallback<string>): void; realpathSync(p: string, cache: { [path: string]: string; }): string; truncate(p: string, len: number, cb: BFSOneArgCallback): void; truncateSync(p: string, len: number): void; readFile(fname: string, encoding: string, flag: FileFlag, cb: BFSCallback<string | Buffer>): void; readFileSync(fname: string, encoding: string, flag: FileFlag): any; writeFile(fname: string, data: any, encoding: string, flag: FileFlag, mode: number, cb: BFSOneArgCallback): void; writeFileSync(fname: string, data: any, encoding: string, flag: FileFlag, mode: number): void; appendFile(fname: string, data: any, encoding: string, flag: FileFlag, mode: number, cb: BFSOneArgCallback): void; appendFileSync(fname: string, data: any, encoding: string, flag: FileFlag, mode: number): void; chmod(p: string, isLchmod: boolean, mode: number, cb: BFSOneArgCallback): void; chmodSync(p: string, isLchmod: boolean, mode: number): void; chown(p: string, isLchown: boolean, uid: number, gid: number, cb: BFSOneArgCallback): void; chownSync(p: string, isLchown: boolean, uid: number, gid: number): void; utimes(p: string, atime: Date, mtime: Date, cb: BFSOneArgCallback): void; utimesSync(p: string, atime: Date, mtime: Date): void; link(srcpath: string, dstpath: string, cb: BFSOneArgCallback): void; linkSync(srcpath: string, dstpath: string): void; symlink(srcpath: string, dstpath: string, type: string, cb: BFSOneArgCallback): void; symlinkSync(srcpath: string, dstpath: string, type: string): void; readlink(p: string, cb: BFSCallback<string>): void; readlinkSync(p: string): string; }