Skip to content
No description or website provided.
JavaScript Other
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
public
README.md
nota-bene.js
package.json
test.js

README.md

Nota Bene

A partial clone of Node.j's fs module (including streams) for the browser File System API. Currently, only asynchronous methods are provided, per the File System API (sync is in the spec but not supported yet). All methods copy Node's FS module. Use with browserify.

Nota Bene uses through to expose read and write streams.

Methods

  • createWriteStream
  • createReadStream
  • writeFile
  • write
  • unlink
  • rename (aka mv)
  • read
  • readdir
  • mkdir
  • rmdir
  • stat

There is also a helper method for the File System API.

  • setStorage(size)

Call this method before any others if you don't want these defaults:

size = 1024 * 1024 * 1024 // in bytes

The default and standard for this module is persistent storage, to whatever extent the browser grants this.

usage

npm install nota-bene

Then use it as you would the FS module, from the example in /test.js

var fs = require('./nota-bene');

var buf = new Float32Array(1024 * 1024);
for(var x = 0; x < buf.length; x++){
    buf[x] = Math.sin((x / 1024 * 1024) * Math.PI * 2)
}
fs.mkdir('/tmp', function(err){
    if(err) console.log(err)
    else{
        fs.writeFile('/tmp/pipeTest', buf, function(err){
            if(err) console.log(err)
            var ws = fs.createWriteStream('/tmp/pip')
            var rs = fs.createReadStream('/tmp/pipeTest')
            rs.pipe(ws)
            ws.on('data', function(data){
                console.log(data)
            })
            setTimeout(function(){
                fs.readFile('/tmp/pip', 'arraybuffer', function(err, file){
                    console.log('pipetest', err, file)
                })
            }, 1000)
        })      
    }
})

Tests

Currently the "test" is an incomplete example with some logging to the console. Real test forthcoming. It can be run like so:

First install browserify and opa

npm install -g browserify opa

Then:

git clone https://github.com/NHQ/nbfs
cd nbfs
opa -n -e test.js

you can pass a port number:

opa -n -e test.js -p 5000
Something went wrong with that request. Please try again.