node-browserfs

3.0.1 • Public • Published

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:

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.0
  • npm 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'

License

WTFPL

Readme

Keywords

Package Sidebar

Install

npm i node-browserfs

Weekly Downloads

21

Version

3.0.1

License

WTFPL

Last publish

Collaborators

  • kruemelo