fileio
Version:
An extension for the fs module.
71 lines (58 loc) • 2.93 kB
Markdown
is a promise-based extension to the standard *fs* module,
it adds two main objects, for storing file and directory references.
The library also contains wrappers for all, callback-based, asynchronous functions
in the *fs* module.
*Documentation can be found at [https://jonaskjellerup.github.io/fileio/File.html](https://jonaskjellerup.github.io/fileio/File.html)*.
Run this command in your prefered terminal emulator.
```
npm install --save fileio
```
All asynchronous callback-based functions, in the fs module, have been given a coresponding wrapper function,
which is suffixed with *"-Async"*, so instead of ```fs.readFile``` you would use ```fs.readFileAsync```.
The modified fs module, can be accessed at fs export key: ```const {fs} = require('fileio');```
You can store references to files using the *File* object.
*Note: not all the standard file manipulation functions are available, for File objects. Yet.*
```javascript
const {File} = require('fileio');
const file = new File('/Path/to/file/textfile.txt');
file.read( true ) // If set to true, the data will be saved in File#cache
.then( data => { /* Do something with the data */ } )
.catch( err => console.log(err) );
file.write('data to be written', false /* <- if set to true the data will also be saved in the cache */)
.then( self => { /* do something */ })
.catch( err => console.log(err) );
```
The directory object allows you to easily read and write files, and directories, relative to the objects path.
*Note: not all the standard directory manipulation functions are available, for Directory objects. Yet.*
```javascript
const {Directory} = require('fileio');
const dir1 = new Directory('./dir1');
let dir2;
Directory.make('./dir2')
.then( main ).catch( err => console.log(err) );
function main( directoryObject ) {
let file1, file2;
dir2 = directoryObject;
dir1.readFile('/relative/path/to/file') // The files content is automatically put into File#char
.then( fileObject => file1 = fileObject ).catch( err => console.log(err) );
dir2.writeFile('/relative/path', false /* whether to cache or not */)
.then( fileObject => file2 = fileObject ).catch( err => console.log(err) );
}
```
* 2.2.0
* Added fromCache option on file read allowing reading from cache, instead of fs.
* Added resetTimer option for specifying, if the timer should contiue or start over on the next read/write/...
* Multiple bug fixes.
* 2.1.0
* Added Directory
* 2.0.0
* __BREAKING__: Changed Directory
* Added support for default options on all File operations.
* Added option inheritance from directories to files.
* Added cache expiration.
Fileio