UNPKG

@sasjs/lint

Version:

Linting and formatting for SAS code

40 lines 1.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.trimComments = void 0; const trimComments = (statement, commentStarted = false, trimEnd = false) => { let trimmed = trimEnd ? (statement || '').trimEnd() : (statement || '').trim(); if (commentStarted || trimmed.startsWith('/*')) { const parts = trimmed.startsWith('/*') ? trimmed.slice(2).split('*/') : trimmed.split('*/'); if (parts.length === 2) { return { statement: parts.pop().trim(), commentStarted: false }; } else if (parts.length > 2) { parts.shift(); return (0, exports.trimComments)(parts.join('*/'), false); } else { return { statement: '', commentStarted: true }; } } else if (trimmed.includes('/*')) { const statementBeforeCommentStarts = trimmed.slice(0, trimmed.indexOf('/*')); trimmed = trimmed.slice(trimmed.indexOf('/*') + 2); const remainingStatement = trimmed.slice(trimmed.indexOf('*/') + 2); const result = (0, exports.trimComments)(remainingStatement, false, true); const completeStatement = statementBeforeCommentStarts + result.statement; return { statement: trimEnd ? completeStatement.trimEnd() : completeStatement.trim(), commentStarted: result.commentStarted }; } return { statement: trimmed, commentStarted: false }; }; exports.trimComments = trimComments; //# sourceMappingURL=trimComments.js.map