SavableData.js 793 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. var fs = require("fs");
  2. module.exports = class SavableData {
  3. constructor()
  4. {
  5. this.path="null";
  6. this.exclude=[];
  7. }
  8. load(path)
  9. {
  10. if(path!=undefined) this.path=path;
  11. try{
  12. var str = fs.readFileSync(this.path);
  13. var obj = JSON.parse(str);
  14. if(obj!=null) Object.assign(this, obj);
  15. }catch(e)
  16. {
  17. }
  18. return this;
  19. }
  20. save(p)
  21. {
  22. if( p!=undefined ) this.path=p;
  23. fs.writeFileSync(this.path, this.toString());
  24. }
  25. toString()
  26. {
  27. return JSON.stringify(this, null, 2);
  28. }
  29. exportToString()
  30. {
  31. var obj = {};
  32. Object.assign(obj, this);
  33. for(var i=0; i<this.exclude.length; i++)
  34. delete obj[this.exclude[i]];
  35. delete this.path;
  36. delete this.exclude;
  37. return JSON.stringify(obj, null, 2);
  38. }
  39. }