@process-engine/ci_tools
Version:
CI tools for process-engine.io
51 lines • 1.98 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.run = void 0;
const fetch = require("cross-fetch");
let requestParameters = {};
const nugetFeedURL = process.argv[2];
const packageName = process.argv[3];
const packageVersion = process.argv[4];
async function getApiIndex() {
const response = await fetch.default(nugetFeedURL, requestParameters);
const apiIndex = (await response.json());
return apiIndex;
}
async function getPackageMetadataResource(apiIndex) {
const apiResource = apiIndex.resources.find((resource) => {
return resource['@type'] === 'PackageVersionDisplayMetadataUriTemplate';
});
return apiResource;
}
async function doesPackageExist(metadataResource) {
const packageNameLower = packageName.toLowerCase();
const packageVersionLower = packageVersion.toLowerCase();
const packageMetadataURI = metadataResource['@id']
.replace('{id-lower}', packageNameLower)
.replace('{version-lower}', packageVersionLower);
const response = await fetch.default(packageMetadataURI, requestParameters);
const isNot404 = response.status !== 404;
return isNot404;
}
async function run() {
if (process.argv.length < 4) {
console.error('Please supply arguments: <NuGet V3 feed URL> <package> <version>');
process.exit(1);
}
if (process.env['NUGET_ACCESS_TOKEN'] !== null &&
process.env['NUGET_ACCESS_TOKEN'] !== undefined &&
process.env['NUGET_ACCESS_TOKEN'] !== '') {
requestParameters = {
headers: {
'X-NuGet-ApiKey': process.env['NUGET_ACCESS_TOKEN'],
},
};
}
const apiIndex = await getApiIndex();
const apiResource = await getPackageMetadataResource(apiIndex);
const packageIsPublished = await doesPackageExist(apiResource);
console.log(packageIsPublished);
}
exports.run = run;
//# sourceMappingURL=is-nuget-package-published.js.map
;