11# !/usr/bin/env pwsh
22
3+ Set-StrictMode - Version ' Latest'
4+
35$NODE_EXE = " $PSScriptRoot /node.exe"
46if (-not (Test-Path $NODE_EXE )) {
57 $NODE_EXE = " $PSScriptRoot /node"
@@ -27,7 +29,7 @@ if ($MyInvocation.ExpectingInput) { # takes pipeline input
2729} elseif (-not $MyInvocation.Line ) { # used "-File" argument
2830 & $NODE_EXE $NPM_CLI_JS $args
2931} else { # used "-Command" argument
30- if ($MyInvocation.Statement ) {
32+ if (( $MyInvocation | Get-Member - Name ' Statement ' ) -and $MyInvocation.Statement ) {
3133 $NPM_ORIGINAL_COMMAND = $MyInvocation.Statement
3234 } else {
3335 $NPM_ORIGINAL_COMMAND = (
@@ -38,9 +40,9 @@ if ($MyInvocation.ExpectingInput) { # takes pipeline input
3840 $NODE_EXE = $NODE_EXE.Replace (" `` " , " ```` " )
3941 $NPM_CLI_JS = $NPM_CLI_JS.Replace (" `` " , " ```` " )
4042
41- $NPM_NO_REDIRECTS_COMMAND = [Management.Automation.Language.Parser ]::ParseInput($NPM_ORIGINAL_COMMAND , [ref ] $null , [ref ] $null ).
42- EndBlock.Statements.PipelineElements.CommandElements.Extent.Text -join ' '
43- $NPM_ARGS = $NPM_NO_REDIRECTS_COMMAND .Substring ( $MyInvocation .InvocationName.Length ).Trim()
43+ $NPM_COMMAND_ARRAY = [Management.Automation.Language.Parser ]::ParseInput($NPM_ORIGINAL_COMMAND , [ref ] $null , [ref ] $null ).
44+ EndBlock.Statements.PipelineElements.CommandElements.Extent.Text
45+ $NPM_ARGS = ( $NPM_COMMAND_ARRAY | Select-Object - Skip 1 ) -join ' '
4446
4547 Invoke-Expression " & `" $NODE_EXE `" `" $NPM_CLI_JS `" $NPM_ARGS "
4648}
0 commit comments