unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
29 lines • 953 B
JavaScript
import { Strategy } from './strategy.js';
import { Address4 } from 'ip-address';
export default class RemoteAddressStrategy extends 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;
}
if (Address4.isValid(range)) {
try {
const subnetRange = new Address4(range);
const remoteAddress = new Address4(context.remoteAddress || '');
return remoteAddress.isInSubnet(subnetRange);
}
catch (_err) {
return false;
}
}
return false;
});
}
}
//# sourceMappingURL=remote-address-strategy.js.map