UNPKG

textlint-rule-helper

Version:
94 lines 2.88 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 }); var unist_util_visit_1 = __importDefault(require("unist-util-visit")); /** * Ignore node manager that manager ignored ranges. * */ var IgnoreNodeManager = /** @class */ (function () { function IgnoreNodeManager() { /** * @type {[number,number][]} * @private */ this._ignoredRangeList = []; } Object.defineProperty(IgnoreNodeManager.prototype, "ignoredRanges", { /** * @returns {(number)[][]} */ get: function () { return this._ignoredRangeList; }, enumerable: false, configurable: true }); /** * |.......| * ^ ^ * Ignored Range * * |........| * ^ * index * @param {number} index * @returns {boolean} */ IgnoreNodeManager.prototype.isIgnoredIndex = function (index) { return this._ignoredRangeList.some(function (range) { var start = range[0], end = range[1]; return start <= index && index < end; }); }; /** * @param {[number, number]} aRange * @returns {boolean} * @deprecated This method will be removed */ IgnoreNodeManager.prototype.isIgnoredRange = function (aRange) { return this.isIgnoredIndex(aRange[0]) || this.isIgnoredIndex(aRange[1]); }; /** * @param {Object} node * @returns {boolean} */ IgnoreNodeManager.prototype.isIgnored = function (node) { return this.isIgnoredRange(node.range); }; /** * add node to ignore range list * @param {TxtNode} node */ IgnoreNodeManager.prototype.ignore = function (node) { this.ignoreRange(node.range); }; /** * add range to ignore range list * @param {[number, number]} range */ IgnoreNodeManager.prototype.ignoreRange = function (range) { this._ignoredRangeList.push(range); }; /** * ignore children node of `node`, * if the children node has the type that is included in `ignoredNodeTypes`. * @param {TxtNode} targetNode * @param {string[]} ignoredNodeTypes */ IgnoreNodeManager.prototype.ignoreChildrenByTypes = function (targetNode, ignoredNodeTypes) { var _this = this; (0, unist_util_visit_1.default)(targetNode, function (visitedNode) { // @ts-expect-error: type is TxtNodeType if (ignoredNodeTypes.includes(visitedNode.type)) { _this.ignore(visitedNode); } }); }; return IgnoreNodeManager; }()); exports.default = IgnoreNodeManager; //# sourceMappingURL=IgnoreNodeManager.js.map