Přejít k navigační liště

Zdroják » JavaScript » Bun v1.3.4: URLPattern, fake timers, lepší buildy a desítky oprav

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

Články JavaScript

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.

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 parameter
const pattern = new URLPattern({ pathname: "/users/:id" });

pattern.test("https://example.com/users/123"); // true
pattern.test("https://example.com/posts/456"); // false

const result = pattern.exec("https://example.com/users/123");
console.log(result.pathname.groups.id); // "123"

// Wildcard matching
const filesPattern = new URLPattern({ pathname: "/files/*" });
const match = filesPattern.exec("https://example.com/files/image.png");
console.log(match.pathname.groups[0]); // "image.png"Code language: JavaScript (javascript)

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();
});Code language: JavaScript (javascript)

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",
    },
  },
});Code language: JavaScript (javascript)

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
Code language: PHP (php)

nebo přes JavaScript API:

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

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"} done

console.log("%j", [1, 2, 3]);
// [1,2,3]Code language: JavaScript (javascript)

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.

Komentáře

Odebírat
Upozornit na
guest
0 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
Zobrazit všechny komentáře

Vite 8 Beta přináší nový bundler Rolldown a zásadní zrychlení buildů

Vite je moderní nástroj pro vývoj webových aplikací, který klade důraz na rychlost a jednoduchou konfiguraci. Umožňuje okamžitý start dev serveru a optimalizované produkční buildy, což urychluje vývoj i nasazení. Verze 8 Beta přináší zásadní změnu díky integraci bundleru Rolldown napsaného v Rustu, který sjednocuje vývojovou a produkční pipeline. Novinka výrazně zrychluje buildy a přináší moderní optimalizace. Součástí jsou také nové funkce pro TypeScript a připravovaný Full Bundle Mode pro rychlejší dev server.

Stack Overflow spouští AI Assist: nový nástroj pro moderní vývojáře

Stack Overflow představil AI Assist, nástroj, který propojuje generativní AI s rozsáhlou databází ověřených znalostí komunity. Platforma, která byla více než 18 let klíčovým zdrojem řešení pro vývojáře po celém světě, tím reaguje na změny ve způsobu práce s informacemi. Cílem AI Assist je zrychlit hledání odpovědí, zvýšit jejich spolehlivost a nabídnout kontext, který pomáhá lépe porozumět problému i řešení. Tento krok odráží trend, kdy se vývojáři čím dál více obracejí na nástroje, které dokážou kombinovat rychlost AI s ověřenými znalostmi komunity. AI Assist se tak stává mostem mezi tradičním Q&A formátem a moderními interaktivními asistenty.

Austrálie vs. sociální sítě: ochrana dětí nebo absurdní regulace?

Různé
Komentáře: 1
Austrálie chystá razantní krok – od prosince 2025 budou děti mladší 16 let muset opustit sociální sítě. Ministryně komunikací Anika Wells ujistila, že vláda se nenechá zastrašit technologickými giganty. Zákon má chránit mladé uživatele před negativními dopady online světa, ale kritici varují, že může vést spíš k obcházení pravidel než k reálné ochraně.