@sasjs/lint
Version:
Linting and formatting for SAS code
40 lines • 1.62 kB
JavaScript
;
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