file.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. /**
  2. * Fonction utilitaire sur les fichiers
  3. */
  4. const fs = require('fs');
  5. module.exports.exist = function (path, verbose = false) {
  6. try {
  7. return fs.existsSync(path);
  8. } catch (err) {
  9. if (verbose) {
  10. console.log(err);
  11. }
  12. return false;
  13. }
  14. };
  15. module.exports.makedir = function (path, isFilePath = false, verbose = false) {
  16. if (isFilePath) {
  17. let split = path.split('/');
  18. delete split[split.length - 1];
  19. path = split.join('/');
  20. }
  21. if (!module.exports.exist(path)) {
  22. try {
  23. fs.mkdirSync(path, {recursive: true});
  24. return true;
  25. } catch (err) {
  26. if (verbose) {
  27. console.error(err);
  28. }
  29. return false;
  30. }
  31. } else {
  32. return true;
  33. }
  34. };
  35. module.exports.put = function (path, content, verbose = false) {
  36. try {
  37. fs.writeFileSync(path, content);
  38. return true;
  39. } catch (err) {
  40. if (verbose) {
  41. console.error(err);
  42. }
  43. return false;
  44. }
  45. };
  46. module.exports.append = function (path, content, verbose = false) {
  47. try {
  48. fs.appendFileSync(path, content);
  49. return true;
  50. } catch (err) {
  51. if (verbose) {
  52. console.error(err);
  53. }
  54. return false;
  55. }
  56. };
  57. module.exports.delete = function (path, verbose = false) {
  58. try {
  59. fs.unlinkSync(path);
  60. return true;
  61. } catch (err) {
  62. if (verbose) {
  63. console.error(err);
  64. }
  65. return false;
  66. }
  67. };
  68. module.exports.getExtension = function (filename) {
  69. const split = filename.split('.');
  70. return split[split.length - 1];
  71. };
  72. module.exports.isDir = function (path) {
  73. if (!module.exports.exist(path)) {
  74. return false;
  75. }
  76. return fs.statSync(path).isDirectory();
  77. };
  78. module.exports.isFile = function (path) {
  79. if (!module.exports.exist(path)) {
  80. return false;
  81. }
  82. return fs.statSync(path).isFile();
  83. };
  84. module.exports.list = function (path) {
  85. if (!module.exports.isDir(path)) {
  86. return [];
  87. }
  88. return fs.readdirSync(path);
  89. };
  90. module.exports.copy = function (source, dest, verbose = false) {
  91. if (!module.exports.isFile(source)) {
  92. return false;
  93. }
  94. try {
  95. fs.copyFileSync(source, dest);
  96. return true;
  97. } catch (err) {
  98. if (verbose) {
  99. console.error(err);
  100. }
  101. return false;
  102. }
  103. };
  104. module.exports.read = function (filepath, varbose = false) {
  105. if (!module.exports.isFile(filepath)) {
  106. return false;
  107. }
  108. try {
  109. return fs.readFileSync(filepath).toString();
  110. } catch (err) {
  111. if (verbose) {
  112. console.error(err);
  113. }
  114. return false;
  115. }
  116. }
  117. module.exports.system = fs;