@vzn/vx 0.0.248 → 0.0.249

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.248",
3
+ "version": "0.0.249",
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.248",
21
- "@vzn/vx-linux-arm64": "0.0.248",
22
- "@vzn/vx-darwin-x64": "0.0.248",
23
- "@vzn/vx-darwin-arm64": "0.0.248"
20
+ "@vzn/vx-linux-x64": "0.0.249",
21
+ "@vzn/vx-linux-arm64": "0.0.249",
22
+ "@vzn/vx-darwin-x64": "0.0.249",
23
+ "@vzn/vx-darwin-arm64": "0.0.249"
24
24
  },
25
25
  "dependencies": {
26
26
  "@anthropic-ai/sandbox-runtime": "^0.0.76"
@@ -386,8 +386,11 @@ export async function loadProjectConfigs(
386
386
  evaluated?: readonly [string, string]
387
387
  closure?: readonly [string, readonly string[]]
388
388
  }
389
- const builtins = builtinSnapshot()
390
- const env = { ...process.env }
389
+ // Taken only when a config is evaluated in this process: reading every
390
+ // descriptor of `Bun` makes Bun build its lazy members (`bun:sql`,
391
+ // `node:stream`), ~7 ms of a two-config warm run where every load hit.
392
+ let builtins: BuiltinSnapshot = []
393
+ let env: Readonly<Record<string, string | undefined>> = {}
391
394
  const loadOne = async (entry: (typeof prepared)[number]): Promise<Loaded> => {
392
395
  const { configPath, cacheKey } = entry
393
396
  // A fast key that missed: the closure is stale or the file changed.
@@ -470,6 +473,10 @@ export async function loadProjectConfigs(
470
473
  if (cached !== undefined) results[i] = { config: cached }
471
474
  else misses.push(i)
472
475
  }
476
+ if (misses.length > 0) {
477
+ builtins = builtinSnapshot()
478
+ env = { ...process.env }
479
+ }
473
480
  let next = 0
474
481
  const lane = async (): Promise<void> => {
475
482
  while (next < misses.length) {
@@ -486,7 +493,7 @@ export async function loadProjectConfigs(
486
493
  if (r.closure !== undefined) learnedClosures.push(r.closure)
487
494
  }
488
495
  }
489
- const changed = [...restoreBuiltins(builtins), ...restoreEnv(env)]
496
+ const changed = misses.length > 0 ? [...restoreBuiltins(builtins), ...restoreEnv(env)] : []
490
497
  if (first !== undefined) throw first.failed
491
498
  if (changed.length > 0) throw builtinsChanged(changed)
492
499
  return results.map((r) => (r as Loaded).config)