:: I created this increase CI/CD stability when running in cloud VMs; npm install failing is such a sad test failure
:: general batch loop thanks @AlexZhidkov https://github.com/FeodorFitsner/BedfordHarbourBOM/blob/master/nuget-restore.cmd
:: pipe npm, search log thanks @Ricky-Brno http://stackoverflow.com/a/22492458/604861

echo off
:: initiate the retry number
set retryNumber=0
set maxRetries=3

:RETRY
echo --------------------------------------
echo execute npm install
cmd /c "npm install > npm-install.log 2>&1"
for /f %%a in ('type npm-install.log ^| find /c /i "npm err!"') do set err=%%a

if "%err%" EQU "0" GOTO YAY
set /a retryNumber=%retryNumber%+1
echo error %err% was encountered during installation attempt %retryNumber%
if %retryNumber% LSS %maxRetries% (GOTO RETRY)
echo --------------------------------------
echo npm install failed (T_T)
echo --------------------------------------
EXIT /B 1

:YAY
echo --------------------------------------
echo npm install success (^^_^^)b
echo --------------------------------------
EXIT /B 0