"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const trimStart = string => { return string.replace(/^\s+/u, ''); }; var _default = (0, _iterateJsdoc.default)(({ sourceCode, jsdocNode, report, indent }) => { // `indent` is whitespace from line 1 (`/**`), so slice and account for "/". const indentLevel = indent.length + 1; const sourceLines = sourceCode.getText(jsdocNode).split('\n').slice(1).map(line => { return line.split('*')[0]; }).filter(line => { return !trimStart(line).length; }); const fix = fixer => { const replacement = sourceCode.getText(jsdocNode).split('\n').map((line, index) => { // Ignore the first line and all lines not starting with `*` const ignored = !index || trimStart(line.split('*')[0]).length; return ignored ? line : `${indent} ${trimStart(line)}`; }).join('\n'); return fixer.replaceText(jsdocNode, replacement); }; sourceLines.some((line, lineNum) => { if (line.length !== indentLevel) { report('Expected JSDoc block to be aligned.', fix, { line: lineNum + 1 }); return true; } return false; }); }, { iterateAllJsdocs: true, meta: { fixable: 'code', type: 'layout' } }); exports.default = _default; module.exports = exports.default; //# sourceMappingURL=checkAlignment.js.map