Module for sync local object variable with *.js or *.coffee file
CoffeeScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
LICENSE
README.md
jsync.coffee
jsync.js
package.json
tests.coffee
tests.js

README.md

jSync - Module for sync local object variable with *.js or *.coffee file

Installation

$ npm install jsync

Simple usage

var jsync = require('jsync');
var obj = jsync('data.json'); // also you can load *.js, *.cson and *.coffee files

// now object will keep in sync with json-file

Set interval

var obj = jsync('data.js', 100); // file check every 100ms

Set context for eval

// data.js
{
    someVariable: this.prop
}

Context can only be the Object

context = { prop: 'value' };
var obj = jsync('data.js', context);
console.log(obj); // { someVariable: 'value' }

Set handler

// data.js
[1,2,3,4]
function handler (err, arr) {
    arr.splice(2);
}
var obj = jsync('data.js', handler);
console.log(obj); // [1,2]

All-in-one call

var obj = jsync(file, interval, context, handler); // all arguments are optional except `file`

Cancel sync and remove watcher

jsync.cancel(obj);

Simple read without sync

var obj = jsync.read('data.js', context);

Manual sync with or without new context

jsync.trigger(obj, newContext);

Save synced object to file

var obj = jsync('data.js');
jsync.save(obj/*, fileName, callback */); // if fileName not set it will use 'data.js'

function will execute asynchronously if callback is set

Run some tests

$ cd /path/to/jsync/
$ npm test