38 lines
1.0 KiB
JavaScript
38 lines
1.0 KiB
JavaScript
|
|
var _dataDir = null;
|
|
var _persistentData = {};
|
|
|
|
module.exports = function( rootDir, $ ){
|
|
|
|
_dataDir = new java.io.File( rootDir, 'data');
|
|
|
|
$.persist = function(name, data, write){
|
|
var i, dataFromFile;
|
|
if (typeof data == 'undefined')
|
|
data = {};
|
|
if (typeof write == 'undefined')
|
|
write = false;
|
|
if (!write){
|
|
dataFromFile = $.load(_dataDir.canonicalPath + '/' + name + '-store.json');
|
|
if (dataFromFile){
|
|
for (i in dataFromFile){
|
|
data[i] = dataFromFile[i];
|
|
}
|
|
}
|
|
}else{
|
|
// flush data to file
|
|
$.save(data, _dataDir.canonicalPath + '/' + name + '-store.json');
|
|
}
|
|
_persistentData[name] = data;
|
|
return data;
|
|
};
|
|
|
|
$.addUnloadHandler(function(){
|
|
for (var name in _persistentData){
|
|
var data = _persistentData[name];
|
|
$.save(data, _dataDir.canonicalPath + '/' + name + '-store.json');
|
|
}
|
|
});
|
|
};
|
|
|