@sasjs/lint
Version:
Linting and formatting for SAS code
43 lines • 1.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.processLine = exports.processFile = exports.processText = void 0;
const utils_1 = require("../utils");
const utils_2 = require("../utils");
const processText = (text, config) => {
const lines = (0, utils_1.splitText)(text, config);
const headerLinesCount = (0, utils_1.getHeaderLinesCount)(text, config);
const dataSections = (0, utils_2.getDataSectionsDetail)(text, config);
const diagnostics = [];
diagnostics.push(...processContent(config, text));
lines.forEach((line, index) => {
const isHeaderLine = index + 1 <= headerLinesCount;
const isDataLine = (0, utils_2.checkIsDataLine)(dataSections, index);
diagnostics.push(...(0, exports.processLine)(config, line, index + 1, { isHeaderLine, isDataLine }));
});
return diagnostics;
};
exports.processText = processText;
const processFile = (filePath, config) => {
const diagnostics = [];
config.pathLintRules.forEach((rule) => {
diagnostics.push(...rule.test(filePath, config));
});
return diagnostics;
};
exports.processFile = processFile;
const processContent = (config, content) => {
const diagnostics = [];
config.fileLintRules.forEach((rule) => {
diagnostics.push(...rule.test(content, config));
});
return diagnostics;
};
const processLine = (config, line, lineNumber, options) => {
const diagnostics = [];
config.lineLintRules.forEach((rule) => {
diagnostics.push(...rule.test(line, lineNumber, config, options));
});
return diagnostics;
};
exports.processLine = processLine;
//# sourceMappingURL=shared.js.map