cache.js 787 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. const fs = require('fs');
  2. const path = require('path');
  3. function getData(file, isMap) {
  4. let data;
  5. try {
  6. data = fs.readFileSync(file);
  7. }
  8. catch (e) {
  9. data = isMap ? '{}' : '[]';
  10. }
  11. try {
  12. data = JSON.parse(data.toString());
  13. }
  14. catch (e) {
  15. data = (isMap ? {} : []);
  16. }
  17. return data;
  18. }
  19. function setData(file, data, callback) {
  20. if (typeof (data) != 'string') {
  21. try {
  22. data = JSON.stringify(data)
  23. }
  24. catch (error) {
  25. callback?.(error);
  26. }
  27. }
  28. const directoryPath = path.dirname(file);
  29. if(!fs.existsSync(directoryPath)) {
  30. fs.mkdirSync(directoryPath, { recursive: true });
  31. }
  32. try {
  33. fs.writeFileSync(file, data);
  34. callback?.();
  35. }
  36. catch (error) {
  37. callback?.(error);
  38. }
  39. }
  40. module.exports = { getData, setData };