node-browserfs
v3.0.1
Published
a node fs-like browser in-memory file system
Downloads
228
Readme
node-BrowserFs
a node fs-like browser in-memory file system. Synchronous & async versions available for all supported functions.
API
http://nodejs.org/api/fs.html
plus:
- rmrf rimraf
- mkdirp
- join([path1], [path2], [...])
- parsePathParts('/a/b/../c') -> ['a', 'c']
- fileSizeSI / fileSizeIEC -> 34.30 kB / 33.50 KiB
- BrowserFs.Buffer
- BrowserFs.path
not supported:
- watch, unwatch
- stream
- appendFile
- chmod, chown
- open, read, write, close
- fsync
- truncate
- link, symlink
- realpath
Use
var BrowserFs = requirejs('BrowserFs');
var fs = new BrowserFs();
fs.statSync('/');
fs.mkdirSync('/subdir');
fs.mkdirpSync('/subdir2/subdir3');
fs.existsSync('/subdir/subdir2');
fs.rmdirSync('/subdir/subdir2');
fs.rmrfSync('/subdir');
fs.writeFileSync('/file', 'file string content');
fs.writeFileSync('/file', buffer);
fs.stat('/file', function (err, stats) {
// human readable file size:
// SI: kB,MB,GB,TB,PB,EB,ZB,YB / IEC: KiB,MiB,GiB,TiB,PiB,EiB,ZiB,YiB
console.log(fs.fileSizeSI(stats.size), fs.fileSizeIEC(stats.size));
// -> 34.30 kB / 33.50 KiB
});
// async example Asynchronous readdir(3)
// see node js fs api http://nodejs.org/api/fs.html#fs_fs_readdir_path_callback
fs.readdir('/', function (err, files) {
...
});
// Asynchronous rename(2) / move directory (or file)
fs.rename('/subdir1/subdir1-1', '/subdir2/subdir2-1', function (err) {
...
});
// fs.access(path[, mode], callback)
fs.access('/path/to/file', function (err) {
...
});
// access to node path
BrowserFs.path.join(''/a/b', '../c'); // '/a/c'
BrowserFs.path.normalize('/a/b/..c'); // '/a/c'
// access to node Buffer
vart buf = BrowserFs.Buffer.from('tést', 'utf8');
buf.toString('utf8'); // 'tést'
Have a look at the example folder.
Open index.html in browser, drop the github timeout png, click on the filename to download..
Read the code.
Test
$ mocha
Build
Prerequisites
node -v
>= 5.12.0npm install browserify -g
run npm run build
will produce browserified version of lib/BrowserFs.js
in main folder `BrowserFs.js' and minify to 'BrowserFs.min.js'