cache.js 774 B

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