@astrojs/deno
β¨ Major Changes
-
#8188
d0679a666Thanks @ematipico! - Remove support for Node 16. The lowest supported version by Astro and all integrations is now v18.14.1. As a reminder, Node 16 will be deprecated on the 11th September 2023. -
#8179
6011d52d3Thanks @matthewp! - Astro 3.0 Release Candidate
πΏ Minor Changes
-
#8188
cd2d7e769Thanks @ematipico! - Introduced the concept of feature map. A feature map is a list of features that are built-in in Astro, and an Adapter can tell Astro if it can support it.import { AstroIntegration } from './astro';function myIntegration(): AstroIntegration {return {name: 'astro-awesome-list',// new feature mapsupportedAstroFeatures: {hybridOutput: 'experimental',staticOutput: 'stable',serverOutput: 'stable',assets: {supportKind: 'stable',isSharpCompatible: false,isSquooshCompatible: false,},},};}
π Patch Changes
-
#8245
ed39fbf16Thanks @florian-lefebvre! - TypeScript users now get better suggestions when configuring the Deno adapter. -
Updated dependencies [
d0679a666,db39206cb,adf9fccfd,0c7b42dc6,46c4c0e05,364d861bd,2484dc408,81545197a,6011d52d3,c2c71d90c,cd2d7e769,80f1494cd,e45f30293,c0de7a7b0,65c354969,3c3100851,34cb20021,a824863ab,44f7a2872,1048aca55,be6bbd2c8,9e021a91c,7511a4980,c37632a20,acf652fc1,42785c7b7,8450379db,dbc97b121,7d2f311d4,2540feedb,ea7ff5177,68efd4a8b,7bd1b86f8,036388f66,519a1c4e8,1f58a7a1b,2ae9d37f0,a8f35777e,70f34f5a3,5208a3c8f,84af8ed9d,f003e7364,ffc9e2d3d,732111cdc,0f637c71e,33b8910cf,8a5b0c1f3,148e61d24,e79e3779d,632579dc2,3674584e0,1db4e92c1,e7f872e91,16f09dfff,4477bb41c,55c10d1d5,3e834293d,96beb883a,997a0db8a,80f1494cd,0f0625504,e1ae56e72,f32d093a2,f01eb585e,b76c166bd,a87cbe400,866ed4098,767eb6866,32669cd47]:- astro@3.0.0
-
β¨ Major Changes
π Patch Changes
β¨ Major Changes
1eae2e3f7Thanks @Princesseuh! - Remove support for Node 16. The lowest supported version by Astro and all integrations is now v18.14.1. As a reminder, Node 16 will be deprecated on the 11th September 2023.
πΏ Minor Changes
-
9b4f70a62Thanks @ematipico! - Introduced the concept of feature map. A feature map is a list of features that are built-in in Astro, and an Adapter can tell Astro if it can support it.import { AstroIntegration } from './astro';function myIntegration(): AstroIntegration {return {name: 'astro-awesome-list',// new feature mapsupportedAstroFeatures: {hybridOutput: 'experimental',staticOutput: 'stable',serverOutput: 'stable',assets: {supportKind: 'stable',isSharpCompatible: false,isSquooshCompatible: false,},},};}
π Patch Changes
πΏ Minor Changes
- #7687
0a1b33349Thanks @kwhinnery! - Update build target for Deno to esnext to allow supported language features on the runtime.
π Patch Changes
- #7687
π Patch Changes
-
#6991
719002ca5Thanks @MoustaphaDev! - Enable experimental support for hybrid SSR with pre-rendering enabled by defaultastro.config.mjs
import { defineConfig } from 'astro/config';export defaultdefineConfig({output: 'hybrid',experimental: {hybridOutput: true,},})Then add
export const prerender = falseto any page or endpoint you want to opt-out of pre-rendering.src/pages/contact.astro
---export const prerender = false;if (Astro.request.method === 'POST') {// handle form submission}---<form method="POST"><input type="text" name="name" /><input type="email" name="email" /><button type="submit">Submit</button></form> -
#7104
826e02890Thanks @bluwy! - Specify"files"field to only publish necessary files -
Updated dependencies [
4516d7b22,e186ecc5e,c6d7ebefd,914c439bc,e9fc2c221,075eee08f,719002ca5,fc52681ba,fb84622af,cada10a46,cd410c5eb,73ec6f6c1,410428672,763ff2d1e,c1669c001,3d525efc9]:- astro@2.5.0
-
π Patch Changes
-
#6248
ef5cea4dcThanks @wulinsheng123! - Deno SSR with prerender=true complains about invalid URL scheme -
Updated dependencies [
ef5cea4dc,2fec47848]:- astro@2.0.13
-
β¨ Major Changes
-
#5584
9963c6e4d& #5842c4b0cb8bfThanks @wulinsheng123 and @natemoo-re! - Breaking Change: client assets are built to an_astrodirectory in the build output directory. Previously these were built to various locations, includingassets/,chunks/and the root of build output.You can control this location with the new
buildconfiguration option namedassets. -
#5707
5eba34fccThanks @bluwy! - Removeastro:build:startbackwards compatibility code -
#5806
7572f7402Thanks @matthewp! - Make astro a peerDependency of integrationsThis marks
astroas a peerDependency of several packages that are already gettingmajorversion bumps. This is so we can more properly track the dependency between them and what version of Astro they are being used with.
π Patch Changes
- Updated dependencies [
93e633922,16dc36a87,01f3f463b,e2019be6f,05caf445d,49ab4f231,a342a486c,8fb28648f,1f92d64ea,c2180746b,ae8a012a7,cf2de5422,ce5c5dbd4,ec09bb664,665a2c222,259a539d7,f7aa1ec25,4987d6f44,304823811,302e0ef8f,55cea0a9d,dd56c1941,9963c6e4d,be901dc98,f6cf92b48,e818cc046,8c100a6fe,116d8835c,840412128,1f49cddf9,7325df412,16c7d0bfd,a9c292026,2a5786419,4a1cabfe6,a8d3e7924,fa8c131f8,64b8082e7,c4b0cb8bf,23dc9ea96,63a6ceb38,a3a7fc929,52209ca2a,5fd9208d4,5eba34fcc,899214298,3a00ecb3e,5eba34fcc,2303f9514,1ca81c16b,b66d7195c]:- astro@2.0.0
-
β¨ Major Changes
-
#5842
c4b0cb8bfThanks @natemoo-re! - Breaking Change: client assets are built to an_astrodirectory in the build output directory. Previously these were built to various locations, includingassets/,chunks/and the root of build output.You can control this location with the new
buildconfiguration option namedassets. -
#5806
7572f7402Thanks @matthewp! - Make astro a peerDependency of integrationsThis marks
astroas a peerDependency of several packages that are already gettingmajorversion bumps. This is so we can more properly track the dependency between them and what version of Astro they are being used with.
π Patch Changes
-
β¨ Major Changes
- #5584
9963c6e4dThanks @wulinsheng123! - Builds chunks into theassetsfolder. This simplifies configuring immutable caching with your adapter provider as all files are now in the sameassetsfolder.
- #5584
β¨ Major Changes
-
#5290
b2b291d29Thanks @matthewp! - Handle base configuration in adaptersThis allows adapters to correctly handle
baseconfiguration. Internally Astro now matches routes when the URL includes thebase.Adapters now also have access to the
removeBasemethod which will remove thebasefrom a pathname. This is useful to look up files for static assets.
π Patch Changes
-
πΏ Minor Changes
-
#5056
e55af8a23Thanks @matthewp! - # New build configurationThe ability to customize SSR build configuration more granularly is now available in Astro. You can now customize the output folder for
server(the server code for SSR),client(your client-side JavaScript and assets), andserverEntry(the name of the entrypoint server module). Here are the defaults:import { defineConfig } from 'astro/config';export default defineConfig({output: 'server',build: {server: './dist/server/',client: './dist/client/',serverEntry: 'entry.mjs',},});These new configuration options are only supported in SSR mode and are ignored when building to SSG (a static site).
The integration hook
astro:build:startincludes a parambuildConfigwhich includes all of these same options. You can continue to use this param in Astro 1.x, but it is deprecated in favor of the newbuild.configoptions. All of the built-in adapters have been updated to the new format. If you have an integration that depends on this param we suggest upgrading to do this instead:export default function myIntegration() {return {name: 'my-integration',hooks: {'astro:config:setup': ({ updateConfig }) => {updateConfig({build: {server: '...',},});},},};}
-
πΏ Minor Changes
-
#4876
d3091f89eThanks @matthewp! - Adds the Astro.cookies APIAstro.cookiesis a new API for manipulating cookies in Astro components and API routes.In Astro components, the new
Astro.cookiesobject is a map-like object that allows you to get, set, delete, and check for a cookieβs existence (has):---type Prefs = {darkMode: boolean;};Astro.cookies.set<Prefs>('prefs',{ darkMode: true },{expires: '1 month',});const prefs = Astro.cookies.get<Prefs>('prefs').json();---<body data-theme={prefs.darkMode ? 'dark' : 'light'}></body>Once youβve set a cookie with Astro.cookies it will automatically be included in the outgoing response.
This API is also available with the same functionality in API routes:
export function post({ cookies }) {cookies.set('loggedIn', false);return new Response(null, {status: 302,headers: {Location: '/login',},});}See the RFC to learn more.
-