writeOutputFile.js 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.writeOutputFile = writeOutputFile;
  6. var _fs = require("fs");
  7. var _path = _interopRequireDefault(require("path"));
  8. var Log = _interopRequireWildcard(require("../../build/output/log"));
  9. var _isError = _interopRequireDefault(require("../../lib/is-error"));
  10. function _interopRequireDefault(obj) {
  11. return obj && obj.__esModule ? obj : {
  12. default: obj
  13. };
  14. }
  15. function _getRequireWildcardCache() {
  16. if (typeof WeakMap !== "function") return null;
  17. var cache = new WeakMap();
  18. _getRequireWildcardCache = function() {
  19. return cache;
  20. };
  21. return cache;
  22. }
  23. function _interopRequireWildcard(obj) {
  24. if (obj && obj.__esModule) {
  25. return obj;
  26. }
  27. if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
  28. return {
  29. default: obj
  30. };
  31. }
  32. var cache = _getRequireWildcardCache();
  33. if (cache && cache.has(obj)) {
  34. return cache.get(obj);
  35. }
  36. var newObj = {};
  37. var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
  38. for(var key in obj){
  39. if (Object.prototype.hasOwnProperty.call(obj, key)) {
  40. var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
  41. if (desc && (desc.get || desc.set)) {
  42. Object.defineProperty(newObj, key, desc);
  43. } else {
  44. newObj[key] = obj[key];
  45. }
  46. }
  47. }
  48. newObj.default = obj;
  49. if (cache) {
  50. cache.set(obj, newObj);
  51. }
  52. return newObj;
  53. }
  54. /**
  55. * Check if a given file path is a directory or not.
  56. * @param {string} filePath The path to a file to check.
  57. * @returns {Promise<boolean>} `true` if the path is a directory.
  58. */ async function isDirectory(filePath) {
  59. try {
  60. return (await _fs.promises.stat(filePath)).isDirectory();
  61. } catch (error) {
  62. if ((0, _isError).default(error) && (error.code === "ENOENT" || error.code === "ENOTDIR")) {
  63. return false;
  64. }
  65. throw error;
  66. }
  67. }
  68. async function writeOutputFile(outputFile, outputData) {
  69. const filePath = _path.default.resolve(process.cwd(), outputFile);
  70. if (await isDirectory(filePath)) {
  71. Log.error(`Cannot write to output file path, it is a directory: ${filePath}`);
  72. } else {
  73. try {
  74. await _fs.promises.mkdir(_path.default.dirname(filePath), {
  75. recursive: true
  76. });
  77. await _fs.promises.writeFile(filePath, outputData);
  78. Log.info(`The output file has been created: ${filePath}`);
  79. } catch (err) {
  80. Log.error(`There was a problem writing the output file: ${filePath}`);
  81. console.error(err);
  82. }
  83. }
  84. }
  85. //# sourceMappingURL=writeOutputFile.js.map