UNPKG

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