eng/scripts/npm-admin-tasks.ps1 (65 lines of code) (raw):

param ( [Parameter(mandatory = $true)] $taskType, [Parameter(mandatory = $true)] $packageName, [Parameter(mandatory = $true)] $pkgVersion, $tagName, [Parameter(mandatory = $true)] $npmToken, $reason ) try { Write-Host "Setting AuthToken Deployment" $env:NPM_TOKEN = $npmToken $regAuth = "//registry.npmjs.org/" npm config set $regAuth`:_authToken=`$`{NPM_TOKEN`} $nameAndVersion = $packageName + "@" + $pkgVersion # Verify that package name is not "@azure" if ($packageName -eq '@azure') { Write-Host "Invalid package name" exit 1 } switch ($taskType) { "AddTag" { Write-Host "Adding tag for package" Write-Host "npm dist-tag add $($nameAndVersion) $tagName" npm dist-tag add $nameAndVersion $tagName } "RemoveTag" { Write-Host "Removing tag for package" Write-Host "npm dist-tag rm $($nameAndVersion) $tagName" npm dist-tag rm $nameAndVersion $tagName } "Deprecate" { if ($reason -eq '') { Write-Host "Reason cannot be empty to deprecate package version" exit 1 } if ($pkgVersion -eq 'all') { $nameAndVersion = $packageName } Write-Host "Deprecate package $nameAndVersion, reason: $reason" Write-Host "npm deprecate $($nameAndVersion) $reason" npm deprecate $nameAndVersion $reason } "Unpublish" { Write-Host "Unpublish package $nameAndVersion" Write-Host "npm unpublish $($nameAndVersion)" npm unpublish $nameAndVersion } default { Write-Host "Invalid taskType to run npm admin job." exit 1 } } if ($LastExitCode -ne 0) { Write-Host "Npm task failed" exit 1 } } finally { npm config delete $regAuth`:_authToken $env:NPM_TOKEN = "" }