|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- // @flow
-
- import Logger from '../Logger';
-
- type ProxyControllerType = {|
- HTTP_PROXY: string | null,
- HTTPS_PROXY: string | null,
- NO_PROXY: string | null,
- |};
-
- const log = Logger.child({
- namespace: 'createProxyController',
- });
-
- const KNOWN_PROPERTY_NAMES = [
- 'HTTP_PROXY',
- 'HTTPS_PROXY',
- 'NO_PROXY',
- ];
-
- export default (): ProxyControllerType => {
- // eslint-disable-next-line fp/no-proxy
- return new Proxy({
- HTTP_PROXY: null,
- HTTPS_PROXY: null,
- NO_PROXY: null,
- }, {
- set: (subject, name, value) => {
- if (!KNOWN_PROPERTY_NAMES.includes(name)) {
- throw new Error('Cannot set an unmapped property "' + name + '".');
- }
-
- subject[name] = value;
-
- log.info({
- change: {
- name,
- value,
- },
- newConfiguration: subject,
- }, 'configuration changed');
-
- return true;
- },
- });
- };
|