rannn505 / child-shell

Node.js bindings 🔗 for shell
http://rannn505.github.io/child-shell/
MIT License
299 stars 71 forks source link

Piping commands? #130

Open favna opened 3 years ago

favna commented 3 years ago

Given the following PowerShell command

Get-ChildItem -Path $env:USERPROFILE\Documents\development -Filter node_modules -Directory -Recurse | Remove-Item -Force -Recurse

This would remove all node_modules folders in development, recursing into subdirectories.

How would I best write this in node-powershell? I can do it with

addCommand(`Get-ChildItem -Path $env:USERPROFILE\Documents\development -Filter node_modules -Directory -Recurse | Remove-Item -Force -Recurse`)

But I would prefer to be able to do it with something like

const ps = new shell({
    executionPolicy: 'Bypass',
    noProfile: true
});

await ps.addCommand('Get-ChildItem');

await ps.addParameters([
    { Path: '$env:USERPROFILE\Documents\development' },
    { Filter: 'node_modules' },
    { Directory: '' },
    { Recurse: '' }
]);

// Adds ` | Remove-Item`
await ps.addPipedCommand('Remove-Item');

// Adding parameters to `Remove-Item`
await ps.addParameters([
    { Force: '' },
    { Recurse: '' }
]);