123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = void 0;
- var _lodash = _interopRequireDefault(require("lodash"));
- var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- var _default = (0, _iterateJsdoc.default)(function (_ref) {
- var jsdoc = _ref.jsdoc,
- report = _ref.report,
- context = _ref.context,
- jsdocNode = _ref.jsdocNode,
- sourceCode = _ref.sourceCode,
- indent = _ref.indent;
- var always;
- if (!jsdoc.description || !jsdoc.tags.length) {
- return;
- }
- if (_lodash.default.has(context.options, 0)) {
- always = context.options[0] === 'always';
- } else {
- always = true;
- } // The contents of the jsdoc.source and of jsdoc.description is left trimmed.
- // The contents of the jsdoc.description is right trimmed.
- // This gets the text following the description.
- var descriptionEndsWithANewline = _lodash.default.startsWith(jsdoc.source.slice(jsdoc.description.length), '\n\n');
- if (always) {
- if (!descriptionEndsWithANewline) {
- report('There must be a newline after the description of the JSDoc block.', function (fixer) {
- var sourceLines = sourceCode.getText(jsdocNode).split('\n');
- var lastDescriptionLine = _lodash.default.findLastIndex(sourceLines, function (line) {
- return _lodash.default.includes(line, _lodash.default.last(jsdoc.description.split('\n')));
- }); // Add the new line
- sourceLines.splice(lastDescriptionLine + 1, 0, indent + ' *');
- return fixer.replaceText(jsdocNode, sourceLines.join('\n'));
- });
- }
- } else if (descriptionEndsWithANewline) {
- report('There must be no newline after the description of the JSDoc block.', function (fixer) {
- var sourceLines = sourceCode.getText(jsdocNode).split('\n');
- var lastDescriptionLine = _lodash.default.findLastIndex(sourceLines, function (line) {
- return _lodash.default.includes(line, _lodash.default.last(jsdoc.description.split('\n')));
- }); // Remove the extra line
- sourceLines.splice(lastDescriptionLine + 1, 1);
- return fixer.replaceText(jsdocNode, sourceLines.join('\n'));
- });
- }
- });
- exports.default = _default;
- module.exports = exports.default;
- //# sourceMappingURL=newlineAfterDescription.js.map
|