Commit df875bc
committed
refactor(dlx): use npm-package-arg for parsePackageSpec
Replace custom package spec parsing logic with npm's official npm-package-arg
library for more robust and correct parsing of all package spec formats.
Benefits:
- Handles edge cases correctly (scoped packages, git URLs, file paths, etc.)
- Supports all npm package spec formats (version, range, tag, git, file, etc.)
- More maintainable - uses battle-tested npm tooling
- Fallback to simple parsing if npm-package-arg fails
This ensures proper parsing of specs like:
- @coana-tech/cli@~14.12.51
- lodash@4.17.21
- @scope/pkg@latest
- package@github:user/repo
- file:./local-pkg1 parent 0088140 commit df875bc
1 file changed
Lines changed: 29 additions & 26 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| 39 | + | |
39 | 40 | | |
40 | 41 | | |
41 | 42 | | |
| |||
105 | 106 | | |
106 | 107 | | |
107 | 108 | | |
108 | | - | |
| 109 | + | |
109 | 110 | | |
110 | 111 | | |
111 | 112 | | |
| |||
115 | 116 | | |
116 | 117 | | |
117 | 118 | | |
118 | | - | |
119 | | - | |
120 | | - | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | | - | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
127 | 136 | | |
128 | | - | |
129 | | - | |
130 | | - | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
131 | 147 | | |
132 | | - | |
133 | | - | |
134 | | - | |
135 | | - | |
136 | | - | |
137 | | - | |
138 | | - | |
139 | | - | |
140 | | - | |
141 | | - | |
142 | | - | |
143 | | - | |
144 | | - | |
145 | 148 | | |
146 | 149 | | |
147 | 150 | | |
| |||
0 commit comments