mirror of
https://github.com/NuGet/setup-nuget.git
synced 2025-12-06 07:48:23 +08:00
meta: compile to ESNEXT to use native features
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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;
|
||||
|
||||
25
lib/main.js
25
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();
|
||||
|
||||
@@ -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)
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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. */
|
||||
|
||||
Reference in New Issue
Block a user