_common-action-utils.js 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. "use strict";
  2. var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard");
  3. var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
  4. var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
  5. _Object$defineProperty(exports, "__esModule", {
  6. value: true
  7. });
  8. exports.getRenderedTemplatePath = getRenderedTemplatePath;
  9. exports.getTemplate = getTemplate;
  10. exports.getRenderedTemplate = getRenderedTemplate;
  11. exports.getTransformedTemplate = getTransformedTemplate;
  12. exports.throwStringifiedError = exports.getRelativeToBasePath = exports.makeDestPath = exports.normalizePath = void 0;
  13. var _stringify = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/json/stringify"));
  14. var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/assign"));
  15. var _path = _interopRequireDefault(require("path"));
  16. var fspp = _interopRequireWildcard(require("../fs-promise-proxy"));
  17. const getFullData = (data, cfg) => (0, _assign.default)({}, cfg.data, data);
  18. const normalizePath = path => {
  19. return !path.sep || path.sep === '\\' ? path.replace(/\\/g, '/') : path;
  20. };
  21. exports.normalizePath = normalizePath;
  22. const makeDestPath = (data, cfg, plop) => {
  23. return _path.default.resolve(plop.getDestBasePath(), plop.renderString(normalizePath(cfg.path) || '', getFullData(data, cfg)));
  24. };
  25. exports.makeDestPath = makeDestPath;
  26. function getRenderedTemplatePath(data, cfg, plop) {
  27. if (cfg.templateFile) {
  28. const absTemplatePath = _path.default.resolve(plop.getPlopfilePath(), cfg.templateFile);
  29. return plop.renderString(normalizePath(absTemplatePath), getFullData(data, cfg));
  30. }
  31. return null;
  32. }
  33. async function getTemplate(data, cfg, plop) {
  34. const makeTmplPath = p => _path.default.resolve(plop.getPlopfilePath(), p);
  35. let {
  36. template
  37. } = cfg;
  38. if (cfg.templateFile) {
  39. template = await fspp.readFile(makeTmplPath(cfg.templateFile));
  40. }
  41. if (template == null) {
  42. template = '';
  43. }
  44. return template;
  45. }
  46. async function getRenderedTemplate(data, cfg, plop) {
  47. const template = await getTemplate(data, cfg, plop);
  48. return plop.renderString(template, getFullData(data, cfg));
  49. }
  50. const getRelativeToBasePath = (filePath, plop) => filePath.replace(_path.default.resolve(plop.getDestBasePath()), '');
  51. exports.getRelativeToBasePath = getRelativeToBasePath;
  52. const throwStringifiedError = err => {
  53. if (typeof err === 'string') {
  54. throw err;
  55. } else {
  56. throw err.message || (0, _stringify.default)(err);
  57. }
  58. };
  59. exports.throwStringifiedError = throwStringifiedError;
  60. async function getTransformedTemplate(template, data, cfg) {
  61. // transform() was already typechecked at runtime in interface check
  62. if ('transform' in cfg) {
  63. const result = await cfg.transform(template, data);
  64. if (typeof result !== 'string') throw new TypeError(`Invalid return value for transform (${(0, _stringify.default)(result)} is not a string)`);
  65. return result;
  66. } else {
  67. return template;
  68. }
  69. }