Skip to content

Commit bca6717

Browse files
Update test-example.ps1
1 parent e6339d7 commit bca6717

File tree

1 file changed

+39
-2
lines changed

1 file changed

+39
-2
lines changed

test-example.ps1

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ function Install-Packages {
2222

2323
# Loop through each package and install it individually
2424
foreach ($package in $packages) {
25-
$packageWithVersion = "$package@$buildVersion"
25+
$packageVersion = GetValidNpmVersion -PackageName $package -Version $buildVersion
26+
$packageWithVersion = "$package@$packageVersion"
2627
Write-Output "Installing $packageWithVersion..."
2728

2829
npm install --save --save-exact --no-fund --loglevel=error --force $packageWithVersion
@@ -35,6 +36,42 @@ function Install-Packages {
3536
Write-Output "`nAll packages installed successfully in $folderName"
3637
}
3738

39+
function Get-ValidNpmVersion {
40+
param (
41+
[string]$PackageName,
42+
[string]$Version
43+
)
44+
45+
function Test-NpmVersionExists {
46+
param ([string]$Pkg, [string]$Ver)
47+
npm view "$Pkg@$Ver" > $null 2>&1
48+
return ($LASTEXITCODE -eq 0)
49+
}
50+
51+
Write-Host "Checking $PackageName@$Version..."
52+
if (Test-NpmVersionExists -Pkg $PackageName -Ver $Version) {
53+
Write-Host "$PackageName@$Version exists."
54+
return $Version
55+
}
56+
57+
try {
58+
$v = [version]$Version
59+
$fallback = "$($v.Major).$($v.Minor)-stable"
60+
} catch {
61+
Write-Host "Invalid version format: $Version"
62+
return $null
63+
}
64+
65+
Write-Host "$PackageName@$Version not found. Trying fallback: $PackageName@$fallback..."
66+
if (Test-NpmVersionExists -Pkg $PackageName -Ver $fallback) {
67+
Write-Host "$PackageName@$fallback exists (fallback)."
68+
return $fallback
69+
}
70+
71+
Write-Host "Neither $PackageName@$Version nor @$fallback exist."
72+
return $null
73+
}
74+
3875
function Build-Project {
3976
param (
4077
[string]$folderName
@@ -84,7 +121,7 @@ function Process-JavaScriptProjects {
84121
Push-Location $folderName
85122

86123
try {
87-
Write-Output "`nRemoving node_modules & package-lock.json: $pwd.Path"
124+
Write-Output "`nRemoving node_modules & package-lock.json: $pwd"
88125
Remove-Item -Recurse -Force node_modules -ErrorAction SilentlyContinue
89126
Remove-Item -Force package-lock.json -ErrorAction SilentlyContinue
90127
Install-Packages -folderName $folderName -packages $packages -buildVersion $buildVersion

0 commit comments

Comments
 (0)