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)
.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()

View File

@@ -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;

View File

@@ -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();

View File

@@ -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)
};
});
}

View File

@@ -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. */