cache.js 996 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import fs from 'fs';
  2. import path from 'path';
  3. export const getData = (file) => {
  4. return new Promise((resolve, reject) => {
  5. if (fs.existsSync(file)) {
  6. const arrayBuffer = fs.readFileSync(file);
  7. try {
  8. resolve(JSON.parse(arrayBuffer.toString()));
  9. }
  10. catch (error) {
  11. reject(error);
  12. }
  13. }
  14. else {
  15. reject(new Error(`File ${file} does not exist`));
  16. }
  17. });
  18. }
  19. export const setData = (file, data, indent = 2) => {
  20. return new Promise((resolve, reject) => {
  21. if (typeof (data) != 'string') {
  22. try {
  23. data = JSON.stringify(data, null, indent);
  24. }
  25. catch (error) {
  26. reject(error);
  27. }
  28. }
  29. const directoryPath = path.dirname(file);
  30. if(!fs.existsSync(directoryPath)) {
  31. fs.mkdirSync(directoryPath, { recursive: true });
  32. }
  33. try {
  34. fs.writeFileSync(file, data);
  35. resolve();
  36. }
  37. catch (error) {
  38. reject(error);
  39. }
  40. });
  41. }
  42. export default { getData, setData };