@vzn/vx 0.0.269 → 0.0.271
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +5 -5
- package/src/cli/show.ts +6 -1
- package/src/orchestrator/prepare.ts +11 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vzn/vx",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.271",
|
|
4
4
|
"description": "A fast, correct task runner and build cache for JavaScript monorepos.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
"node": ">=18"
|
|
18
18
|
},
|
|
19
19
|
"optionalDependencies": {
|
|
20
|
-
"@vzn/vx-linux-x64": "0.0.
|
|
21
|
-
"@vzn/vx-linux-arm64": "0.0.
|
|
22
|
-
"@vzn/vx-darwin-x64": "0.0.
|
|
23
|
-
"@vzn/vx-darwin-arm64": "0.0.
|
|
20
|
+
"@vzn/vx-linux-x64": "0.0.271",
|
|
21
|
+
"@vzn/vx-linux-arm64": "0.0.271",
|
|
22
|
+
"@vzn/vx-darwin-x64": "0.0.271",
|
|
23
|
+
"@vzn/vx-darwin-arm64": "0.0.271"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@anthropic-ai/sandbox-runtime": "^0.0.76"
|
package/src/cli/show.ts
CHANGED
|
@@ -34,6 +34,9 @@ export function parseShowArgs(args: readonly string[]): ShowArgs {
|
|
|
34
34
|
else if (a.startsWith('--format=')) format = a.slice('--format='.length)
|
|
35
35
|
else if (a.startsWith('-'))
|
|
36
36
|
return { ...out, error: `unknown flag: ${a}${flagHint('show', a)}${seeHelp('show')}` }
|
|
37
|
+
else if (out.target === 'project')
|
|
38
|
+
// Nx's spelling: `nx show project <name>`.
|
|
39
|
+
return { ...out, error: `\`nx show project ${a}\` is \`vx show ${a}\` here` }
|
|
37
40
|
else if (out.target !== undefined)
|
|
38
41
|
return { ...out, error: `unexpected argument: ${a}${seeHelp('show')}` }
|
|
39
42
|
// An empty name is a part of every name: its "did you mean" listed the
|
|
@@ -103,8 +106,10 @@ export async function showCmd(args: readonly string[]): Promise<number> {
|
|
|
103
106
|
const names = new Set<string>()
|
|
104
107
|
for (const p of projects.values())
|
|
105
108
|
for (const t of Object.keys(p.config.tasks ?? {})) names.add(t)
|
|
109
|
+
// `nx show projects` lists them; here a bare `vx show` does.
|
|
110
|
+
const nx = projectName === 'projects' ? ' (`nx show projects` is `vx show` here)' : ''
|
|
106
111
|
throw new UserError(
|
|
107
|
-
`unknown project or task: "${projectName}"${suggest(projectName!, [...byName.keys(), ...names])}`,
|
|
112
|
+
`unknown project or task: "${projectName}"${nx}${suggest(projectName!, [...byName.keys(), ...names])}`,
|
|
108
113
|
)
|
|
109
114
|
}
|
|
110
115
|
process.stdout.write(renderTaskAcross(root, declaring, projectName!, parsed.format))
|
|
@@ -216,9 +216,17 @@ export async function prepareRun(options: RunOptions, log: Logger): Promise<Prep
|
|
|
216
216
|
// across the whole workspace — but when EVERY spec is anchored, the
|
|
217
217
|
// anchors alone are the scope and nothing else needs its config
|
|
218
218
|
// evaluated.
|
|
219
|
+
// `vx run //#lint` is Turbo's `turbo run //#lint`: the root project's
|
|
220
|
+
// task, the root named by its package.json name here (D-39).
|
|
221
|
+
const root = path.resolve(workspaceRoot)
|
|
222
|
+
const rootName = projectMetas.find((m) => path.resolve(m.dir) === root)?.name
|
|
223
|
+
const tasks =
|
|
224
|
+
rootName === undefined
|
|
225
|
+
? options.tasks
|
|
226
|
+
: options.tasks.map((t) => (t.startsWith('//#') ? `${rootName}#${t.slice(3)}` : t))
|
|
219
227
|
const anchored: string[] = []
|
|
220
228
|
let hasBare = false
|
|
221
|
-
for (const spec of
|
|
229
|
+
for (const spec of tasks) {
|
|
222
230
|
const hashIdx = spec.indexOf('#')
|
|
223
231
|
if (hashIdx > 0) anchored.push(spec.slice(0, hashIdx))
|
|
224
232
|
else hasBare = true
|
|
@@ -305,8 +313,8 @@ export async function prepareRun(options: RunOptions, log: Logger): Promise<Prep
|
|
|
305
313
|
? options.projects.filter((p) => projects.has(p))
|
|
306
314
|
: [...projects.keys()]
|
|
307
315
|
|
|
308
|
-
const requested = expandRequested(
|
|
309
|
-
let unresolvedTasks = unresolvedRequests(
|
|
316
|
+
const requested = expandRequested(tasks, candidateProjects, projects)
|
|
317
|
+
let unresolvedTasks = unresolvedRequests(tasks, candidateProjects, projects)
|
|
310
318
|
if (options.selectedByDiff === true && unresolvedTasks.some((t) => !t.includes('#'))) {
|
|
311
319
|
// A name a loaded project declares is no typo, whether or not the load
|
|
312
320
|
// was whole: an unaffected dependency loaded for the closure declared
|