UNPKG

@browsery/fs

Version:

Browser compatible NodeJS fs module

208 lines (199 loc) 3.33 kB
'use strict'; function panic(api) { return function () { throw new Error(`fs.${api} is not implemented in browser`); }; } const fsFuncs = [ 'appendFile', 'appendFileSync', 'access', 'accessSync', 'chown', 'chownSync', 'chmod', 'chmodSync', 'close', 'closeSync', 'copyFile', 'copyFileSync', 'createReadStream', 'createWriteStream', 'exists', 'existsSync', 'fchown', 'fchownSync', 'fchmod', 'fchmodSync', 'fdatasync', 'fdatasyncSync', 'fstat', 'fstatSync', 'fsync', 'fsyncSync', 'ftruncate', 'ftruncateSync', 'futimes', 'futimesSync', 'lchown', 'lchownSync', 'lchmod', 'lchmodSync', 'link', 'linkSync', 'lstat', 'lstatSync', 'mkdir', 'mkdirSync', 'mkdtemp', 'mkdtempSync', 'open', 'openSync', 'opendir', 'opendirSync', 'readdir', 'readdirSync', 'read', 'readSync', 'readFile', 'readFileSync', 'readlink', 'readlinkSync', 'realpath', 'realpathSync', 'rename', 'renameSync', 'rmdir', 'rmdirSync', 'stat', 'statSync', 'symlink', 'symlinkSync', 'truncate', 'truncateSync', 'unwatchFile', 'unlink', 'unlinkSync', 'utimes', 'utimesSync', 'watch', 'watchFile', 'writeFile', 'writeFileSync', 'write', 'writeSync', 'writev', 'writevSync', 'Dir', 'Dirent', 'Stats', 'ReadStream', 'WriteStream', 'FileReadStream', 'FileWriteStream', ]; const promiseFuncs = [ 'access', 'copyFile', 'open', 'opendir', 'rename', 'truncate', 'rmdir', 'mkdir', 'readdir', 'readlink', 'symlink', 'lstat', 'stat', 'link', 'unlink', 'chmod', 'lchmod', 'lchown', 'chown', 'utimes', 'realpath', 'mkdtemp', 'writeFile', 'appendFile', 'readFile', ]; const fs = { F_OK: 0, R_OK: 4, W_OK: 2, X_OK: 1, constants: { UV_FS_SYMLINK_DIR: 1, UV_FS_SYMLINK_JUNCTION: 2, O_RDONLY: 0, O_WRONLY: 1, O_RDWR: 2, UV_DIRENT_UNKNOWN: 0, UV_DIRENT_FILE: 1, UV_DIRENT_DIR: 2, UV_DIRENT_LINK: 3, UV_DIRENT_FIFO: 4, UV_DIRENT_SOCKET: 5, UV_DIRENT_CHAR: 6, UV_DIRENT_BLOCK: 7, S_IFMT: 61440, S_IFREG: 32768, S_IFDIR: 16384, S_IFCHR: 8192, S_IFBLK: 24576, S_IFIFO: 4096, S_IFLNK: 40960, S_IFSOCK: 49152, O_CREAT: 512, O_EXCL: 2048, UV_FS_O_FILEMAP: 0, O_NOCTTY: 131072, O_TRUNC: 1024, O_APPEND: 8, O_DIRECTORY: 1048576, O_NOFOLLOW: 256, O_SYNC: 128, O_DSYNC: 4194304, O_SYMLINK: 2097152, O_NONBLOCK: 4, S_IRWXU: 448, S_IRUSR: 256, S_IWUSR: 128, S_IXUSR: 64, S_IRWXG: 56, S_IRGRP: 32, S_IWGRP: 16, S_IXGRP: 8, S_IRWXO: 7, S_IROTH: 4, S_IWOTH: 2, S_IXOTH: 1, F_OK: 0, R_OK: 4, W_OK: 2, X_OK: 1, UV_FS_COPYFILE_EXCL: 1, COPYFILE_EXCL: 1, UV_FS_COPYFILE_FICLONE: 2, COPYFILE_FICLONE: 2, UV_FS_COPYFILE_FICLONE_FORCE: 4, COPYFILE_FICLONE_FORCE: 4, }, promises: {}, }; let i; let ii; let n; for (i = 0, ii = fsFuncs.length; i < ii; i++) { n = fsFuncs[i]; fs[n] = panic(n); } fs.realpath.native = panic('realpath.native'); fs.realpathSync.native = panic('realpathSync.native'); for (i = 0, ii = promiseFuncs.length; i < ii; i++) { n = promiseFuncs[i]; fs.promises[n] = panic('promises.' + n); } module.exports = fs;