mirror of
				https://github.com/actions/setup-node.git
				synced 2025-11-04 19:38:22 +08:00 
			
		
		
		
	consume getJson function for better error messages (#110)
This commit is contained in:
		
							
								
								
									
										1
									
								
								.github/workflows/workflow.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/workflows/workflow.yml
									
									
									
									
										vendored
									
									
								
							@@ -22,7 +22,6 @@ jobs:
 | 
				
			|||||||
      - run: npm ci
 | 
					      - run: npm ci
 | 
				
			||||||
      - run: npm run build
 | 
					      - run: npm run build
 | 
				
			||||||
      - run: npm run format-check
 | 
					      - run: npm run format-check
 | 
				
			||||||
      - run: npm run pack
 | 
					 | 
				
			||||||
      - run: npm test
 | 
					      - run: npm test
 | 
				
			||||||
      - name: Verify no unstaged changes
 | 
					      - name: Verify no unstaged changes
 | 
				
			||||||
        if: runner.os != 'windows'
 | 
					        if: runner.os != 'windows'
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,6 +12,6 @@ if [[ "$(git status --porcelain)" != "" ]]; then
 | 
				
			|||||||
    echo ----------------------------------------
 | 
					    echo ----------------------------------------
 | 
				
			||||||
    echo Troubleshooting
 | 
					    echo Troubleshooting
 | 
				
			||||||
    echo ----------------------------------------
 | 
					    echo ----------------------------------------
 | 
				
			||||||
    echo "::error::Unstaged changes detected. Locally try running: git clean -ffdx && npm ci && npm run all"
 | 
					    echo "::error::Unstaged changes detected. Locally try running: git clean -ffdx && npm ci && npm run pre-checkin"
 | 
				
			||||||
    exit 1
 | 
					    exit 1
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										121
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										121
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							@@ -10602,6 +10602,15 @@ var HttpCodes;
 | 
				
			|||||||
    HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable";
 | 
					    HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable";
 | 
				
			||||||
    HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout";
 | 
					    HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout";
 | 
				
			||||||
})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));
 | 
					})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));
 | 
				
			||||||
 | 
					var Headers;
 | 
				
			||||||
 | 
					(function (Headers) {
 | 
				
			||||||
 | 
					    Headers["Accept"] = "accept";
 | 
				
			||||||
 | 
					    Headers["ContentType"] = "content-type";
 | 
				
			||||||
 | 
					})(Headers = exports.Headers || (exports.Headers = {}));
 | 
				
			||||||
 | 
					var MediaTypes;
 | 
				
			||||||
 | 
					(function (MediaTypes) {
 | 
				
			||||||
 | 
					    MediaTypes["ApplicationJson"] = "application/json";
 | 
				
			||||||
 | 
					})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Returns the proxy URL, depending upon the supplied url and proxy environment variables.
 | 
					 * Returns the proxy URL, depending upon the supplied url and proxy environment variables.
 | 
				
			||||||
 * @param serverUrl  The server URL where the request will be sent. For example, https://api.github.com
 | 
					 * @param serverUrl  The server URL where the request will be sent. For example, https://api.github.com
 | 
				
			||||||
@@ -10700,6 +10709,36 @@ class HttpClient {
 | 
				
			|||||||
    sendStream(verb, requestUrl, stream, additionalHeaders) {
 | 
					    sendStream(verb, requestUrl, stream, additionalHeaders) {
 | 
				
			||||||
        return this.request(verb, requestUrl, stream, additionalHeaders);
 | 
					        return this.request(verb, requestUrl, stream, additionalHeaders);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Gets a typed object from an endpoint
 | 
				
			||||||
 | 
					     * Be aware that not found returns a null.  Other errors (4xx, 5xx) reject the promise
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    async getJson(requestUrl, additionalHeaders = {}) {
 | 
				
			||||||
 | 
					        additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);
 | 
				
			||||||
 | 
					        let res = await this.get(requestUrl, additionalHeaders);
 | 
				
			||||||
 | 
					        return this._processResponse(res, this.requestOptions);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    async postJson(requestUrl, obj, additionalHeaders = {}) {
 | 
				
			||||||
 | 
					        let data = JSON.stringify(obj, null, 2);
 | 
				
			||||||
 | 
					        additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);
 | 
				
			||||||
 | 
					        additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);
 | 
				
			||||||
 | 
					        let res = await this.post(requestUrl, data, additionalHeaders);
 | 
				
			||||||
 | 
					        return this._processResponse(res, this.requestOptions);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    async putJson(requestUrl, obj, additionalHeaders = {}) {
 | 
				
			||||||
 | 
					        let data = JSON.stringify(obj, null, 2);
 | 
				
			||||||
 | 
					        additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);
 | 
				
			||||||
 | 
					        additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);
 | 
				
			||||||
 | 
					        let res = await this.put(requestUrl, data, additionalHeaders);
 | 
				
			||||||
 | 
					        return this._processResponse(res, this.requestOptions);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    async patchJson(requestUrl, obj, additionalHeaders = {}) {
 | 
				
			||||||
 | 
					        let data = JSON.stringify(obj, null, 2);
 | 
				
			||||||
 | 
					        additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);
 | 
				
			||||||
 | 
					        additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);
 | 
				
			||||||
 | 
					        let res = await this.patch(requestUrl, data, additionalHeaders);
 | 
				
			||||||
 | 
					        return this._processResponse(res, this.requestOptions);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Makes a raw http request.
 | 
					     * Makes a raw http request.
 | 
				
			||||||
     * All other methods such as get, post, patch, and request ultimately call this.
 | 
					     * All other methods such as get, post, patch, and request ultimately call this.
 | 
				
			||||||
@@ -10883,6 +10922,14 @@ class HttpClient {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        return lowercaseKeys(headers || {});
 | 
					        return lowercaseKeys(headers || {});
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    _getExistingOrDefaultHeader(additionalHeaders, header, _default) {
 | 
				
			||||||
 | 
					        const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => (c[k.toLowerCase()] = obj[k], c), {});
 | 
				
			||||||
 | 
					        let clientHeader;
 | 
				
			||||||
 | 
					        if (this.requestOptions && this.requestOptions.headers) {
 | 
				
			||||||
 | 
					            clientHeader = lowercaseKeys(this.requestOptions.headers)[header];
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return additionalHeaders[header] || clientHeader || _default;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    _getAgent(parsedUrl) {
 | 
					    _getAgent(parsedUrl) {
 | 
				
			||||||
        let agent;
 | 
					        let agent;
 | 
				
			||||||
        let proxyUrl = pm.getProxyUrl(parsedUrl);
 | 
					        let proxyUrl = pm.getProxyUrl(parsedUrl);
 | 
				
			||||||
@@ -10950,6 +10997,73 @@ class HttpClient {
 | 
				
			|||||||
        const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);
 | 
					        const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);
 | 
				
			||||||
        return new Promise(resolve => setTimeout(() => resolve(), ms));
 | 
					        return new Promise(resolve => setTimeout(() => resolve(), ms));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    static dateTimeDeserializer(key, value) {
 | 
				
			||||||
 | 
					        if (typeof value === 'string') {
 | 
				
			||||||
 | 
					            let a = new Date(value);
 | 
				
			||||||
 | 
					            if (!isNaN(a.valueOf())) {
 | 
				
			||||||
 | 
					                return a;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return value;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    async _processResponse(res, options) {
 | 
				
			||||||
 | 
					        return new Promise(async (resolve, reject) => {
 | 
				
			||||||
 | 
					            const statusCode = res.message.statusCode;
 | 
				
			||||||
 | 
					            const response = {
 | 
				
			||||||
 | 
					                statusCode: statusCode,
 | 
				
			||||||
 | 
					                result: null,
 | 
				
			||||||
 | 
					                headers: {}
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					            // not found leads to null obj returned
 | 
				
			||||||
 | 
					            if (statusCode == HttpCodes.NotFound) {
 | 
				
			||||||
 | 
					                resolve(response);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            let obj;
 | 
				
			||||||
 | 
					            let contents;
 | 
				
			||||||
 | 
					            // get the result from the body
 | 
				
			||||||
 | 
					            try {
 | 
				
			||||||
 | 
					                contents = await res.readBody();
 | 
				
			||||||
 | 
					                if (contents && contents.length > 0) {
 | 
				
			||||||
 | 
					                    if (options && options.deserializeDates) {
 | 
				
			||||||
 | 
					                        obj = JSON.parse(contents, HttpClient.dateTimeDeserializer);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    else {
 | 
				
			||||||
 | 
					                        obj = JSON.parse(contents);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    response.result = obj;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                response.headers = res.message.headers;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            catch (err) {
 | 
				
			||||||
 | 
					                // Invalid resource (contents not json);  leaving result obj null
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            // note that 3xx redirects are handled by the http layer.
 | 
				
			||||||
 | 
					            if (statusCode > 299) {
 | 
				
			||||||
 | 
					                let msg;
 | 
				
			||||||
 | 
					                // if exception/error in body, attempt to get better error
 | 
				
			||||||
 | 
					                if (obj && obj.message) {
 | 
				
			||||||
 | 
					                    msg = obj.message;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                else if (contents && contents.length > 0) {
 | 
				
			||||||
 | 
					                    // it may be the case that the exception is in the body message as string
 | 
				
			||||||
 | 
					                    msg = contents;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                else {
 | 
				
			||||||
 | 
					                    msg = "Failed request: (" + statusCode + ")";
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                let err = new Error(msg);
 | 
				
			||||||
 | 
					                // attach statusCode and body obj (if available) to the error object
 | 
				
			||||||
 | 
					                err['statusCode'] = statusCode;
 | 
				
			||||||
 | 
					                if (response.result) {
 | 
				
			||||||
 | 
					                    err['result'] = response.result;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                reject(err);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else {
 | 
				
			||||||
 | 
					                resolve(response);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
exports.HttpClient = HttpClient;
 | 
					exports.HttpClient = HttpClient;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -11979,7 +12093,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
 | 
				
			|||||||
Object.defineProperty(exports, "__esModule", { value: true });
 | 
					Object.defineProperty(exports, "__esModule", { value: true });
 | 
				
			||||||
// Load tempDirectory before it gets wiped by tool-cache
 | 
					// Load tempDirectory before it gets wiped by tool-cache
 | 
				
			||||||
let tempDirectory = process.env['RUNNER_TEMPDIRECTORY'] || '';
 | 
					let tempDirectory = process.env['RUNNER_TEMPDIRECTORY'] || '';
 | 
				
			||||||
const assert = __importStar(__webpack_require__(357));
 | 
					 | 
				
			||||||
const core = __importStar(__webpack_require__(470));
 | 
					const core = __importStar(__webpack_require__(470));
 | 
				
			||||||
const hc = __importStar(__webpack_require__(539));
 | 
					const hc = __importStar(__webpack_require__(539));
 | 
				
			||||||
const io = __importStar(__webpack_require__(1));
 | 
					const io = __importStar(__webpack_require__(1));
 | 
				
			||||||
@@ -12070,10 +12183,8 @@ function queryLatestMatch(versionSpec) {
 | 
				
			|||||||
            allowRetries: true,
 | 
					            allowRetries: true,
 | 
				
			||||||
            maxRetries: 3
 | 
					            maxRetries: 3
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        let response = yield httpClient.get(dataUrl);
 | 
					        let response = yield httpClient.getJson(dataUrl);
 | 
				
			||||||
        assert.ok(response.message.statusCode === 200, `Unexpected HTTP status code '${response.message.statusCode}'`);
 | 
					        let nodeVersions = response.result || [];
 | 
				
			||||||
        let body = yield response.readBody();
 | 
					 | 
				
			||||||
        let nodeVersions = JSON.parse(body);
 | 
					 | 
				
			||||||
        nodeVersions.forEach((nodeVersion) => {
 | 
					        nodeVersions.forEach((nodeVersion) => {
 | 
				
			||||||
            // ensure this version supports your os and platform
 | 
					            // ensure this version supports your os and platform
 | 
				
			||||||
            if (nodeVersion.files.indexOf(dataFileName) >= 0) {
 | 
					            if (nodeVersion.files.indexOf(dataFileName) >= 0) {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										26
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										26
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -27,9 +27,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "@actions/http-client": {
 | 
					    "@actions/http-client": {
 | 
				
			||||||
      "version": "1.0.3",
 | 
					      "version": "1.0.6",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.6.tgz",
 | 
				
			||||||
      "integrity": "sha512-wFwh1U4adB/Zsk4cc9kVqaBOHoknhp/pJQk+aWTocbAZWpIl4Zx/At83WFRLXvxB+5HVTWOACM6qjULMZfQSfw==",
 | 
					      "integrity": "sha512-LGmio4w98UyGX33b/W6V6Nx/sQHRXZ859YlMkn36wPsXPB82u8xTVlA/Dq2DXrm6lEq9RVmisRJa1c+HETAIJA==",
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "tunnel": "0.0.6"
 | 
					        "tunnel": "0.0.6"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@@ -1258,9 +1258,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "commander": {
 | 
					    "commander": {
 | 
				
			||||||
      "version": "2.20.0",
 | 
					      "version": "2.20.3",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
 | 
				
			||||||
      "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
 | 
					      "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
 | 
				
			||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "optional": true
 | 
					      "optional": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@@ -2450,9 +2450,9 @@
 | 
				
			|||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "handlebars": {
 | 
					    "handlebars": {
 | 
				
			||||||
      "version": "4.1.2",
 | 
					      "version": "4.7.3",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.3.tgz",
 | 
				
			||||||
      "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==",
 | 
					      "integrity": "sha512-SRGwSYuNfx8DwHD/6InAPzD6RgeruWLT+B8e8a7gGs8FWgHzlExpTFMEq2IA6QpAfOClpKHy6+8IqTjeBCu6Kg==",
 | 
				
			||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "neo-async": "^2.6.0",
 | 
					        "neo-async": "^2.6.0",
 | 
				
			||||||
@@ -5085,13 +5085,13 @@
 | 
				
			|||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "uglify-js": {
 | 
					    "uglify-js": {
 | 
				
			||||||
      "version": "3.6.0",
 | 
					      "version": "3.7.7",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.7.tgz",
 | 
				
			||||||
      "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==",
 | 
					      "integrity": "sha512-FeSU+hi7ULYy6mn8PKio/tXsdSXN35lm4KgV2asx00kzrLU9Pi3oAslcJT70Jdj7PHX29gGUPOT6+lXGBbemhA==",
 | 
				
			||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "optional": true,
 | 
					      "optional": true,
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "commander": "~2.20.0",
 | 
					        "commander": "~2.20.3",
 | 
				
			||||||
        "source-map": "~0.6.1"
 | 
					        "source-map": "~0.6.1"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,12 +5,11 @@
 | 
				
			|||||||
  "description": "setup node action",
 | 
					  "description": "setup node action",
 | 
				
			||||||
  "main": "lib/setup-node.js",
 | 
					  "main": "lib/setup-node.js",
 | 
				
			||||||
  "scripts": {
 | 
					  "scripts": {
 | 
				
			||||||
    "build": "tsc",
 | 
					    "build": "tsc && ncc build",
 | 
				
			||||||
    "format": "prettier --write **/*.ts",
 | 
					    "format": "prettier --write **/*.ts",
 | 
				
			||||||
    "format-check": "prettier --check **/*.ts",
 | 
					    "format-check": "prettier --check **/*.ts",
 | 
				
			||||||
    "pack": "ncc build",
 | 
					 | 
				
			||||||
    "test": "jest",
 | 
					    "test": "jest",
 | 
				
			||||||
    "all": "npm run build && npm run format && npm run pack && npm test"
 | 
					    "pre-checkin": "npm run format && npm run build && npm test"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "repository": {
 | 
					  "repository": {
 | 
				
			||||||
    "type": "git",
 | 
					    "type": "git",
 | 
				
			||||||
@@ -26,7 +25,7 @@
 | 
				
			|||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
    "@actions/core": "^1.2.2",
 | 
					    "@actions/core": "^1.2.2",
 | 
				
			||||||
    "@actions/github": "^1.1.0",
 | 
					    "@actions/github": "^1.1.0",
 | 
				
			||||||
    "@actions/http-client": "^1.0.3",
 | 
					    "@actions/http-client": "^1.0.6",
 | 
				
			||||||
    "@actions/io": "^1.0.2",
 | 
					    "@actions/io": "^1.0.2",
 | 
				
			||||||
    "@actions/tool-cache": "^1.3.1",
 | 
					    "@actions/tool-cache": "^1.3.1",
 | 
				
			||||||
    "semver": "^6.1.1"
 | 
					    "semver": "^6.1.1"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -105,13 +105,8 @@ async function queryLatestMatch(versionSpec: string): Promise<string> {
 | 
				
			|||||||
    allowRetries: true,
 | 
					    allowRetries: true,
 | 
				
			||||||
    maxRetries: 3
 | 
					    maxRetries: 3
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
  let response = await httpClient.get(dataUrl);
 | 
					  let response = await httpClient.getJson<INodeVersion[]>(dataUrl);
 | 
				
			||||||
  assert.ok(
 | 
					  let nodeVersions = response.result || [];
 | 
				
			||||||
    response.message.statusCode === 200,
 | 
					 | 
				
			||||||
    `Unexpected HTTP status code '${response.message.statusCode}'`
 | 
					 | 
				
			||||||
  );
 | 
					 | 
				
			||||||
  let body = await response.readBody();
 | 
					 | 
				
			||||||
  let nodeVersions = JSON.parse(body) as INodeVersion[];
 | 
					 | 
				
			||||||
  nodeVersions.forEach((nodeVersion: INodeVersion) => {
 | 
					  nodeVersions.forEach((nodeVersion: INodeVersion) => {
 | 
				
			||||||
    // ensure this version supports your os and platform
 | 
					    // ensure this version supports your os and platform
 | 
				
			||||||
    if (nodeVersion.files.indexOf(dataFileName) >= 0) {
 | 
					    if (nodeVersion.files.indexOf(dataFileName) >= 0) {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user