mirror of
https://github.com/RGBCube/nu_scripts
synced 2025-08-02 23:27:45 +00:00

I use Nushell and npm, and noticed that the npm section hasn't been updated for a long time, to the point where it no longer works with current npm versions. In fact, the current script produces the following result:  So I've updated the npm-related scripts to fix this issue. Now it works correctly:  Additionally, since npm -l | lines generates over 900 lines of output, this causes each run to take a long time (at least on my machine). Therefore, I've implemented caching using stor to store the results, which significantly reduces the execution time for subsequent calls. With caching enabled, the delay is now barely noticeable.
40 lines
908 B
Text
40 lines
908 B
Text
def "nu-complete npm" [] {
|
|
let db = stor open
|
|
|
|
try {
|
|
# query commanders from in-mem db
|
|
$db | query db "SELECT * FROM npm_commanders_table"
|
|
} catch {
|
|
# if catched error, create table and insert all data
|
|
stor create --table-name npm_commanders_table --columns { value: str, description: str }
|
|
|
|
let npm_commanders = ^npm -l
|
|
| lines
|
|
| where $it =~ '\s{4}[a-z\-]+.*\s{4,}'
|
|
| parse -r '\s*(?P<value>[^ ]+)\s*(?P<description>\w.*)'
|
|
|
|
$npm_commanders | stor insert --table-name npm_commanders_table
|
|
|
|
$npm_commanders
|
|
}
|
|
}
|
|
|
|
export extern "npm" [
|
|
command?: string@"nu-complete npm"
|
|
]
|
|
|
|
def "nu-complete npm run" [] {
|
|
open ./package.json
|
|
| get scripts
|
|
| transpose
|
|
| rename value description
|
|
}
|
|
|
|
export extern "npm run" [
|
|
command?: string@"nu-complete npm run"
|
|
--workspace(-w)
|
|
--include-workspace-root
|
|
--if-present
|
|
--ignore-scripts
|
|
--script-shell
|
|
]
|