From 2842128e77b4c57c817b4b325b0d34567c45f4db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Thu, 14 Nov 2019 23:41:24 -0800 Subject: [PATCH] meta: compile to ESNEXT to use native features --- __tests__/installer.test.ts | 2 +- lib/installer.js | 45 ++++++++------------- lib/main.js | 25 ++++-------- lib/pick-version.js | 80 ++++++++++++++++--------------------- tsconfig.json | 2 +- 5 files changed, 61 insertions(+), 93 deletions(-) diff --git a/__tests__/installer.test.ts b/__tests__/installer.test.ts index e900aa2..f3f52bf 100644 --- a/__tests__/installer.test.ts +++ b/__tests__/installer.test.ts @@ -72,7 +72,7 @@ describe('installer tests', () => { .get(PATH) .once() .reply(200, TOOLS_JSON); - const p = url.parse(TOOLS_JSON['nuget.exe'][0].url).path ?? ''; + const p = url.parse(TOOLS_JSON['nuget.exe'][0].url).path || ''; srv .get(p) .once() diff --git a/lib/installer.js b/lib/installer.js index ee6a062..9e4e9e0 100644 --- a/lib/installer.js +++ b/lib/installer.js @@ -1,13 +1,4 @@ "use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; @@ -24,24 +15,22 @@ const tc = __importStar(require("@actions/tool-cache")); const fs = __importStar(require("fs")); const path = __importStar(require("path")); const pick_version_1 = __importDefault(require("./pick-version")); -function install(spec = 'latest') { - return __awaiter(this, void 0, void 0, function* () { - const tool = yield pick_version_1.default(spec); - core.debug(`Found NuGet version: ${tool.version}`); - let cachePath = yield tc.find('nuget.exe', tool.version); - if (!cachePath) { - const nugetExePath = yield tc.downloadTool(tool.url); - cachePath = yield tc.cacheFile(nugetExePath, 'nuget.exe', 'nuget.exe', tool.version); - } - core.debug(`nuget.exe cache path: ${cachePath}.`); - core.exportVariable('NUGET', `${cachePath}/nuget.exe`); - if (process.platform !== 'win32') { - core.debug(`Creating dummy 'nuget' script.`); - const scriptPath = path.join(cachePath, 'nuget'); - fs.writeFileSync(scriptPath, `#!/bin/sh\nmono ${path.join(cachePath, 'nuget.exe')} $@`); - fs.chmodSync(scriptPath, '755'); - } - core.addPath(cachePath); - }); +async function install(spec = 'latest') { + const tool = await pick_version_1.default(spec); + core.debug(`Found NuGet version: ${tool.version}`); + let cachePath = await tc.find('nuget.exe', tool.version); + if (!cachePath) { + const nugetExePath = await tc.downloadTool(tool.url); + cachePath = await tc.cacheFile(nugetExePath, 'nuget.exe', 'nuget.exe', tool.version); + } + core.debug(`nuget.exe cache path: ${cachePath}.`); + core.exportVariable('NUGET', `${cachePath}/nuget.exe`); + if (process.platform !== 'win32') { + core.debug(`Creating dummy 'nuget' script.`); + const scriptPath = path.join(cachePath, 'nuget'); + fs.writeFileSync(scriptPath, `#!/bin/sh\nmono ${path.join(cachePath, 'nuget.exe')} $@`); + fs.chmodSync(scriptPath, '755'); + } + core.addPath(cachePath); } exports.default = install; diff --git a/lib/main.js b/lib/main.js index ef01514..70327e7 100644 --- a/lib/main.js +++ b/lib/main.js @@ -1,13 +1,4 @@ "use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; @@ -21,14 +12,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); const core = __importStar(require("@actions/core")); const installer_1 = __importDefault(require("./installer")); -function run() { - return __awaiter(this, void 0, void 0, function* () { - try { - yield installer_1.default(core.getInput('nuget-version')); - } - catch (error) { - core.setFailed(error.message); - } - }); +async function run() { + try { + await installer_1.default(core.getInput('nuget-version')); + } + catch (error) { + core.setFailed(error.message); + } } run(); diff --git a/lib/pick-version.js b/lib/pick-version.js index 9e9ae69..92e9984 100644 --- a/lib/pick-version.js +++ b/lib/pick-version.js @@ -1,13 +1,4 @@ "use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; @@ -24,44 +15,43 @@ var Stage; Stage["preview"] = "EarlyAccessPreview"; Stage["_released"] = "Released"; })(Stage || (Stage = {})); -function pickVersion(spec) { - return __awaiter(this, void 0, void 0, function* () { - spec = spec.trim(); - let versions = yield fetchVersions(); - let range = semver.validRange(spec, true); - let selected; - if (range) { - selected = versions.find(v => semver.satisfies(v.version, range, true)); +async function pickVersion(spec) { + spec = spec.trim(); + let versions = await fetchVersions(); + let range = semver.validRange(spec, true); + let selected; + if (range) { + selected = versions.find(v => semver.satisfies(v.version, range, true)); + } + else { + let stage = spec == 'latest' + ? Stage.latest + : spec == 'preview' + ? Stage.preview + : null; + if (!stage) { + throw new Error(`Invalid release label: ${spec}. Valid labels are 'latest' and 'preview'.`); } - else { - let stage = spec == 'latest' - ? Stage.latest - : spec == 'preview' - ? Stage.preview - : null; - if (!stage) { - throw new Error(`Invalid release label: ${spec}. Valid labels are 'latest' and 'preview'.`); - } - selected = versions.find(v => v.stage === stage); - } - if (!selected) { - throw new Error(`No valid versions could be found for '${spec}'.`); - } - return selected; - }); + selected = versions.find(v => v.stage === stage); + } + if (!selected) { + throw new Error(`No valid versions could be found for '${spec}'.`); + } + return selected; } exports.default = pickVersion; -function fetchVersions() { - return __awaiter(this, void 0, void 0, function* () { - const http = new rest.RestClient('nuget/setup-nuget-exe', undefined, undefined, { - allowRetries: true, - maxRetries: 3 - }); - return (yield http - .get('https://dist.nuget.org/tools.json') - .then(j => j.result || { 'nuget.exe': [] }) - .then(n => n['nuget.exe'])).map(v => { - return Object.assign(Object.assign({}, v), { uploaded: new Date(v.uploaded) }); - }); +async function fetchVersions() { + const http = new rest.RestClient('nuget/setup-nuget-exe', undefined, undefined, { + allowRetries: true, + maxRetries: 3 + }); + return (await http + .get('https://dist.nuget.org/tools.json') + .then(j => j.result || { 'nuget.exe': [] }) + .then(n => n['nuget.exe'])).map(v => { + return { + ...v, + uploaded: new Date(v.uploaded) + }; }); } diff --git a/tsconfig.json b/tsconfig.json index 960dc9f..63deba4 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { /* Basic Options */ // "incremental": true, /* Enable incremental compilation */ - "target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */ + "target": "ESNEXT", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */ "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */ // "allowJs": true, /* Allow javascript files to be compiled. */ // "checkJs": true, /* Report errors in .js files. */