"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