@herbertgao/surgio
Version:
Generating rules for Surge, Clash, Quantumult like a PRO
42 lines • 1.49 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SortFilterWithSortedKeywords = exports.SortFilterWithSortedFilters = void 0;
const lodash_1 = __importDefault(require("lodash"));
// tslint:disable-next-line:max-classes-per-file
class SortFilterWithSortedFilters {
_filters;
supportSort = true;
constructor(_filters) {
this._filters = _filters;
this.filter.bind(this);
}
filter(nodeList) {
const result = [];
this._filters.forEach((filter) => {
result.push(...nodeList.filter(filter));
});
return lodash_1.default.uniqBy(result, (node) => node.nodeName);
}
}
exports.SortFilterWithSortedFilters = SortFilterWithSortedFilters;
// tslint:disable-next-line:max-classes-per-file
class SortFilterWithSortedKeywords {
_keywords;
supportSort = true;
constructor(_keywords) {
this._keywords = _keywords;
this.filter.bind(this);
}
filter(nodeList) {
const result = [];
this._keywords.forEach((keyword) => {
result.push(...nodeList.filter((node) => node.nodeName.includes(keyword)));
});
return lodash_1.default.uniqBy(result, (node) => node.nodeName);
}
}
exports.SortFilterWithSortedKeywords = SortFilterWithSortedKeywords;
//# sourceMappingURL=classes.js.map