@forge/cli-shared

9.3.1-next.1-experimental-0b00ed89.3.1-next.2
out/http-client/file-uploader.js
~out/http-client/file-uploader.jsModified
+9−36
Index: package/out/http-client/file-uploader.js
===================================================================
--- package/out/http-client/file-uploader.js
+++ package/out/http-client/file-uploader.js
@@ -1,11 +1,9 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
 exports.HttpFileUploader = exports.UploadFileEmptyError = exports.UploadFileNotFoundError = exports.CannotUploadFileError = void 0;
 const tslib_1 = require("tslib");
-const http_1 = tslib_1.__importDefault(require("http"));
-const https_1 = tslib_1.__importDefault(require("https"));
-const url_1 = require("url");
+const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
 const ui_1 = require("../ui");
 class CannotUploadFileError extends Error {
 }
 exports.CannotUploadFileError = CannotUploadFileError;
@@ -14,9 +12,8 @@
 exports.UploadFileNotFoundError = UploadFileNotFoundError;
 class UploadFileEmptyError extends Error {
 }
 exports.UploadFileEmptyError = UploadFileEmptyError;
-const NODE_REQUEST_TIMEOUT_MS = 30_000;
 const validateFileContents = (filePath, fileContents) => {
     if (!fileContents) {
         throw new UploadFileNotFoundError(ui_1.Text.upload.error.notFound(filePath));
     }
@@ -29,48 +26,24 @@
     if (!response.ok) {
         throw new CannotUploadFileError(ui_1.Text.upload.error.status(response.status, await response.text()));
     }
 };
-const uploadWithNodeRequest = (url, headers, fileContents) => {
-    return new Promise((resolve, reject) => {
-        const parsedUrl = new url_1.URL(url);
-        const transport = parsedUrl.protocol === 'https:' ? https_1.default : http_1.default;
-        const request = transport.request(parsedUrl, {
-            method: 'PUT',
-            headers
-        }, (response) => {
-            const chunks = [];
-            response.on('data', (chunk) => chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)));
-            response.on('end', () => {
-                const body = Buffer.concat(chunks).toString('utf-8');
-                resolve(new Response(body, {
-                    status: response.statusCode ?? 500,
-                    statusText: response.statusMessage,
-                    headers: response.headers
-                }));
-            });
-        });
-        request.setTimeout(NODE_REQUEST_TIMEOUT_MS, () => {
-            request.destroy(new Error(`Request timed out after ${NODE_REQUEST_TIMEOUT_MS}ms`));
-        });
-        request.on('error', reject);
-        request.write(fileContents);
-        request.end();
-    });
-};
 class HttpFileUploader {
     fileSystem;
     constructor(fileSystem) {
         this.fileSystem = fileSystem;
     }
     async uploadFromPath(url, filePath) {
         const fileContents = this.fileSystem.readBinaryFile(filePath);
         const validFileContents = validateFileContents(filePath, fileContents);
-        const headers = {
-            'Content-Type': 'application/zip',
-            'Content-Length': validFileContents.length.toString()
-        };
-        const response = await uploadWithNodeRequest(url, headers, validFileContents);
+        const response = await (0, node_fetch_1.default)(url, {
+            method: 'PUT',
+            headers: {
+                'Content-Type': 'application/zip',
+                'Content-Length': validFileContents.length.toString()
+            },
+            body: validFileContents
+        });
         await checkResponse(response);
     }
 }
 exports.HttpFileUploader = HttpFileUploader;