Refactor New-CommandDataFile script - #2197
Sean Wheeler (sdwheeler) wants to merge 5 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
Refactors Utils/New-CommandDataFile.ps1 into an advanced script/function that generates the command/alias JSON data file used for compatibility-related settings, adding an OutputPath parameter and modernizing the implementation.
Changes:
- Converts the script logic into an advanced function (
New-CommandDataFile) and calls it from the script entrypoint. - Adds
OutputPathsupport and uses module-qualified cmdlet invocations throughout. - Reworks module/command/alias enumeration and JSON emission.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
🟡 Changes recommended
Help is attached to the inaccessible nested function, input validation accepts files, and failed writes can return stale output.
Get a fresh assessment by requesting another Copilot review.
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 3
- Review effort level: Balanced
| [OutputType([System.IO.FileInfo])] | ||
| [CmdletBinding()] | ||
| param( | ||
| [ValidateScript({ Test-Path $_ })] |
| $aliases = $aliases.Name | ||
| $jsonData | | ||
| Microsoft.PowerShell.Utility\ConvertTo-Json -Depth 4 | | ||
| Microsoft.PowerShell.Utility\Out-File $outputFileName -Encoding utf8 |
| function New-CommandDataFile { | ||
| <# |
Christoph Bergmeister (bergmeister)
left a comment
There was a problem hiding this comment.
happy with it but what is the context if you can share? the files shipped with PSSA and produced by this command are many years old btw and probably need updating as they are also powershell version specific. as no one has complained, don't think the rule that uses them is used a lot (which makes sense given that the new compat rules from rob are much better)
Refactor New-CommandDataFile script
This PR rewrites the script to create a function and fixes several issues: