From 1ed0c23029e0785d1732d054dc4aafb7cd760f23 Mon Sep 17 00:00:00 2001
From: Dave Hadka <dhadka@github.com>
Date: Wed, 29 Apr 2020 09:31:53 -0400
Subject: [PATCH] Use promisify of stream.pipeline for downloading

---
 dist/restore/index.js  | 18 ++++++++++++------
 dist/save/index.js     | 18 ++++++++++++------
 src/cacheHttpClient.ts | 11 +++++------
 3 files changed, 29 insertions(+), 18 deletions(-)

diff --git a/dist/restore/index.js b/dist/restore/index.js
index 197c44c..1a6bf73 100644
--- a/dist/restore/index.js
+++ b/dist/restore/index.js
@@ -2186,6 +2186,8 @@ const http_client_1 = __webpack_require__(539);
 const auth_1 = __webpack_require__(226);
 const crypto = __importStar(__webpack_require__(417));
 const fs = __importStar(__webpack_require__(747));
+const stream = __importStar(__webpack_require__(794));
+const util = __importStar(__webpack_require__(669));
 const constants_1 = __webpack_require__(694);
 const utils = __importStar(__webpack_require__(443));
 const versionSalt = "1.0";
@@ -2271,13 +2273,10 @@ function getCacheEntry(keys) {
     });
 }
 exports.getCacheEntry = getCacheEntry;
-function pipeResponseToStream(response, stream) {
+function pipeResponseToStream(response, output) {
     return __awaiter(this, void 0, void 0, function* () {
-        return new Promise(resolve => {
-            response.message.pipe(stream).on("close", () => {
-                resolve();
-            });
-        });
+        const pipeline = util.promisify(stream.pipeline);
+        yield pipeline(response.message, output);
     });
 }
 function downloadCache(archiveLocation, archivePath) {
@@ -4662,6 +4661,13 @@ run();
 exports.default = run;
 
 
+/***/ }),
+
+/***/ 794:
+/***/ (function(module) {
+
+module.exports = require("stream");
+
 /***/ }),
 
 /***/ 826:
diff --git a/dist/save/index.js b/dist/save/index.js
index 16c38b6..433ec05 100644
--- a/dist/save/index.js
+++ b/dist/save/index.js
@@ -2186,6 +2186,8 @@ const http_client_1 = __webpack_require__(539);
 const auth_1 = __webpack_require__(226);
 const crypto = __importStar(__webpack_require__(417));
 const fs = __importStar(__webpack_require__(747));
+const stream = __importStar(__webpack_require__(794));
+const util = __importStar(__webpack_require__(669));
 const constants_1 = __webpack_require__(694);
 const utils = __importStar(__webpack_require__(443));
 const versionSalt = "1.0";
@@ -2271,13 +2273,10 @@ function getCacheEntry(keys) {
     });
 }
 exports.getCacheEntry = getCacheEntry;
-function pipeResponseToStream(response, stream) {
+function pipeResponseToStream(response, output) {
     return __awaiter(this, void 0, void 0, function* () {
-        return new Promise(resolve => {
-            response.message.pipe(stream).on("close", () => {
-                resolve();
-            });
-        });
+        const pipeline = util.promisify(stream.pipeline);
+        yield pipeline(response.message, output);
     });
 }
 function downloadCache(archiveLocation, archivePath) {
@@ -4641,6 +4640,13 @@ module.exports = require("fs");
 
 /***/ }),
 
+/***/ 794:
+/***/ (function(module) {
+
+module.exports = require("stream");
+
+/***/ }),
+
 /***/ 826:
 /***/ (function(module, __unusedexports, __webpack_require__) {
 
diff --git a/src/cacheHttpClient.ts b/src/cacheHttpClient.ts
index e023abb..98e23a9 100644
--- a/src/cacheHttpClient.ts
+++ b/src/cacheHttpClient.ts
@@ -8,6 +8,8 @@ import {
 } from "@actions/http-client/interfaces";
 import * as crypto from "crypto";
 import * as fs from "fs";
+import * as stream from "stream";
+import * as util from "util";
 
 import { Inputs, SocketTimeout } from "./constants";
 import {
@@ -128,13 +130,10 @@ export async function getCacheEntry(
 
 async function pipeResponseToStream(
     response: IHttpClientResponse,
-    stream: NodeJS.WritableStream
+    output: NodeJS.WritableStream
 ): Promise<void> {
-    return new Promise(resolve => {
-        response.message.pipe(stream).on("close", () => {
-            resolve();
-        });
-    });
+    const pipeline = util.promisify(stream.pipeline);
+    await pipeline(response.message, output);
 }
 
 export async function downloadCache(