Skip to content

Releases: unjs/nitro

v2.9.6

02 Apr 22:51
@pi0 pi0
3cb566e
Compare
Choose a tag to compare

compare changes

🩹 Fixes

  • Generate root/src directory aliases (#2318)
  • externals: Skip resolving virtual ids start with \0 (#2321)
  • types: Account for undefined value for $fetch return type (#2327)
  • cloudflare-pages: Use predefined wildcards in routes.exclude (#2319)

📖 Documentation

  • Remove outdated nightly warning (#2317)

❤️ Contributors

v2.9.5

25 Mar 19:29
@pi0 pi0
Compare
Choose a tag to compare

compare changes

✅ Fixes and Improvements

  • openapi: Add experimental /_nitro/scalar endpoint (#2252)
  • openapi: Use dynamic host + port (#2216)
  • openapi: Add schema to generated parameters (#2235)
  • openapi: Avoid double slash for base (fdf7e70a)
  • options: Set scheduledTasks to an empty object by default (#2285)
  • prerender: Call nitroApp close hook when done prerendering (#2287)
  • types: Return T from Serialize when it extends undefined (#2286)
  • raw: Exclude yaml from raw plugin (#2275)
  • externals: Check explicit inline rules on resolved id (#2288)
  • raw: Allow importing relative paths (#2289)
  • types: Make c12 env types available for NitroConfig (#2292)
  • netlify-edge: Write _headers and _redirects (#2291)
  • cloudflare-pages: Write _headers and _redirects for non static builds (#2290)
  • netlify: Allow writing config.json (#2264)
  • Allow importing utils from nitropack/runtime (#2314)
  • openapi: Upgrade to openapi 3.1 (#2297)
  • Use .d.ts for runtime generated types (#2313)

📖 Documentation

  • routing: Add note about middleware execution order (#2282)
  • routing: Fx link to h3 object syntax handler (#2281)
  • Update tasks return value (8a62e7db)
  • cache: Add a note for serverless environment (dc83a2e2)
  • Fix typo (#2298)

❤️ Contributors

v2.9.4

15 Mar 16:48
@pi0 pi0
cc24c20
Compare
Choose a tag to compare

compare changes

🩹 Fixes

  • Handle path negations when scanning public assets (#2250)
  • pkg: Add ioredis as unstorage peer dependency (#2266)

📖 Documentation

  • Fix server assets example path (#2248)
  • Remove duplicate integrity key (#2246)
  • Fix wording (#2261)
  • Remove nightly notice (39bc3f2e)
  • tasks: Update dev server usage (#2240)
  • cache: Add example usage for cache.varies (#2241)

❤️ Contributors

v2.9.3

10 Mar 10:15
@pi0 pi0
52b65c7
Compare
Choose a tag to compare

compare changes

🩹 Fixes

  • raw: Use mime to chck binary types and exclude .json (#2239)

📖 Documentation

❤️ Contributors

v2.9.2

08 Mar 21:01
@pi0 pi0
Compare
Choose a tag to compare

compare changes

🩹 Fixes

  • database: CamelCase the connector name (#2228)
  • Respect imports.autoImport: false (#2226)
  • server-assets: Mark yaml, json, json5 and csv as text (#2229)
  • import-meta: Import process from node:process for node compatible builds (deno) (#2225)

📖 Documentation

  • deploy: Add link to zero config providers (#2206)
  • fetch: Fix typo (#2209)
  • Fix typo (#2211)
  • Fix typo (#2205)
  • Remove lagon (#2204)
  • Update url for experimental database feature (#2210)
  • providers: Improve formatting & use new undocs components (#2202)
  • Improve cache page (674089b3)

❤️ Contributors

v2.9.1

29 Feb 11:33
@pi0 pi0
ed8a3db
Compare
Choose a tag to compare

compare changes

🩹 Fixes

  • Dev:remoteAddress might be undefined for x-forwarded-for (#2198)
  • Disable scheduled tasks in testing environment (#2200)

📖 Documentation

  • Add websocket chat demo to websocket api page (#2189)
  • Fix typo (#2190)
  • Fix typo (#2194)

🤖 CI

  • Skip cloudflare-pages test for windows (#2199)

❤️ Contributors

v2.9.0

28 Feb 12:34
@pi0 pi0
Compare
Choose a tag to compare

🎉 Released live from Vue.js Amsterdam

⭐ What is new?

📖 New Documentation

🧦 WebSockets API

🗄️ Database Layer

🏃‍♂️ Nitro Tasks

☑️ ESM-Ready WASM

All changes

compare changes

🚀 Enhancements

  • prerender: Support function/RegExp for prerender.ignore (#1966)
  • CLI: Show meta framework name on server build success (#1955)
  • Presets: Add zeabur preset (#1942)
  • Experimental nitro tasks (#1929)
  • Add types:extend hook (#1715)
  • Allow oveeridng nested runtime config with env (#1831)
  • wasm: Universal support with esm import syntax (#2017)
  • wasm: Migrate to unjs/unwasm (#2037)
  • zeabur: Support zeaburStatic and auto detect preset (#2014)
  • runtime-config: Experimental env expansion support (#2043)
  • Support binary server assets (#2107)
  • Experimental websocket support (#2170)
  • dev: Expose upgrade handler (5374429f)
  • Experimental database layer (#1351)
  • Experimental scheduled tasks (#2179)
  • cache: Support async shouldBypassCache and shouldInvalidateCache (#2181)
  • prerender: Add total prerender time (#2130)
  • Presets: Add koyeb preset (#1248)
  • providers: Support alwaysdata hosting provider (#1790)
  • routeRules: Allow wildcard redirects (#1976)

🩹 Fixes

  • rollup: Avoid preserving relative externals (#1972)
  • wasm: Directly generate chunk exports (#2003)
  • iis-node: Correctly escape backslashes for port fix (#2020)
  • deno-deploy: Shim x-forwarded-for and x-forwarded-proto headers (#2026)
  • Add baseURL to openapi generated url (#2049)
  • dev: Correctly set x-forwarded-* headers (29ddd948)
  • azure: Add 18 and 20 to supported node versions (#2077)
  • azure: Pass body to the context as-is (#2079)
  • dev: Only mock consola in production (#2110)
  • Default to bundler module resolution (#2120)
  • Handle optional routeHandler.route in rollup chunk (#2152)
  • File extension stripping in writeTypes function (#2139)
  • cache: Detect malformed data read from storage (#2161)
  • cacheEventHandler: Provide event.fetch and event.$fetch (#2066)
  • module: Resolve modules with jiti directly (#2030)

💅 Refactors

  • Include framework name in more build packages (#1973)
  • cloudflare: Remove --local from perview commands (#1979)
  • cloudflare: Remove unused import (#1980)
  • rollup: Improve generated chunk names (#2004)
  • Use name exports in presets entry (1abfc3e5)
  • Reimplement WASM plugin (#2031)
  • Various improvements around tasks api (#2175)
  • tasks: Stablize api (#2178)
  • github-pages: Add --dotfiles to deploy command hint (#2158)

📖 Documentation

  • routing: Update request filtering to match the type of getRequestURL (#1977)
  • config: Fix setResponseHeader example params (#2027)
  • netlify: Add note to make sure publish dist is set to dist (#2035)
  • cloudflare: Various updates, cleanups and fixes (#1981)
  • presets: Deprecate lagon (17f922aa)
  • Update the routing page (#2085)
  • Update the cache page (#2087)
  • Close code-group in cache section (#2093)
  • routing: Escape filename paths and prepend routes folder (#2097)
  • storage: Fix unstorage links (#2101)
  • routing: Fix typo for getRouterParam (#2098)
  • Update the storage page (#2086)
  • Add object syntax for event handler (#2091)
  • Update the configuration page (#2083)
  • Update the assets page (#2088)
  • Create a page on built-in fetch (#2089)
  • Add warning about azure functions stability (#2092)
  • cloudflare: Update deployment guide (#2074)
  • Fix icon of fetch page (#2115)
  • Update getting started page (#2082)
  • Fix links to /guide/auto-imports (#2131)
  • Fix typo in defineCachedFunction example (#2133)
  • Clarify difference between dir and baseURL (#2144)
  • Migrate to undocs (#2163)
  • index: Fix utils link (#2172)
  • websocket: Fix typo (#2173)
  • Fix typo (3017e6e2)
  • vercel: Add monorepo info (#2183)
  • Fix typo (#2182)
  • cloudflare: Add local bindings usage (#2135)
  • Fix link to h3 utils (#2184)
  • deploy: Add platform.sh (#1630)

📦 Build

  • Better dist chunk names (#2005)

✅ Tests

  • cloudflare: Migrate to miniflare v3 (#2018)
  • Enable azure tests behind a flag (#2076)
  • Enable binary response test for all presets (#2078)
  • Avoid prerendering icon.png (cb220f7e)

🤖 CI

  • Fix nightly release job condition (#1975)

❤️ Contributors

v2.8.1

29 Nov 17:51
@pi0 pi0
b53e001
Compare
Choose a tag to compare

compare changes

🩹 Fixes

  • dev: Conditionally access worker address for build info (#1947)
  • Force use wasm import strategy for windows (e73b849f)
  • netlify-lambda: Handle base64 encoded body (#1940)
  • cloudflare: Wasm support with dynamic chunks (#1957)
  • prerenderer: Write responses with json signature to original path (#1963)

📖 Documentation

  • cache: Make default value swr: true more clear (#1949)

🏡 Chore

✅ Tests

  • Add tests for wasm (#1951)
  • cloudflare-pages: Remover overlapping include rules (789a13d3)

❤️ Contributors

v2.8.0

20 Nov 15:51
@pi0 pi0
088fa34
Compare
Choose a tag to compare

🌟 What is new?

🚀 Zero config deployment to AWS Amplify Hosting

We have been closely working with the AWS Amplify team to bring you a zero-config experience AWS deployment and it is ready today! Read more in the deployment guide.

🔥 Code splitting enabled for Cloudflare Pages and Modules

Code-splitting support is now enabled for Cloudflare Pages and Modules presets making startup-time even faster by leveraging lazy chunks. (read more: (#1905))

🍣 Rollup v4 with native SWC-based parser

We've upgraded Nitro to the latest Rollup v4, powered native SWC-based parser for even faster builds (rollup/rollup#5073) 🔥

Normally, you won't need any specific changes in your project. You can also ignore warnings about compatibility with rollup-plugin-visualizer. If you're adding a custom Rollup plugin or using Vite v4, you might encounter type issues due to duplicate dependencies. You can either use the resolutions field in your package.json or simply ignore this warning until Nuxt upgrades to Vite v5 (soon!).

🧩 Modules support to extend Nitro core

With this release, we have introduced a new advanced feature to extend the Nitro builder core. (more documentation will be available soon)

Example: modules/test.ts (server/modules/test.ts for Nuxt projects)

import type { NitroModule } from "nitropack";

export default <NitroModule>{
  name: "my-nitro-module",
  async setup(nitro) {
    console.log("Running custom nitro module...");
    await nitro.updateConfig({
      routeRules: {
        "/**": { swr: true },
      },
    });
  },
};

⚡️ H3 v1.9

h3 v1.9.0 comes with new getValidatedRouterParamsand getRequestFingerprint utilities, decode options for getRouterParam and auto-completion for headers in your IDE!

image

🔥 More coming soon

There are more exciting features including tasks, db layer, and WebSocket API planned for the next minor releases. Stay tuned!

Changelog

compare changes

🚀 Enhancements

  • Support modules to extend nitro builder (#1789)
  • Support inline mode for serveStatic (#1864)
  • Add experimental winterjs preset (#1863)
  • Allow setting preset using SERVER_PRESET environment variable (#1870)
  • cloudflare-pages, Cloudflare-module: Enable code splitting by default (#1905)
  • Support framework config (#1843)
  • Add AWS Amplify Hosting preset (#1912)
  • Upgrade to Rollup v4 (#1927)
  • Improve nitro.json build info (#1930)
  • aws-amplify: Support static builds (#1933)
  • Add defineNitroErrorHandler type helper (#1923)

🩹 Fixes

  • cloudflare-pages: Filter out overlapping public assets dirs (#1859)
  • scanner: Allow having HTTP method as part of the route name (#1895)
  • Generate route types with resolve path and stripped extension (#1897)
  • Scan dirs for unimport on initialization (#1908)
  • aws-amplify: Register and auto detect (0f38eb6f)
  • prerender: Decode generated routes (#1914)
  • Disabled public asset handler name is null (b7a6a1a6)
  • prerender: Decode URIs in headers (#1932)
  • error: Respect accept: text/html request header (#1921)
  • prerender: Filter encoded links starting with # (#1936)

💅 Refactors

  • deno-deploy: Use Deno.serve (#1879)
  • Split preset types (#1910)

📖 Documentation

  • deploy: Split runtimes from providers (#1865)
  • routing: Add note about middleware returns (#1884)
  • Update edge links to nightly (#1902)
  • deploy: Add deno to runtime list (#1899)
  • cloudflare: Update wrangler link (#1913)
  • aws-amplify: Add custom amplify.yml (f412af16)
  • amplify: Remove cache from config (7bbb723e)
  • Hide winterjs due to instability (048c8ff0)
  • Add jsdoc for cache.maxAge (#1878)

🌊 Types

  • Export SerializeTuple and SerializeObject types (#1907)

❤️ Contributors

v2.7.2

28 Oct 13:53
@pi0 pi0
Compare
Choose a tag to compare

compare changes

🩹 Fixes

  • cloudflare-pages: Filter out overlapping public assets dirs (#1859)

❤️ Contributors