This repository has been archived on 2021-07-14. You can view files and clone it, but cannot push or open issues or pull requests.
scriptcraft/src/main/javascript/lib/persistence.js

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');
}
});
};