meta: compile to ESNEXT to use native features

This commit is contained in:
Kat Marchán
2019-11-14 23:41:24 -08:00
parent c3603d5cd0
commit 2842128e77
5 changed files with 61 additions and 93 deletions

View File

@@ -72,7 +72,7 @@ describe('installer tests', () => {
.get(PATH) .get(PATH)
.once() .once()
.reply(200, TOOLS_JSON); .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 srv
.get(p) .get(p)
.once() .once()

View File

@@ -1,13 +1,4 @@
"use strict"; "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) { var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod; if (mod && mod.__esModule) return mod;
var result = {}; var result = {};
@@ -24,24 +15,22 @@ const tc = __importStar(require("@actions/tool-cache"));
const fs = __importStar(require("fs")); const fs = __importStar(require("fs"));
const path = __importStar(require("path")); const path = __importStar(require("path"));
const pick_version_1 = __importDefault(require("./pick-version")); const pick_version_1 = __importDefault(require("./pick-version"));
function install(spec = 'latest') { async function install(spec = 'latest') {
return __awaiter(this, void 0, void 0, function* () { const tool = await pick_version_1.default(spec);
const tool = yield pick_version_1.default(spec); core.debug(`Found NuGet version: ${tool.version}`);
core.debug(`Found NuGet version: ${tool.version}`); let cachePath = await tc.find('nuget.exe', tool.version);
let cachePath = yield tc.find('nuget.exe', tool.version); if (!cachePath) {
if (!cachePath) { const nugetExePath = await tc.downloadTool(tool.url);
const nugetExePath = yield tc.downloadTool(tool.url); cachePath = await tc.cacheFile(nugetExePath, 'nuget.exe', 'nuget.exe', tool.version);
cachePath = yield tc.cacheFile(nugetExePath, 'nuget.exe', 'nuget.exe', tool.version); }
} core.debug(`nuget.exe cache path: ${cachePath}.`);
core.debug(`nuget.exe cache path: ${cachePath}.`); core.exportVariable('NUGET', `${cachePath}/nuget.exe`);
core.exportVariable('NUGET', `${cachePath}/nuget.exe`); if (process.platform !== 'win32') {
if (process.platform !== 'win32') { core.debug(`Creating dummy 'nuget' script.`);
core.debug(`Creating dummy 'nuget' script.`); const scriptPath = path.join(cachePath, 'nuget');
const scriptPath = path.join(cachePath, 'nuget'); fs.writeFileSync(scriptPath, `#!/bin/sh\nmono ${path.join(cachePath, 'nuget.exe')} $@`);
fs.writeFileSync(scriptPath, `#!/bin/sh\nmono ${path.join(cachePath, 'nuget.exe')} $@`); fs.chmodSync(scriptPath, '755');
fs.chmodSync(scriptPath, '755'); }
} core.addPath(cachePath);
core.addPath(cachePath);
});
} }
exports.default = install; exports.default = install;

View File

@@ -1,13 +1,4 @@
"use strict"; "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) { var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod; if (mod && mod.__esModule) return mod;
var result = {}; var result = {};
@@ -21,14 +12,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const core = __importStar(require("@actions/core")); const core = __importStar(require("@actions/core"));
const installer_1 = __importDefault(require("./installer")); const installer_1 = __importDefault(require("./installer"));
function run() { async function run() {
return __awaiter(this, void 0, void 0, function* () { try {
try { await installer_1.default(core.getInput('nuget-version'));
yield installer_1.default(core.getInput('nuget-version')); }
} catch (error) {
catch (error) { core.setFailed(error.message);
core.setFailed(error.message); }
}
});
} }
run(); run();

View File

@@ -1,13 +1,4 @@
"use strict"; "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) { var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod; if (mod && mod.__esModule) return mod;
var result = {}; var result = {};
@@ -24,44 +15,43 @@ var Stage;
Stage["preview"] = "EarlyAccessPreview"; Stage["preview"] = "EarlyAccessPreview";
Stage["_released"] = "Released"; Stage["_released"] = "Released";
})(Stage || (Stage = {})); })(Stage || (Stage = {}));
function pickVersion(spec) { async function pickVersion(spec) {
return __awaiter(this, void 0, void 0, function* () { spec = spec.trim();
spec = spec.trim(); let versions = await fetchVersions();
let versions = yield fetchVersions(); let range = semver.validRange(spec, true);
let range = semver.validRange(spec, true); let selected;
let selected; if (range) {
if (range) { selected = versions.find(v => semver.satisfies(v.version, range, true));
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 { selected = versions.find(v => v.stage === stage);
let stage = spec == 'latest' }
? Stage.latest if (!selected) {
: spec == 'preview' throw new Error(`No valid versions could be found for '${spec}'.`);
? Stage.preview }
: null; return selected;
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;
});
} }
exports.default = pickVersion; exports.default = pickVersion;
function fetchVersions() { async function fetchVersions() {
return __awaiter(this, void 0, void 0, function* () { const http = new rest.RestClient('nuget/setup-nuget-exe', undefined, undefined, {
const http = new rest.RestClient('nuget/setup-nuget-exe', undefined, undefined, { allowRetries: true,
allowRetries: true, maxRetries: 3
maxRetries: 3 });
}); return (await http
return (yield http .get('https://dist.nuget.org/tools.json')
.get('https://dist.nuget.org/tools.json') .then(j => j.result || { 'nuget.exe': [] })
.then(j => j.result || { 'nuget.exe': [] }) .then(n => n['nuget.exe'])).map(v => {
.then(n => n['nuget.exe'])).map(v => { return {
return Object.assign(Object.assign({}, v), { uploaded: new Date(v.uploaded) }); ...v,
}); uploaded: new Date(v.uploaded)
};
}); });
} }

View File

@@ -2,7 +2,7 @@
"compilerOptions": { "compilerOptions": {
/* Basic Options */ /* Basic Options */
// "incremental": true, /* Enable incremental compilation */ // "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'. */ "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
// "allowJs": true, /* Allow javascript files to be compiled. */ // "allowJs": true, /* Allow javascript files to be compiled. */
// "checkJs": true, /* Report errors in .js files. */ // "checkJs": true, /* Report errors in .js files. */