https://github.com/devxprite/filewrite
A Promise-based utility package for writing data to a file in Node.js.
https://github.com/devxprite/filewrite
file filesystem node promise write
Last synced: 4 months ago
JSON representation
A Promise-based utility package for writing data to a file in Node.js.
- Host: GitHub
- URL: https://github.com/devxprite/filewrite
- Owner: devxprite
- License: mit
- Created: 2022-08-05T03:49:03.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-12-25T15:35:24.000Z (over 2 years ago)
- Last Synced: 2025-02-02T08:31:49.104Z (5 months ago)
- Topics: file, filesystem, node, promise, write
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/file-write
- Size: 111 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# fileWrite
Its a simple and flexible way to write data to a file in Node.js. It provides a number of options to customize the way data is written to the file, including the ability to overwrite or append to the file, write data synchronously or asynchronously.
## Installation
To install `file-write`, run the following command in your project directory:
```bash
npm i file-write
```## Usage
To use it in EJS module, import the `fileWrite` function using the `import` syntax:
```javascript
import fileWrite from 'file-write';fileWrite('path/to/file.txt', 'Test data');
```To use it in a CJS module, require it in your project:
```javascript
const fileWrite = require('file-write');fileWrite('path/to/file.txt', 'Test data');
```## Options
The `filewrite` function accepts the following options:
### `options.encoding`
**Type:** `string`
**Default:** `utf8`The encoding to use when writing the file. All valid [Node.js encodings](https://nodejs.org/api/buffer.html#buffer_buffers_and_character_encodings) are supported.
```javascript
fileWrite('path/to/file.txt', 'Test data', {
encoding: 'utf8'
});
```### `options.overwrite`
**Type:** `boolean`
**Default:** `true`If set to `true`, the file will be overwritten with the new data. If set to `false`, the data will be appended to the file.
```javascript
// Overwrite the file with new data
await fileWrite('path/to/file.txt', 'Test data', {
overwrite: true
});// Append data to the file
await fileWrite('path/to/file.txt', 'Appended data', {
overwrite: false
});
```### `options.async`
**Type:** `boolean`
**Default:** `true`If set to `true`, the data will be written asynchronously (return a promise). If set to `false`, the data will be written synchronously.
```javascript
// Write data to the file synchronously (blocking) return undefined
fileWrite('path/to/file.txt', 'Test data', { async: false });// Write data to the file asynchronously (non-blocking) and return a promise
fileWrite('path/to/file.txt', 'Test data', { async: true }).then(() => {
console.log('File written successfully!');
}).catch((err) => {
console.error(err);
});
```### `options.newLine`
**Type:** `boolean`
**Default:** `true`It Ensure that contents has a trailing newline before writing it to the file.
### `options.increment`
**Type:** `boolean`
**Default:** `false`If set to `true` and the file already exists, the file will be renamed to include a number in parentheses after the file name. For example, if the file is named `foo.txt` and `increment` is `true`, the file will be renamed to `foo (2).txt`.
```javascript
// Increment the file name if the file already exists
await fileWrite('path/to/file.txt', 'Test data', {
increment: true
});
```### `options.exclusive`
**Type:** `boolean`
**Default:** `false`If set to `true`, the promise will be rejected with an error if the file already exists. If set to `false`, the file will be overwritten or appended to depending on the value of the `overwrite` option.
```javascript
// Reject the promise with an error if the file already exists
await fileWrite('path/to/file.txt', 'Test data', {
exclusive: true
});
```## License
The `filewrite` library is released under the MIT license. See [LICENSE](LICENSE) for more details.