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