@vzn/vx 0.0.30 → 0.0.31
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/select.ts +26 -5
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vzn/vx",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.31",
|
|
4
4
|
"description": "An open, extensible monorepo task runner.",
|
|
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.31",
|
|
21
|
+
"@vzn/vx-linux-arm64": "0.0.31",
|
|
22
|
+
"@vzn/vx-darwin-x64": "0.0.31",
|
|
23
|
+
"@vzn/vx-darwin-arm64": "0.0.31"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@anthropic-ai/sandbox-runtime": "^0.0.76"
|
package/src/cli/select.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import readline from 'node:readline/promises'
|
|
7
7
|
import path from 'node:path'
|
|
8
|
+
import fs from 'node:fs'
|
|
8
9
|
import {
|
|
9
10
|
affectedProjects,
|
|
10
11
|
refIsHead,
|
|
@@ -115,13 +116,33 @@ async function loadWorkspaceProjects(cwd: string): Promise<ProjectMeta[]> {
|
|
|
115
116
|
export async function findCwdProject(cwd: string): Promise<string | null> {
|
|
116
117
|
const projects = await loadWorkspaceProjects(cwd)
|
|
117
118
|
const abs = path.resolve(cwd)
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
119
|
+
const within = (dirOf: (p: ProjectMeta) => string): string | null => {
|
|
120
|
+
let best: string | null = null
|
|
121
|
+
let bestLength = -1
|
|
122
|
+
for (const p of projects) {
|
|
123
|
+
const dir = dirOf(p)
|
|
124
|
+
if ((abs === dir || abs.startsWith(dir + path.sep)) && dir.length > bestLength) {
|
|
125
|
+
best = p.name
|
|
126
|
+
bestLength = dir.length
|
|
127
|
+
}
|
|
122
128
|
}
|
|
129
|
+
return best
|
|
123
130
|
}
|
|
124
|
-
|
|
131
|
+
// The cwd is a real path (the kernel's), and a member discovery reached
|
|
132
|
+
// through a link keeps the link's (`packages/b -> ../ext/b`, item 987),
|
|
133
|
+
// so inside such a member nothing matched and a run from there was "not
|
|
134
|
+
// inside a project" (item 1025). Only then are the members realpathed:
|
|
135
|
+
// one syscall each, paid only by a run no plain match could place.
|
|
136
|
+
return (
|
|
137
|
+
within((p) => p.dir) ??
|
|
138
|
+
within((p) => {
|
|
139
|
+
try {
|
|
140
|
+
return fs.realpathSync(p.dir)
|
|
141
|
+
} catch {
|
|
142
|
+
return p.dir
|
|
143
|
+
}
|
|
144
|
+
})
|
|
145
|
+
)
|
|
125
146
|
}
|
|
126
147
|
|
|
127
148
|
export type FilterResolution =
|