UNPKG

@process-engine/ci_tools

Version:
51 lines 1.98 kB
#!/usr/bin/env node "use strict"; 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