proxyPolicy.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. // Copyright (c) Microsoft Corporation. All rights reserved.
  2. // Licensed under the MIT License. See License.txt in the project root for license information.
  3. import * as tslib_1 from "tslib";
  4. import { BaseRequestPolicy } from "./requestPolicy";
  5. import { Constants } from "../util/constants";
  6. import { URLBuilder } from "../url";
  7. function loadEnvironmentProxyValue() {
  8. if (!process) {
  9. return undefined;
  10. }
  11. if (process.env[Constants.HTTPS_PROXY]) {
  12. return process.env[Constants.HTTPS_PROXY];
  13. }
  14. else if (process.env[Constants.HTTPS_PROXY.toLowerCase()]) {
  15. return process.env[Constants.HTTPS_PROXY.toLowerCase()];
  16. }
  17. else if (process.env[Constants.HTTP_PROXY]) {
  18. return process.env[Constants.HTTP_PROXY];
  19. }
  20. else if (process.env[Constants.HTTP_PROXY.toLowerCase()]) {
  21. return process.env[Constants.HTTP_PROXY.toLowerCase()];
  22. }
  23. return undefined;
  24. }
  25. export function getDefaultProxySettings(proxyUrl) {
  26. if (!proxyUrl) {
  27. proxyUrl = loadEnvironmentProxyValue();
  28. if (!proxyUrl) {
  29. return undefined;
  30. }
  31. }
  32. var parsedUrl = URLBuilder.parse(proxyUrl);
  33. return {
  34. host: parsedUrl.getScheme() + "://" + parsedUrl.getHost(),
  35. port: Number.parseInt(parsedUrl.getPort() || "80")
  36. };
  37. }
  38. export function proxyPolicy(proxySettings) {
  39. return {
  40. create: function (nextPolicy, options) {
  41. return new ProxyPolicy(nextPolicy, options, proxySettings);
  42. }
  43. };
  44. }
  45. var ProxyPolicy = /** @class */ (function (_super) {
  46. tslib_1.__extends(ProxyPolicy, _super);
  47. function ProxyPolicy(nextPolicy, options, proxySettings) {
  48. var _this = _super.call(this, nextPolicy, options) || this;
  49. _this.proxySettings = proxySettings;
  50. return _this;
  51. }
  52. ProxyPolicy.prototype.sendRequest = function (request) {
  53. if (!request.proxySettings) {
  54. request.proxySettings = this.proxySettings;
  55. }
  56. return this._nextPolicy.sendRequest(request);
  57. };
  58. return ProxyPolicy;
  59. }(BaseRequestPolicy));
  60. export { ProxyPolicy };
  61. //# sourceMappingURL=proxyPolicy.js.map