UNPKG

@textlint/kernel

Version:
47 lines 1.77 kB
// LICENSE : MIT "use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const MessageType_1 = __importDefault(require("../shared/type/MessageType")); /** * the `index` is in the `range` and return true. * @param {Number} index * @param {Number[]} range * @returns {boolean} */ const isContainedRange = ({ range, ignoredRange }) => { const [start, end] = ignoredRange; return start <= range[0] && range[1] <= end; }; /** * filter messages by ignore messages * @param {Object[]} messages * @returns {Object[]} filtered messages */ function filterMessages(messages = []) { const lintingMessages = messages.filter((message) => { return message.type === MessageType_1.default.lint; }); const ignoreMessages = messages.filter((message) => { return message.type === MessageType_1.default.ignore; }); // if match, reject the message return lintingMessages.filter((message) => { return !ignoreMessages.some((ignoreMessage) => { const isInIgnoringRange = isContainedRange({ range: message.range, ignoredRange: ignoreMessage.range }); if (isInIgnoringRange && ignoreMessage.ignoringRuleId) { // "*" is wildcard that match any rule if (ignoreMessage.ignoringRuleId === "*") { return true; } // compare normalized key path return message.ruleId === ignoreMessage.ignoringRuleId; } return isInIgnoringRange; }); }); } exports.default = filterMessages; //# sourceMappingURL=filter-ignored-process.js.map