utils.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. const fs = require('fs');
  2. const path = require('path');
  3. let utils = {
  4. parseLine: (line) => {
  5. if (line.startsWith('$') && line.endsWith('!default')) {
  6. const colon_index = line.indexOf(':');
  7. const variable_name = line.substring(0, colon_index).trim();
  8. const default_index = line.indexOf('!default');
  9. const variable_value = line.substring(colon_index + 1, default_index).trim();
  10. return variable = {
  11. name: variable_name,
  12. value: variable_value,
  13. type: utils.getVariableType(variable_name, variable_value),
  14. };
  15. }
  16. return false;
  17. },
  18. getLines: (files, file_path) => {
  19. const file = files[file_path];
  20. const slash_index = file_path.lastIndexOf('/');
  21. const dot_index = file_path.lastIndexOf('.');
  22. const file_name = file_path.substring(slash_index + 1, dot_index);
  23. return {
  24. file_name,
  25. lines: file.contents.toString().split(/(?:\r\n|\r|\n)/g),
  26. }
  27. },
  28. ensureDirectoryExistence: (file_path) => {
  29. var dirname = path.dirname(file_path);
  30. if (fs.existsSync(dirname)) {
  31. return true;
  32. }
  33. utils.ensureDirectoryExistence(dirname);
  34. fs.mkdirSync(dirname);
  35. }
  36. }
  37. utils.files = {};
  38. module.exports = utils;