file.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  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. // SI ce n'est qu'un fichier
  19. if (split.length === 1) {
  20. return true;
  21. }
  22. delete split[split.length - 1];
  23. path = split.join('/');
  24. }
  25. if (!module.exports.exist(path)) {
  26. try {
  27. fs.mkdirSync(path, {recursive: true});
  28. return true;
  29. } catch (err) {
  30. if (verbose) {
  31. console.error(err);
  32. }
  33. return false;
  34. }
  35. } else {
  36. return true;
  37. }
  38. };
  39. module.exports.put = function (path, content, verbose = false) {
  40. try {
  41. fs.writeFileSync(path, content);
  42. return true;
  43. } catch (err) {
  44. if (verbose) {
  45. console.error(err);
  46. }
  47. return false;
  48. }
  49. };
  50. module.exports.append = function (path, content, verbose = false) {
  51. try {
  52. fs.appendFileSync(path, content);
  53. return true;
  54. } catch (err) {
  55. if (verbose) {
  56. console.error(err);
  57. }
  58. return false;
  59. }
  60. };
  61. module.exports.delete = function (path, verbose = false) {
  62. try {
  63. fs.unlinkSync(path);
  64. return true;
  65. } catch (err) {
  66. if (verbose) {
  67. console.error(err);
  68. }
  69. return false;
  70. }
  71. };
  72. module.exports.getExtension = function (filename) {
  73. const split = filename.split('.');
  74. return split[split.length - 1];
  75. };
  76. module.exports.isDir = function (path) {
  77. if (!module.exports.exist(path)) {
  78. return false;
  79. }
  80. return fs.statSync(path).isDirectory();
  81. };
  82. module.exports.isFile = function (path) {
  83. if (!module.exports.exist(path)) {
  84. return false;
  85. }
  86. return fs.statSync(path).isFile();
  87. };
  88. module.exports.list = function (path) {
  89. if (!module.exports.isDir(path)) {
  90. return [];
  91. }
  92. return fs.readdirSync(path);
  93. };
  94. module.exports.copy = function (source, dest, verbose = false) {
  95. if (!module.exports.isFile(source)) {
  96. return false;
  97. }
  98. try {
  99. fs.copyFileSync(source, dest);
  100. return true;
  101. } catch (err) {
  102. if (verbose) {
  103. console.error(err);
  104. }
  105. return false;
  106. }
  107. };
  108. module.exports.fs = fs;