UNPKG

1.98 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4Object.defineProperty(exports, "__esModule", {
5 value: true
6});
7exports.filterProxy = exports["default"] = exports.checkProxy = void 0;
8var _get = _interopRequireDefault(require("lodash/get"));
9var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
10var includes = function includes(list, target) {
11 return (list || []).includes(target);
12};
13var 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};
27exports.checkProxy = checkProxy;
28var 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};
35exports.filterProxy = filterProxy;
36var _default = filterProxy;
37exports["default"] = _default;
38//# sourceMappingURL=filterProxy.js.map
\No newline at end of file