requireHyphenBeforeParamDescription.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var _lodash = _interopRequireDefault(require("lodash"));
  7. var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
  8. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  9. var _default = (0, _iterateJsdoc.default)(function (_ref) {
  10. var sourceCode = _ref.sourceCode,
  11. jsdoc = _ref.jsdoc,
  12. report = _ref.report,
  13. context = _ref.context,
  14. jsdocNode = _ref.jsdocNode;
  15. var always;
  16. var jsdocTags = _lodash.default.filter(jsdoc.tags, {
  17. tag: 'param'
  18. });
  19. if (_lodash.default.has(context.options, 0)) {
  20. always = context.options[0] === 'always';
  21. } else {
  22. always = true;
  23. }
  24. _lodash.default.forEach(jsdocTags, function (jsdocTag) {
  25. if (!jsdocTag.description) {
  26. return;
  27. }
  28. if (always) {
  29. if (!_lodash.default.startsWith(jsdocTag.description, '-')) {
  30. report('There must be a hyphen before @param description.', function (fixer) {
  31. var replacement = sourceCode.getText(jsdocNode).replace(jsdocTag.description, '- ' + jsdocTag.description);
  32. return fixer.replaceText(jsdocNode, replacement);
  33. }, jsdocTag);
  34. }
  35. } else if (_lodash.default.startsWith(jsdocTag.description, '-')) {
  36. report('There must be no hyphen before @param description.', function (fixer) {
  37. var reg = new RegExp(/(?<=-\s*)\w.*/);
  38. var replacement = sourceCode.getText(jsdocNode).replace(jsdocTag.description, jsdocTag.description.match(reg));
  39. return fixer.replaceText(jsdocNode, replacement);
  40. }, jsdocTag);
  41. }
  42. });
  43. });
  44. exports.default = _default;
  45. module.exports = exports.default;
  46. //# sourceMappingURL=requireHyphenBeforeParamDescription.js.map