Bun v1.3.4: URLPattern, fake timers, lepší buildy a desítky oprav

Publikováno: 10.12.2025

Bun 1.3.4 přináší praktické vylepšení a opravy, které usnadňují vývoj aplikací v JavaScriptu a TypeScriptu. Novinky zahrnují moderní routing, rychlejší testování a stabilnější runtime.

Celý článek

Bun vydal verzi 1.3.4, která navazuje na velkou řadu změn z Bun 1.3, ale tentokrát se zaměřuje na praktické věci: stabilita, detailní API vylepšení, testování, opravy kompatibility a drobnosti.

Tahle verze není žádná revoluce, je to „daily driver“ update, který zlepší práci s Bunem v produkci i ve vývoji.

URLPattern – moderní práce s routováním

Bun nyní kompletně implementuje URLPattern Web API. Pokud píšete webové servery, API nebo routery, tohle budete používat pořád. URLPattern umožňuje deklarativně popsat strukturu cesty a extrahovat parametry bez ručního parsování.

// Match URLs with a user ID parameterconst pattern = new URLPattern({ pathname: "/users/:id" });

pattern.test("https://example.com/users/123"); // true
pattern.test("https://example.com/posts/456"); // falseconst result = pattern.exec("https://example.com/users/123");
console.log(result.pathname.groups.id); // "123"// Wildcard matchingconst filesPattern = new URLPattern({ pathname: "/files/*" });
const match = filesPattern.exec("https://example.com/files/image.png");
console.log(match.pathname.groups[0]); // "image.png"

Tohle API se už objevilo v browserech, Denu a ve standardech. Bun ho tím pádem sjednocuje napříč platformami.

Fake timers v bun:test – testy bez čekání

Jedna z věcí, která výrazně zjednodušuje život, jsou fake timers. Bun teď přidává vlastní implementaci kompatibilní s očekávaným chováním setTimeout, setInterval, Date.now() a dalších časových funkcí.

Ukázka:

import { test, expect, jest } from"bun:test";

test("fake timers", () => {
  jest.useFakeTimers();

  let called = false;
  setTimeout(() => {
    called = true;
  }, 1000);

  expect(called).toBe(false);

  // Advance time by 1 second
  jest.advanceTimersByTime(1000);

  expect(called).toBe(true);

  jest.useRealTimers();
});

Vlastní proxy hlavičky při používání fetch()

Bun přidává možnost přidat vlastní hlavičky do proxy požadavků (když je fetch přesměrován přes proxy server).

Tohle může být důležité pro:

  • autentizace vůči proxy
  • firemní prostředí s řízenými přístupy
  • interní směrování requestů

Ukázka:

// String format still works
fetch(url, { proxy: "http://proxy.example.com:8080" });

// New object format with custom headers
fetch(url, {
  proxy: {
    url: "http://proxy.example.com:8080",
    headers: {
      "Proxy-Authorization": "Bearer token",
      "X-Custom-Proxy-Header": "value",
    },
  },
});

Malý detail, ale prakticky velmi často potřeba.

Opravy http.Agent a lepší connection pooling

Bun opravil problém, který způsoboval neefektivní nakládání s persistentními připojeními (keepAlive: true).

Pokud používáte Bun pro HTTP-heavy služby, tohle je okamžité vylepšení výkonu.

Build s --compile už standardně nenačítá konfigurace během běhu

Při spuštění programu se hledaly a znovu načítaly soubory jako tsconfig.json, package.json nebo jiné konfigurace.

To bylo nepraktické, protože:

  • build měl být „uzavřený“
  • produkční prostředí stejně tyto soubory často neobsahuje
  • zpomalovalo to start

Nové chování:

  • konfigurace se už nenačítají
  • build je opravdu „self-contained“

Pokud váš soubor potřebuje za běhu číst tyto konfigurační soubory, můžete to udělat pomocí nových CLI flags:

# Enable runtime loading of tsconfig.json
bun build --compile --compile-autoload-tsconfig ./app.ts

# Enable runtime loading of package.json
bun build --compile --compile-autoload-package-json ./app.ts

# Enable both
bun build --compile --compile-autoload-tsconfig --compile-autoload-package-json ./app.ts

nebo přes JavaScript API:

await Bun.build({
  entrypoints: ["./app.ts"],
  compile: {
    autoloadTsconfig: true,
    autoloadPackageJson: true,
    autoloadDotenv: true,
    autoloadBunfig: true,
  },
});

Pokud někdo potřebuje staré chování, stále jej může zapnout explicitně.

console.log umí %j – rychlé JSON dumpy

Bun přidává podporu pro formátovací marker %j, známý z Node.js.

console.log("%j", { foo: "bar" });
// {"foo":"bar"}console.log("%j %s", { status: "ok" }, "done");
// {"status":"ok"} doneconsole.log("%j", [1, 2, 3]);
// [1,2,3]

Desítky oprav, kompatibility a drobností

Tahle verze má dlouhý changelog oprav. Například:

  • opravy v bundleru
  • opravy v bun install
  • zlepšená kompatibilita s Node API
  • fixy pro Windows buildy
  • vylepšení FFI
  • stabilnější vývojový server

Tohle je přesně ten typ verze, u které má smysl aktualizovat hned, protože nezahrnuje nic velkého a pouze zlepšuje prostředí pro vývojáře.

Závěr

Bun 1.3.4 je pouze praktický update, který výrazně zlepšuje každodenní práci. Přináší moderní URLPattern pro routing, fake timers pro profesionální testování, stabilnější runtime, spolehlivější buildy a desítky oprav napříč systémem. Pokud Bun používáte pro backend, buildování nebo testy, tenhle upgrade dává jednoznačně smysl.

Nahoru
Tento web používá k poskytování služeb a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tímto souhlasíte. Další informace