Add coexistence checks to all enqueue methods to prevent loading both React and Grid.js assets simultaneously. Changes: - ReactAdmin.php: Only enqueue React assets when ?react=1 - Init.php: Skip Grid.js when React active on admin pages - Form.php, Coupon.php, Access.php: Restore classic assets when ?react=0 - Customer.php, Product.php, License.php: Add coexistence checks Now the toggle between Classic and React versions works correctly. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
990 lines
21 KiB
Markdown
990 lines
21 KiB
Markdown
# bare-fs
|
|
|
|
Native file system operations for Bare. The API closely follows that of the Node.js `fs` module.
|
|
|
|
```
|
|
npm i bare-fs
|
|
```
|
|
|
|
## Usage
|
|
|
|
```js
|
|
const fs = require('bare-fs')
|
|
|
|
const fd = await fs.open('hello.txt')
|
|
|
|
const buffer = Buffer.alloc(1024)
|
|
|
|
try {
|
|
const length = await fs.read(fd, buffer)
|
|
|
|
console.log('Read', length, 'bytes')
|
|
} finally {
|
|
await fs.close(fd)
|
|
}
|
|
```
|
|
|
|
## API
|
|
|
|
#### `const fd = await fs.open(filepath[, flags[, mode]])`
|
|
|
|
Open a file, returning a file descriptor. `flags` defaults to `'r'` and `mode` defaults to `0o666`. `flags` may be a string such as `'r'`, `'w'`, `'a'`, `'r+'`, etc., or a numeric combination of `fs.constants` flags.
|
|
|
|
#### `fs.open(filepath[, flags[, mode]], callback)`
|
|
|
|
Callback version of `fs.open()`.
|
|
|
|
#### `const fd = fs.openSync(filepath[, flags[, mode]])`
|
|
|
|
Synchronous version of `fs.open()`.
|
|
|
|
#### `await fs.close(fd)`
|
|
|
|
Close a file descriptor.
|
|
|
|
#### `fs.close(fd, callback)`
|
|
|
|
Callback version of `fs.close()`.
|
|
|
|
#### `fs.closeSync(fd)`
|
|
|
|
Synchronous version of `fs.close()`.
|
|
|
|
#### `await fs.access(filepath[, mode])`
|
|
|
|
Check whether the file at `filepath` is accessible. `mode` defaults to `fs.constants.F_OK`.
|
|
|
|
#### `fs.access(filepath[, mode], callback)`
|
|
|
|
Callback version of `fs.access()`.
|
|
|
|
#### `fs.accessSync(filepath[, mode])`
|
|
|
|
Synchronous version of `fs.access()`.
|
|
|
|
#### `const exists = await fs.exists(filepath)`
|
|
|
|
Check whether a file exists at `filepath`. Returns `true` if the file is accessible, `false` otherwise.
|
|
|
|
#### `fs.exists(filepath, callback)`
|
|
|
|
Callback version of `fs.exists()`.
|
|
|
|
#### `const exists = fs.existsSync(filepath)`
|
|
|
|
Synchronous version of `fs.exists()`.
|
|
|
|
#### `const bytesRead = await fs.read(fd, buffer[, offset[, len[, pos]]])`
|
|
|
|
Read from a file descriptor into `buffer`. `offset` defaults to `0`, `len` defaults to `buffer.byteLength - offset`, and `pos` defaults to `-1` (current position). Returns the number of bytes read.
|
|
|
|
#### `fs.read(fd, buffer[, offset[, len[, pos]]], callback)`
|
|
|
|
Callback version of `fs.read()`.
|
|
|
|
#### `const bytesRead = fs.readSync(fd, buffer[, offset[, len[, pos]]])`
|
|
|
|
Synchronous version of `fs.read()`.
|
|
|
|
#### `const bytesRead = await fs.readv(fd, buffers[, pos])`
|
|
|
|
Read from a file descriptor into an array of `buffers`. `pos` defaults to `-1`.
|
|
|
|
#### `fs.readv(fd, buffers[, pos], callback)`
|
|
|
|
Callback version of `fs.readv()`.
|
|
|
|
#### `const bytesRead = fs.readvSync(fd, buffers[, pos])`
|
|
|
|
Synchronous version of `fs.readv()`.
|
|
|
|
#### `const bytesWritten = await fs.write(fd, data[, offset[, len[, pos]]])`
|
|
|
|
Write `data` to a file descriptor. When `data` is a string, the signature is `fs.write(fd, data[, pos[, encoding]])` where `encoding` defaults to `'utf8'`. Returns the number of bytes written.
|
|
|
|
#### `fs.write(fd, data[, offset[, len[, pos]]], callback)`
|
|
|
|
Callback version of `fs.write()`.
|
|
|
|
#### `const bytesWritten = fs.writeSync(fd, data[, offset[, len[, pos]]])`
|
|
|
|
Synchronous version of `fs.write()`.
|
|
|
|
#### `const bytesWritten = await fs.writev(fd, buffers[, pos])`
|
|
|
|
Write an array of `buffers` to a file descriptor. `pos` defaults to `-1`.
|
|
|
|
#### `fs.writev(fd, buffers[, pos], callback)`
|
|
|
|
Callback version of `fs.writev()`.
|
|
|
|
#### `const bytesWritten = fs.writevSync(fd, buffers[, pos])`
|
|
|
|
Synchronous version of `fs.writev()`.
|
|
|
|
#### `const stats = await fs.stat(filepath)`
|
|
|
|
Get the status of a file. Returns a `Stats` object.
|
|
|
|
#### `fs.stat(filepath, callback)`
|
|
|
|
Callback version of `fs.stat()`.
|
|
|
|
#### `const stats = fs.statSync(filepath)`
|
|
|
|
Synchronous version of `fs.stat()`.
|
|
|
|
#### `const stats = await fs.lstat(filepath)`
|
|
|
|
Like `fs.stat()`, but if `filepath` is a symbolic link, the link itself is statted, not the file it refers to.
|
|
|
|
#### `fs.lstat(filepath, callback)`
|
|
|
|
Callback version of `fs.lstat()`.
|
|
|
|
#### `const stats = fs.lstatSync(filepath)`
|
|
|
|
Synchronous version of `fs.lstat()`.
|
|
|
|
#### `const stats = await fs.fstat(fd)`
|
|
|
|
Get the status of a file by its file descriptor. Returns a `Stats` object.
|
|
|
|
#### `fs.fstat(fd, callback)`
|
|
|
|
Callback version of `fs.fstat()`.
|
|
|
|
#### `const stats = fs.fstatSync(fd)`
|
|
|
|
Synchronous version of `fs.fstat()`.
|
|
|
|
#### `const stats = await fs.statfs(filepath)`
|
|
|
|
Get filesystem statistics. Returns a `StatFs` object.
|
|
|
|
#### `fs.statfs(filepath, callback)`
|
|
|
|
Callback version of `fs.statfs()`.
|
|
|
|
#### `const stats = fs.statfsSync(filepath)`
|
|
|
|
Synchronous version of `fs.statfs()`.
|
|
|
|
#### `await fs.ftruncate(fd[, len])`
|
|
|
|
Truncate a file to `len` bytes. `len` defaults to `0`.
|
|
|
|
#### `fs.ftruncate(fd[, len], callback)`
|
|
|
|
Callback version of `fs.ftruncate()`.
|
|
|
|
#### `fs.ftruncateSync(fd[, len])`
|
|
|
|
Synchronous version of `fs.ftruncate()`.
|
|
|
|
#### `await fs.chmod(filepath, mode)`
|
|
|
|
Change the permissions of a file. `mode` may be a numeric mode or a string that will be parsed as octal.
|
|
|
|
#### `fs.chmod(filepath, mode, callback)`
|
|
|
|
Callback version of `fs.chmod()`.
|
|
|
|
#### `fs.chmodSync(filepath, mode)`
|
|
|
|
Synchronous version of `fs.chmod()`.
|
|
|
|
#### `await fs.fchmod(fd, mode)`
|
|
|
|
Change the permissions of a file by its file descriptor.
|
|
|
|
#### `fs.fchmod(fd, mode, callback)`
|
|
|
|
Callback version of `fs.fchmod()`.
|
|
|
|
#### `fs.fchmodSync(fd, mode)`
|
|
|
|
Synchronous version of `fs.fchmod()`.
|
|
|
|
#### `await fs.chown(filepath, uid, gid)`
|
|
|
|
Change the owner and group of a file.
|
|
|
|
**NOTE**: The `chown` functions are not implemented on Windows.
|
|
|
|
#### `fs.chown(filepath, uid, gid, callback)`
|
|
|
|
Callback version of `fs.chown()`.
|
|
|
|
#### `await fs.chownSync(filepath, uid, gid)`
|
|
|
|
Synchronous version of `fs.chown()`.
|
|
|
|
#### `await fs.lchown(filepath, uid, gid)`
|
|
|
|
Change the owner and group of a file, but if `filepath` is a symbolic link, the changes are applied only to the link, not the file it refers to.
|
|
|
|
#### `fs.lchown(filepath, uid, gid, callback)`
|
|
|
|
Callback version of `fs.lchown()`.
|
|
|
|
#### `fs.lchownSync(filepath, uid, gid)`
|
|
|
|
Synchronous version of `fs.lchown()`.
|
|
|
|
#### `await fs.fchown(filepath, uid, gid)`
|
|
|
|
Change the owner and group of a file by its file descriptor.
|
|
|
|
#### `fs.fchown(filepath, uid, gid, callback)`
|
|
|
|
Callback version of `fs.fchown()`.
|
|
|
|
#### `fs.fchownSync(filepath, uid, gid)`
|
|
|
|
Synchronous version of `fs.fchown()`.
|
|
|
|
#### `await fs.utimes(filepath, atime, mtime)`
|
|
|
|
Change the access and modification times of a file. Times may be numbers (seconds since epoch) or `Date` objects.
|
|
|
|
#### `fs.utimes(filepath, atime, mtime, callback)`
|
|
|
|
Callback version of `fs.utimes()`.
|
|
|
|
#### `fs.utimesSync(filepath, atime, mtime)`
|
|
|
|
Synchronous version of `fs.utimes()`.
|
|
|
|
#### `await fs.lutimes(filepath, atime, mtime)`
|
|
|
|
Like `fs.utimes()`, but if `filepath` is a symbolic link, the timestamps of the link is changed, not the file it refers to.
|
|
|
|
#### `fs.lutimes(filepath, atime, mtime, callback)`
|
|
|
|
Callback version of `fs.lutimes()`.
|
|
|
|
#### `fs.lutimesSync(filepath, atime, mtime)`
|
|
|
|
Synchronous version of `fs.lutimes()`.
|
|
|
|
#### `await fs.futimes(fd, atime, mtime)`
|
|
|
|
Change the access and modification times of a file by its file descriptor. Times may be numbers (seconds since epoch) or `Date` objects.
|
|
|
|
#### `fs.futimes(fd, atime, mtime, callback)`
|
|
|
|
Callback version of `fs.futimes()`.
|
|
|
|
#### `fs.futimesSync(fd, atime, mtime)`
|
|
|
|
Synchronous version of `fs.futimes()`.
|
|
|
|
#### `await fs.link(src, dst)`
|
|
|
|
Creates a new link (also known as a hard link) to an existing file.
|
|
|
|
#### `fs.link(src, dst, callback)`
|
|
|
|
Callback version of `fs.link()`.
|
|
|
|
#### `fs.linkSync(src, dst)`
|
|
|
|
Synchronous version of `fs.link()`.
|
|
|
|
#### `await fs.mkdir(filepath[, opts])`
|
|
|
|
Create a directory at `filepath`.
|
|
|
|
Options include:
|
|
|
|
```js
|
|
options = {
|
|
mode: 0o777,
|
|
recursive: false
|
|
}
|
|
```
|
|
|
|
If `opts` is a number, it is treated as the `mode`. When `recursive` is `true`, parent directories are created as needed.
|
|
|
|
#### `fs.mkdir(filepath[, opts], callback)`
|
|
|
|
Callback version of `fs.mkdir()`.
|
|
|
|
#### `fs.mkdirSync(filepath[, opts])`
|
|
|
|
Synchronous version of `fs.mkdir()`.
|
|
|
|
#### `const path = await fs.mkdtemp(prefix)`
|
|
|
|
Create a unique temporary directory.
|
|
|
|
#### `fs.mkdtemp(prefix, callback)`
|
|
|
|
Callback version of `fs.mkdtemp()`.
|
|
|
|
#### `const path = fs.mkdtempSync(prefix)`
|
|
|
|
Synchronous version of `fs.mkdtemp()`.
|
|
|
|
#### `await fs.rmdir(filepath)`
|
|
|
|
Remove an empty directory.
|
|
|
|
#### `fs.rmdir(filepath, callback)`
|
|
|
|
Callback version of `fs.rmdir()`.
|
|
|
|
#### `fs.rmdirSync(filepath)`
|
|
|
|
Synchronous version of `fs.rmdir()`.
|
|
|
|
#### `await fs.rm(filepath[, opts])`
|
|
|
|
Remove a file or directory at `filepath`.
|
|
|
|
Options include:
|
|
|
|
```js
|
|
options = {
|
|
force: false,
|
|
recursive: false
|
|
}
|
|
```
|
|
|
|
When `recursive` is `true`, directories are removed along with their contents. When `force` is `true`, no error is thrown if `filepath` does not exist.
|
|
|
|
#### `fs.rm(filepath[, opts], callback)`
|
|
|
|
Callback version of `fs.rm()`.
|
|
|
|
#### `fs.rmSync(filepath[, opts])`
|
|
|
|
Synchronous version of `fs.rm()`.
|
|
|
|
#### `await fs.unlink(filepath)`
|
|
|
|
Remove a file.
|
|
|
|
#### `fs.unlink(filepath, callback)`
|
|
|
|
Callback version of `fs.unlink()`.
|
|
|
|
#### `fs.unlinkSync(filepath)`
|
|
|
|
Synchronous version of `fs.unlink()`.
|
|
|
|
#### `await fs.rename(src, dst)`
|
|
|
|
Rename a file from `src` to `dst`.
|
|
|
|
#### `fs.rename(src, dst, callback)`
|
|
|
|
Callback version of `fs.rename()`.
|
|
|
|
#### `fs.renameSync(src, dst)`
|
|
|
|
Synchronous version of `fs.rename()`.
|
|
|
|
#### `await fs.copyFile(src, dst[, mode])`
|
|
|
|
Copy a file from `src` to `dst`. `mode` is an optional bitmask created from `fs.constants.COPYFILE_EXCL`, `fs.constants.COPYFILE_FICLONE`, or `fs.constants.COPYFILE_FICLONE_FORCE`.
|
|
|
|
#### `fs.copyFile(src, dst[, mode], callback)`
|
|
|
|
Callback version of `fs.copyFile()`.
|
|
|
|
#### `fs.copyFileSync(src, dst[, mode])`
|
|
|
|
Synchronous version of `fs.copyFile()`.
|
|
|
|
#### `await fs.cp(src, dst[, opts])`
|
|
|
|
Copy a file or directory from `src` to `dst`.
|
|
|
|
Options include:
|
|
|
|
```js
|
|
options = {
|
|
recursive: false
|
|
}
|
|
```
|
|
|
|
Set `recursive` to `true` to copy directories and their contents. Files are copied preserving their permissions.
|
|
|
|
#### `fs.cp(src, dst[, opts], callback)`
|
|
|
|
Callback version of `fs.cp()`.
|
|
|
|
#### `fs.cpSync(src, dst[, opts])`
|
|
|
|
Synchronous version of `fs.cp()`.
|
|
|
|
#### `const resolved = await fs.realpath(filepath[, opts])`
|
|
|
|
Resolve the real path of `filepath`, expanding all symbolic links.
|
|
|
|
Options include:
|
|
|
|
```js
|
|
options = {
|
|
encoding: 'utf8'
|
|
}
|
|
```
|
|
|
|
Set `encoding` to `'buffer'` to receive the result as a `Buffer`.
|
|
|
|
#### `fs.realpath(filepath[, opts], callback)`
|
|
|
|
Callback version of `fs.realpath()`.
|
|
|
|
#### `const resolved = fs.realpathSync(filepath[, opts])`
|
|
|
|
Synchronous version of `fs.realpath()`.
|
|
|
|
#### `const target = await fs.readlink(filepath[, opts])`
|
|
|
|
Read the target of a symbolic link.
|
|
|
|
Options include:
|
|
|
|
```js
|
|
options = {
|
|
encoding: 'utf8'
|
|
}
|
|
```
|
|
|
|
#### `fs.readlink(filepath[, opts], callback)`
|
|
|
|
Callback version of `fs.readlink()`.
|
|
|
|
#### `const target = fs.readlinkSync(filepath[, opts])`
|
|
|
|
Synchronous version of `fs.readlink()`.
|
|
|
|
#### `await fs.truncate(filename[, len])`
|
|
|
|
Truncate the file at `filename` to `len` bytes. `len` defaults to `0`.
|
|
|
|
#### `fs.truncate(filename[, len], callback)`
|
|
|
|
Callback version of `fs.truncate()`.
|
|
|
|
#### `fs.truncateSync(filename[, len])`
|
|
|
|
Synchronous version of `fs.truncate()`.
|
|
|
|
#### `await fs.symlink(target, filepath[, type])`
|
|
|
|
Create a symbolic link at `filepath` pointing to `target`. `type` may be `'file'`, `'dir'`, or `'junction'` (Windows only) or a numeric flag. On Windows, if `type` is not provided, it is inferred from the target.
|
|
|
|
#### `fs.symlink(target, filepath[, type], callback)`
|
|
|
|
Callback version of `fs.symlink()`.
|
|
|
|
#### `fs.symlinkSync(target, filepath[, type])`
|
|
|
|
Synchronous version of `fs.symlink()`.
|
|
|
|
#### `await fs.fsync(fd)`
|
|
|
|
Flush all modified in-core data of the file referred by its file descriptor to the disk device.
|
|
|
|
#### `fs.fsync(fs, callback)`
|
|
|
|
Callback version of `fs.fsync()`.
|
|
|
|
#### `fs.fsyncSync(fd)`
|
|
|
|
Synchronous version of `fs.fsync()`.
|
|
|
|
#### `await fs.fdatasync(fd)`
|
|
|
|
Similar to `fsync`, but does not flush modified metadata unless necessary.
|
|
|
|
#### `fs.fdatasync(fs, callback)`
|
|
|
|
Callback version of `fs.fdatasync()`.
|
|
|
|
#### `fs.fdatasyncSync(fd)`
|
|
|
|
Synchronous version of `fs.fdatasync()`.
|
|
|
|
#### `const dir = await fs.opendir(filepath[, opts])`
|
|
|
|
Open a directory for iteration. Returns a `Dir` object.
|
|
|
|
Options include:
|
|
|
|
```js
|
|
options = {
|
|
encoding: 'utf8',
|
|
bufferSize: 32
|
|
}
|
|
```
|
|
|
|
#### `fs.opendir(filepath[, opts], callback)`
|
|
|
|
Callback version of `fs.opendir()`.
|
|
|
|
#### `const dir = fs.opendirSync(filepath[, opts])`
|
|
|
|
Synchronous version of `fs.opendir()`.
|
|
|
|
#### `const entries = await fs.readdir(filepath[, opts])`
|
|
|
|
Read the contents of a directory. Returns an array of filenames or, if `withFileTypes` is `true`, an array of `Dirent` objects.
|
|
|
|
Options include:
|
|
|
|
```js
|
|
options = {
|
|
encoding: 'utf8',
|
|
withFileTypes: false,
|
|
recursive: false
|
|
}
|
|
```
|
|
|
|
#### `fs.readdir(filepath[, opts], callback)`
|
|
|
|
Callback version of `fs.readdir()`.
|
|
|
|
#### `const entries = fs.readdirSync(filepath[, opts])`
|
|
|
|
Synchronous version of `fs.readdir()`.
|
|
|
|
#### `const data = await fs.readFile(filepath[, opts])`
|
|
|
|
Read the entire contents of a file. Returns a `Buffer` by default, or a string if an `encoding` is specified.
|
|
|
|
Options include:
|
|
|
|
```js
|
|
options = {
|
|
encoding: 'buffer',
|
|
flag: 'r'
|
|
}
|
|
```
|
|
|
|
#### `fs.readFile(filepath[, opts], callback)`
|
|
|
|
Callback version of `fs.readFile()`.
|
|
|
|
#### `const data = fs.readFileSync(filepath[, opts])`
|
|
|
|
Synchronous version of `fs.readFile()`.
|
|
|
|
#### `await fs.writeFile(filepath, data[, opts])`
|
|
|
|
Write `data` to a file, replacing it if it already exists.
|
|
|
|
Options include:
|
|
|
|
```js
|
|
options = {
|
|
encoding: 'utf8',
|
|
flag: 'w',
|
|
mode: 0o666
|
|
}
|
|
```
|
|
|
|
#### `fs.writeFile(filepath, data[, opts], callback)`
|
|
|
|
Callback version of `fs.writeFile()`.
|
|
|
|
#### `fs.writeFileSync(filepath, data[, opts])`
|
|
|
|
Synchronous version of `fs.writeFile()`.
|
|
|
|
#### `await fs.appendFile(filepath, data[, opts])`
|
|
|
|
Append `data` to a file, creating it if it does not exist. Accepts the same options as `fs.writeFile()` but defaults to the `'a'` flag.
|
|
|
|
#### `fs.appendFile(filepath, data[, opts], callback)`
|
|
|
|
Callback version of `fs.appendFile()`.
|
|
|
|
#### `fs.appendFileSync(filepath, data[, opts])`
|
|
|
|
Synchronous version of `fs.appendFile()`.
|
|
|
|
#### `const watcher = fs.watch(filepath[, opts], callback)`
|
|
|
|
Watch a file or directory for changes. Returns a `Watcher` object. The `callback`, if provided, is called with `(eventType, filename)` on each change.
|
|
|
|
Options include:
|
|
|
|
```js
|
|
options = {
|
|
persistent: true,
|
|
recursive: false,
|
|
encoding: 'utf8'
|
|
}
|
|
```
|
|
|
|
#### `const stream = fs.createReadStream(path[, opts])`
|
|
|
|
Create a readable stream for a file. Returns a `ReadStream`.
|
|
|
|
Options include:
|
|
|
|
```js
|
|
options = {
|
|
fd: -1,
|
|
flags: 'r',
|
|
mode: 0o666,
|
|
start: 0,
|
|
end: Infinity
|
|
}
|
|
```
|
|
|
|
If `fd` is provided, `path` may be `null` and the stream reads from the given file descriptor.
|
|
|
|
#### `const stream = fs.createWriteStream(path[, opts])`
|
|
|
|
Create a writable stream for a file. Returns a `WriteStream`.
|
|
|
|
Options include:
|
|
|
|
```js
|
|
options = {
|
|
fd: -1,
|
|
flags: 'w',
|
|
mode: 0o666
|
|
}
|
|
```
|
|
|
|
If `fd` is provided, `path` may be `null` and the stream writes to the given file descriptor.
|
|
|
|
#### `fs.constants`
|
|
|
|
An object containing file system constants. See `fs/constants` for the full list. Commonly used constants include:
|
|
|
|
- `fs.constants.O_RDONLY`, `fs.constants.O_WRONLY`, `fs.constants.O_RDWR` — file access flags
|
|
- `fs.constants.O_CREAT`, `fs.constants.O_TRUNC`, `fs.constants.O_APPEND` — file creation flags
|
|
- `fs.constants.F_OK`, `fs.constants.R_OK`, `fs.constants.W_OK`, `fs.constants.X_OK` — file accessibility flags
|
|
- `fs.constants.S_IFMT`, `fs.constants.S_IFREG`, `fs.constants.S_IFDIR`, `fs.constants.S_IFLNK` — file type flags
|
|
- `fs.constants.COPYFILE_EXCL`, `fs.constants.COPYFILE_FICLONE`, `fs.constants.COPYFILE_FICLONE_FORCE` — copy flags
|
|
|
|
### `Stats`
|
|
|
|
Returned by `fs.stat()`, `fs.lstat()`, and `fs.fstat()`.
|
|
|
|
#### `stats.dev`
|
|
|
|
The device identifier.
|
|
|
|
#### `stats.mode`
|
|
|
|
The file mode (type and permissions).
|
|
|
|
#### `stats.nlink`
|
|
|
|
The number of hard links.
|
|
|
|
#### `stats.uid`
|
|
|
|
The user identifier of the file owner.
|
|
|
|
#### `stats.gid`
|
|
|
|
The group identifier of the file owner.
|
|
|
|
#### `stats.rdev`
|
|
|
|
The device identifier for special files.
|
|
|
|
#### `stats.blksize`
|
|
|
|
The file system block size for I/O operations.
|
|
|
|
#### `stats.ino`
|
|
|
|
The inode number.
|
|
|
|
#### `stats.size`
|
|
|
|
The size of the file in bytes.
|
|
|
|
#### `stats.blocks`
|
|
|
|
The number of 512-byte blocks allocated.
|
|
|
|
#### `stats.atimeMs`
|
|
|
|
The access time in milliseconds since the epoch.
|
|
|
|
#### `stats.mtimeMs`
|
|
|
|
The modification time in milliseconds since the epoch.
|
|
|
|
#### `stats.ctimeMs`
|
|
|
|
The change time in milliseconds since the epoch.
|
|
|
|
#### `stats.birthtimeMs`
|
|
|
|
The creation time in milliseconds since the epoch.
|
|
|
|
#### `stats.atime`
|
|
|
|
The access time as a `Date` object.
|
|
|
|
#### `stats.mtime`
|
|
|
|
The modification time as a `Date` object.
|
|
|
|
#### `stats.ctime`
|
|
|
|
The change time as a `Date` object.
|
|
|
|
#### `stats.birthtime`
|
|
|
|
The creation time as a `Date` object.
|
|
|
|
#### `stats.isDirectory()`
|
|
|
|
Returns `true` if the file is a directory.
|
|
|
|
#### `stats.isFile()`
|
|
|
|
Returns `true` if the file is a regular file.
|
|
|
|
#### `stats.isBlockDevice()`
|
|
|
|
Returns `true` if the file is a block device.
|
|
|
|
#### `stats.isCharacterDevice()`
|
|
|
|
Returns `true` if the file is a character device.
|
|
|
|
#### `stats.isFIFO()`
|
|
|
|
Returns `true` if the file is a FIFO (named pipe).
|
|
|
|
#### `stats.isSymbolicLink()`
|
|
|
|
Returns `true` if the file is a symbolic link. Only meaningful when using `fs.lstat()`.
|
|
|
|
#### `stats.isSocket()`
|
|
|
|
Returns `true` if the file is a socket.
|
|
|
|
### `Dir`
|
|
|
|
Returned by `fs.opendir()`. Supports both synchronous and asynchronous iteration.
|
|
|
|
#### `dir.path`
|
|
|
|
The path of the directory.
|
|
|
|
#### `const dirent = await dir.read()`
|
|
|
|
Read the next directory entry. Returns a `Dirent` or `null` when all entries have been read.
|
|
|
|
#### `dir.read(callback)`
|
|
|
|
Callback version of `dir.read()`.
|
|
|
|
#### `const dirent = dir.readSync()`
|
|
|
|
Synchronous version of `dir.read()`.
|
|
|
|
#### `await dir.close()`
|
|
|
|
Close the directory handle.
|
|
|
|
#### `dir.close(callback)`
|
|
|
|
Callback version of `dir.close()`.
|
|
|
|
#### `dir.closeSync()`
|
|
|
|
Synchronous version of `dir.close()`.
|
|
|
|
### `Dirent`
|
|
|
|
Represents a directory entry, returned when iterating a `Dir` or using `fs.readdir()` with `withFileTypes: true`.
|
|
|
|
#### `dirent.parentPath`
|
|
|
|
The path of the parent directory.
|
|
|
|
#### `dirent.name`
|
|
|
|
The name of the directory entry, as a string or `Buffer` depending on the encoding.
|
|
|
|
#### `dirent.type`
|
|
|
|
The numeric type of the directory entry.
|
|
|
|
#### `dirent.isFile()`
|
|
|
|
Returns `true` if the entry is a regular file.
|
|
|
|
#### `dirent.isDirectory()`
|
|
|
|
Returns `true` if the entry is a directory.
|
|
|
|
#### `dirent.isSymbolicLink()`
|
|
|
|
Returns `true` if the entry is a symbolic link.
|
|
|
|
#### `dirent.isFIFO()`
|
|
|
|
Returns `true` if the entry is a FIFO.
|
|
|
|
#### `dirent.isSocket()`
|
|
|
|
Returns `true` if the entry is a socket.
|
|
|
|
#### `dirent.isCharacterDevice()`
|
|
|
|
Returns `true` if the entry is a character device.
|
|
|
|
#### `dirent.isBlockDevice()`
|
|
|
|
Returns `true` if the entry is a block device.
|
|
|
|
### `ReadStream`
|
|
|
|
A readable stream for file data, created by `fs.createReadStream()`. Extends `Readable` from <https://github.com/holepunchto/bare-stream>.
|
|
|
|
#### `stream.path`
|
|
|
|
The file path, or `null` if opened by file descriptor.
|
|
|
|
#### `stream.fd`
|
|
|
|
The underlying file descriptor.
|
|
|
|
#### `stream.flags`
|
|
|
|
The flags the file was opened with.
|
|
|
|
#### `stream.mode`
|
|
|
|
The mode the file was opened with.
|
|
|
|
### `WriteStream`
|
|
|
|
A writable stream for file data, created by `fs.createWriteStream()`. Extends `Writable` from <https://github.com/holepunchto/bare-stream>.
|
|
|
|
#### `stream.path`
|
|
|
|
The file path, or `null` if opened by file descriptor.
|
|
|
|
#### `stream.fd`
|
|
|
|
The underlying file descriptor.
|
|
|
|
#### `stream.flags`
|
|
|
|
The flags the file was opened with.
|
|
|
|
#### `stream.mode`
|
|
|
|
The mode the file was opened with.
|
|
|
|
### `Watcher`
|
|
|
|
Watches for file system changes, created by `fs.watch()`. Extends `EventEmitter` from <https://github.com/holepunchto/bare-events>.
|
|
|
|
#### `watcher.close()`
|
|
|
|
Stop watching for changes.
|
|
|
|
#### `watcher.ref()`
|
|
|
|
Prevent the event loop from exiting while the watcher is active.
|
|
|
|
#### `watcher.unref()`
|
|
|
|
Allow the event loop to exit even if the watcher is still active.
|
|
|
|
#### `event: 'change'`
|
|
|
|
Emitted with `(eventType, filename)` when a change is detected. `eventType` is either `'rename'` or `'change'`.
|
|
|
|
#### `event: 'error'`
|
|
|
|
Emitted with `(err)` when an error occurs.
|
|
|
|
#### `event: 'close'`
|
|
|
|
Emitted when the watcher is closed.
|
|
|
|
### `FileHandle`
|
|
|
|
Returned by `require('bare-fs/promises').open()`. Provides an object-oriented API for working with file descriptors.
|
|
|
|
#### `await handle.close()`
|
|
|
|
Close the file handle.
|
|
|
|
#### `const { bytesRead, buffer } = await handle.read(buffer[, offset[, len[, pos]]])`
|
|
|
|
Read from the file into `buffer`.
|
|
|
|
#### `const { bytesRead, buffers } = await handle.readv(buffers[, pos])`
|
|
|
|
Read from the file into an array of `buffers`.
|
|
|
|
#### `const { bytesWritten, buffer } = await handle.write(data[, offset[, len[, pos]]])`
|
|
|
|
Write `data` to the file.
|
|
|
|
#### `const { bytesWritten, buffers } = await handle.writev(buffers[, pos])`
|
|
|
|
Write an array of `buffers` to the file.
|
|
|
|
#### `const stats = await handle.stat()`
|
|
|
|
Get the status of the file.
|
|
|
|
#### `await handle.chmod(mode)`
|
|
|
|
Change the permissions of the file.
|
|
|
|
#### `await handle.chown(uid, gid)`
|
|
|
|
Change the owner and group of the file.
|
|
|
|
**NOTE**: This function is not implemented on Windows.
|
|
|
|
#### `await handle.datasync()`
|
|
|
|
Similar to `fsync`, but does not flush modified metadata unless necessary.
|
|
|
|
#### `await handle.sync()`
|
|
|
|
Flush all modified in-core data of the file.
|
|
|
|
#### `await handle.truncate(len)`
|
|
|
|
Truncate the file.
|
|
|
|
#### `await handle.utimes(mode)`
|
|
|
|
Change the access and modification times of the file.
|
|
|
|
#### `const stream = handle.createReadStream([opts])`
|
|
|
|
Create a readable stream for the file.
|
|
|
|
#### `const stream = handle.createWriteStream([opts])`
|
|
|
|
Create a writable stream for the file.
|
|
|
|
#### `handle.fd`
|
|
|
|
The file descriptor number.
|
|
|
|
#### `event: 'close'`
|
|
|
|
Emitted when the file handle is closed.
|
|
|
|
## License
|
|
|
|
Apache-2.0
|