1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 | Object.defineProperty(exports, "__esModule", {
|
5 | value: true
|
6 | });
|
7 | exports.filterProxy = exports["default"] = exports.checkProxy = void 0;
|
8 | var _get = _interopRequireDefault(require("lodash/get"));
|
9 | var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
|
10 | var includes = function includes(list, target) {
|
11 | return (list || []).includes(target);
|
12 | };
|
13 | var checkProxy = function checkProxy(proxy, filter) {
|
14 | if ((0, _isFunction["default"])(filter)) return filter(proxy);
|
15 | if (filter.key && (0, _get["default"])(proxy, 'key') !== filter.key) return false;
|
16 | if (filter.type && (0, _get["default"])(proxy, 'type') !== filter.type) return false;
|
17 | if (filter.provider && (0, _get["default"])(proxy, 'provider') !== filter.provider) return false;
|
18 | if (filter.target && !includes((0, _get["default"])(proxy, 'targets'), filter.target)) return false;
|
19 | if (filter.test && !includes((0, _get["default"])(proxy, 'tests'), filter.test)) return false;
|
20 | if (filter.worker && (0, _get["default"])(proxy, 'tags.worker') !== filter.worker) return false;
|
21 | if (filter.country && (0, _get["default"])(proxy, 'tags.country') !== filter.country) return false;
|
22 | if (filter.subtype && (0, _get["default"])(proxy, 'tags.subtype') !== filter.subtype) return false;
|
23 | if (filter.ipv && !(0, _get["default"])(proxy, 'tags.ipv', '').startsWith(filter.ipv)) return false;
|
24 | if (filter.check) return filter.check(proxy);
|
25 | return true;
|
26 | };
|
27 | exports.checkProxy = checkProxy;
|
28 | var filterProxy = function filterProxy() {
|
29 | var proxies = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
30 | var filter = arguments.length > 1 ? arguments[1] : undefined;
|
31 | return proxies.filter(function (proxy) {
|
32 | return checkProxy(proxy, filter);
|
33 | });
|
34 | };
|
35 | exports.filterProxy = filterProxy;
|
36 | var _default = filterProxy;
|
37 | exports["default"] = _default;
|
38 |
|
\ | No newline at end of file |