electronHttpExecutor.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.ElectronHttpExecutor = exports.NET_SESSION_NAME = undefined;
  6. var _bluebirdLst;
  7. function _load_bluebirdLst() {
  8. return _bluebirdLst = require("bluebird-lst");
  9. }
  10. var _debug2;
  11. function _load_debug() {
  12. return _debug2 = _interopRequireDefault(require("debug"));
  13. }
  14. var _electron;
  15. function _load_electron() {
  16. return _electron = require("electron");
  17. }
  18. var _electronBuilderHttp;
  19. function _load_electronBuilderHttp() {
  20. return _electronBuilderHttp = require("electron-builder-http");
  21. }
  22. var _fsExtraP;
  23. function _load_fsExtraP() {
  24. return _fsExtraP = require("fs-extra-p");
  25. }
  26. var _path = _interopRequireWildcard(require("path"));
  27. var _url;
  28. function _load_url() {
  29. return _url = require("url");
  30. }
  31. function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
  32. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  33. const NET_SESSION_NAME = exports.NET_SESSION_NAME = "electron-updater";
  34. const debug = (0, (_debug2 || _load_debug()).default)("electron-builder");
  35. class ElectronHttpExecutor extends (_electronBuilderHttp || _load_electronBuilderHttp()).HttpExecutor {
  36. constructor(proxyLoginCallback) {
  37. super();
  38. this.proxyLoginCallback = proxyLoginCallback;
  39. }
  40. download(url, destination, options) {
  41. var _this = this;
  42. return (0, (_bluebirdLst || _load_bluebirdLst()).coroutine)(function* () {
  43. if (options == null || !options.skipDirCreation) {
  44. yield (0, (_fsExtraP || _load_fsExtraP()).ensureDir)(_path.dirname(destination));
  45. }
  46. return yield options.cancellationToken.createPromise(function (resolve, reject, onCancel) {
  47. const parsedUrl = (0, (_url || _load_url()).parse)(url);
  48. _this.doDownload((0, (_electronBuilderHttp || _load_electronBuilderHttp()).configureRequestOptions)({
  49. protocol: parsedUrl.protocol,
  50. hostname: parsedUrl.hostname,
  51. path: parsedUrl.path,
  52. port: parsedUrl.port ? parseInt(parsedUrl.port, 10) : undefined,
  53. headers: options.headers || undefined
  54. }), destination, 0, options, function (error) {
  55. if (error == null) {
  56. resolve(destination);
  57. } else {
  58. reject(error);
  59. }
  60. }, onCancel);
  61. });
  62. })();
  63. }
  64. doApiRequest(options, cancellationToken, requestProcessor) {
  65. let redirectCount = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
  66. if (debug.enabled) {
  67. debug(`request: ${(0, (_electronBuilderHttp || _load_electronBuilderHttp()).dumpRequestOptions)(options)}`);
  68. }
  69. return cancellationToken.createPromise((resolve, reject, onCancel) => {
  70. const request = (_electron || _load_electron()).net.request(Object.assign({ session: (_electron || _load_electron()).session.fromPartition(NET_SESSION_NAME) }, options), response => {
  71. try {
  72. this.handleResponse(response, options, cancellationToken, resolve, reject, redirectCount, requestProcessor);
  73. } catch (e) {
  74. reject(e);
  75. }
  76. });
  77. this.addProxyLoginHandler(request);
  78. this.addTimeOutHandler(request, reject);
  79. request.on("error", reject);
  80. requestProcessor(request, reject);
  81. onCancel(() => request.abort());
  82. });
  83. }
  84. doRequest(options, callback) {
  85. const request = (_electron || _load_electron()).net.request(Object.assign({ session: (_electron || _load_electron()).session.fromPartition(NET_SESSION_NAME) }, options), callback);
  86. this.addProxyLoginHandler(request);
  87. return request;
  88. }
  89. addProxyLoginHandler(request) {
  90. if (this.proxyLoginCallback != null) {
  91. request.on("login", this.proxyLoginCallback);
  92. }
  93. }
  94. }
  95. exports.ElectronHttpExecutor = ElectronHttpExecutor; //# sourceMappingURL=electronHttpExecutor.js.map