@vzn/vx 0.0.533 → 0.0.534

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vzn/vx",
3
- "version": "0.0.533",
3
+ "version": "0.0.534",
4
4
  "description": "The fastest task runner and build cache for JavaScript monorepos.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -21,10 +21,10 @@
21
21
  "node": ">=18"
22
22
  },
23
23
  "optionalDependencies": {
24
- "@vzn/vx-linux-x64": "0.0.533",
25
- "@vzn/vx-linux-arm64": "0.0.533",
26
- "@vzn/vx-darwin-x64": "0.0.533",
27
- "@vzn/vx-darwin-arm64": "0.0.533"
24
+ "@vzn/vx-linux-x64": "0.0.534",
25
+ "@vzn/vx-linux-arm64": "0.0.534",
26
+ "@vzn/vx-darwin-x64": "0.0.534",
27
+ "@vzn/vx-darwin-arm64": "0.0.534"
28
28
  },
29
29
  "dependencies": {
30
30
  "@anthropic-ai/sandbox-runtime": "^0.0.76"
package/src/cli/show.ts CHANGED
@@ -266,8 +266,11 @@ function renderProject(
266
266
  return `${JSON.stringify(JSON.parse(JSON.stringify({ name, dir, config: shown })), null, 2)}\n`
267
267
  }
268
268
  const tags = config?.tags ?? []
269
- const head = `${name} — ${dir}${tags.length > 0 ? `\n tags: ${tags.join(', ')}` : ''}`
270
269
  const tasks = Object.entries(config?.tasks ?? {})
270
+ const head = `${name} — ${dir}${tags.length > 0 ? `\n tags: ${tags.join(', ')}` : ''}${
271
+ // A config-less package a dependant reaches has the default `build` (X-9).
272
+ hasConfigFile || tasks.length === 0 ? '' : '\n (no vx config)'
273
+ }`
271
274
  if (tasks.length === 0)
272
275
  return `${head}\n ${hasConfigFile ? '(no tasks declared)' : '(no vx config)'}\n`
273
276
  const blocks = tasks.map(([taskName, task]) => taskBlock(taskName, task))
@@ -179,13 +179,16 @@ export async function loadProjects(args: LoadProjectsArgs): Promise<LoadedProjec
179
179
  // scripts mapped onto packages that never wrote a `vx.config.ts`). It
180
180
  // then loads as `{ tasks: {} }` — nothing to evaluate, nothing to freeze
181
181
  // — and the stage runs on that like on any loaded config. With no
182
- // `project` plugin a plain run never visits (or fences, or seeds) a
183
- // config-less package.
182
+ // `project` plugin a plain run never seeds (or fences) a config-less
183
+ // package, but loads one a loaded project's closure reaches: it gets the
184
+ // default `build`, so a dependant bundling its source is keyed on it
185
+ // behind `^build`. Left out, its edit replayed the dependant's stale
186
+ // output as a hit (X-9).
184
187
  const projectStage = hasHook(plugins, 'project')
185
188
  const configured = args.projectMetas.filter(
186
189
  (m) => projectStage || (typeof m.configPath === 'string' && m.configPath.length > 0),
187
190
  )
188
- const metaByName = new Map<string, ProjectMeta>(configured.map((m) => [m.name, m]))
191
+ const metaByName = new Map<string, ProjectMeta>(args.projectMetas.map((m) => [m.name, m]))
189
192
  const needed = new Set<string>()
190
193
  const pending: ProjectMeta[] = []
191
194
  // Counted, not read off `pending`: a round empties `pending`, and a guard
@@ -212,10 +215,11 @@ export async function loadProjects(args: LoadProjectsArgs): Promise<LoadedProjec
212
215
  walked.add(name)
213
216
  for (const dep of packageGraph.transitiveDeps(name)) consider(dep)
214
217
  }
215
- const seeds = args.seeds === 'all' ? metaByName.keys() : [...args.seeds]
218
+ const seedAll = (): Iterable<string> => configured.map((m) => m.name)
219
+ const seeds = args.seeds === 'all' ? seedAll() : [...args.seeds]
216
220
  for (const seed of seeds) consider(seed)
217
221
  if (graph !== null && pending.length < metaByName.size) {
218
- for (const seed of args.seeds === 'all' ? metaByName.keys() : seeds) {
222
+ for (const seed of args.seeds === 'all' ? seedAll() : seeds) {
219
223
  considerWithDeps(graph, seed)
220
224
  }
221
225
  }