unleash-client
Version:
Unleash Client for Node
29 lines • 983 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const strategy_1 = require("./strategy");
const ip_address_1 = require("ip-address");
class RemoteAddressStrategy extends strategy_1.Strategy {
constructor() {
super('remoteAddress');
}
isEnabled(parameters, context) {
if (!parameters.IPs) {
return false;
}
return parameters.IPs.split(/\s*,\s*/).some((range) => {
if (range === context.remoteAddress) {
return true;
}
try {
const subnetRange = new ip_address_1.Address4(range);
const remoteAddress = new ip_address_1.Address4(context.remoteAddress || '');
return remoteAddress.isInSubnet(subnetRange);
}
catch (err) {
return false;
}
});
}
}
exports.default = RemoteAddressStrategy;
//# sourceMappingURL=remote-addresss-strategy.js.map