0
Fork 0
mirror of https://github.com/withastro/astro.git synced 2024-12-23 21:53:55 -05:00
Commit graph

65 commits

Author SHA1 Message Date
Emanuele Stoppa
bcc504dae0
chore: add rule switch-exhaustiveness-check (#9867)
* chore: add rule `switch-exhaustiveness-check`

* apply feedback

* routing is always defined
2024-01-30 08:35:08 +00:00
Emanuele Stoppa
a3df9d83ca
fix(core): don't noop shared modules (#9828)
* fix(core): don't noop shared modules

* address feedback

* add test

* changeset

* check astro pages

* address feedback

---------

Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
2024-01-26 17:17:32 +00:00
Emanuele Stoppa
d777adc5ca [ci] format 2024-01-25 16:18:40 +00:00
Emanuele Stoppa
fc21a3c306
chore(@astrojs/node): use Node.js for testing (#9758)
* chore(@astrojs/node): use Node.js for testing

* revert file

* address feedback

* feedback

* Run tests in a single process (#9823)

* Run tests in a single process

* Make test less flaky

* chore: remove module

---------

Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
2024-01-25 16:17:31 +00:00
Marvin
6206fa91e5 [ci] format 2024-01-25 10:24:46 +00:00
Marvin
a12196d6b5
feat(node): add trailingSlash support (#9080)
* feat(node): add trailing slash support

* add changeset

* test(node): add base route test in trailing-slash.js

detected an infinite loop in base path when trailingSlash: never

* fix(node): avoid infinite redirect when trailingSlash: never

* address test failures after rebase pt.1

* address test failures after rebase pt.2

---------

Co-authored-by: lilnasy <69170106+lilnasy@users.noreply.github.com>
2024-01-25 10:23:27 +00:00
Bjorn Lu
b3f313138b
Fix env var replacement for export const prerender (#9807) 2024-01-24 14:42:24 +00:00
Emanuele Stoppa
9680cf2780 [ci] format 2024-01-17 13:11:46 +00:00
Emanuele Stoppa
d6edc75408
Adapter enhancements (#9661)
* quality of life updates for `App` (#9579)

* feat(app): writeResponse for node-based adapters

* add changeset

* Apply suggestions from code review

Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>

* Apply suggestions from code review

Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>

* add examples for NodeApp static methods

* unexpose createOutgoingHttpHeaders from public api

* move headers test to core

* clientAddress test

* cookies test

* destructure renderOptions right at the start

---------

Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>

* Fallback node standalone to localhost (#9545)

* Fallback node standalone to localhost

* Update .changeset/tame-squids-film.md

* quality of life updates for the node adapter (#9582)

* descriptive names for files and functions

* update tests

* add changeset

* appease linter

* Apply suggestions from code review

Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>

* `server-entrypoint.js` -> `server.js`

* prevent crash on stream error (from PR 9533)

* Apply suggestions from code review

Co-authored-by: Luiz Ferraz <luiz@lferraz.com>

* `127.0.0.1` -> `localhost`

* add changeset for fryuni's fix

* Apply suggestions from code review

* Apply suggestions from code review

Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>

---------

Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
Co-authored-by: Luiz Ferraz <luiz@lferraz.com>
Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>

* chore(vercel): delete request response conversion logic (#9583)

* refactor

* add changeset

* bump peer dependencies

* unexpose symbols (#9683)

* Update .changeset/tame-squids-film.md

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

---------

Co-authored-by: Arsh <69170106+lilnasy@users.noreply.github.com>
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
Co-authored-by: Luiz Ferraz <luiz@lferraz.com>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
2024-01-17 13:10:43 +00:00
bluwy
05628aaa3c Merge branch 'main' into next 2023-11-30 22:42:29 +08:00
Erika
000e8f4654
feat: implement overlay main screen redesign (#9118)
* feat: implement redesign

* fix: make it build

* feat: visual tweaks

* feat(overlay): update styling, integration endpoint

* feat: add fallback icons

* Clean up tests (#9183)

* Add `@astrojs/upgrade` package for automatic package upgrades (#8525)

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* [ci] format

* fix: links with same path but different search params not prefetched (#9189)

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* fix: discord icon

* chore: changeset

---------

Co-authored-by: Nate Moore <nate@astro.build>
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Co-authored-by: Spencer Whitehead <35475068+SpencerWhitehead7@users.noreply.github.com>
Co-authored-by: Matthew Phillips <matthew@skypack.dev>
2023-11-28 09:39:38 -05:00
Matthew Phillips
6e0292a1fa [ci] format 2023-11-28 13:48:11 +00:00
Matthew Phillips
8f1d509574
Support immutable cache headers for _astro assets (#9125)
* Support immutable cache headers for _astro assets

* Update .changeset/twelve-fishes-fail.md

Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>

* Update packages/integrations/node/src/http-server.ts

* Update expected max-age

* Add teh docs

* Update .changeset/twelve-fishes-fail.md

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* Update packages/integrations/node/README.md

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

---------

Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
2023-11-28 08:46:26 -05:00
Bjorn Lu
cdabf6ef02
Remove support for simple objects in endpoints (#9181)
* Deprecate simple object from endpoints

* Update changeset

* Add missing Response return

Co-authored-by: Happydev <81974850+MoustaphaDev@users.noreply.github.com>

* Update .changeset/clever-beds-notice.md

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

---------

Co-authored-by: Happydev <81974850+MoustaphaDev@users.noreply.github.com>
Co-authored-by: Matthew Phillips <matthew@skypack.dev>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
2023-11-27 12:51:57 -05:00
Bjorn Lu
153a5abb90
Remove deprecated features from Astro 3.0 (#9168) 2023-11-28 00:44:20 +08:00
Bjorn Lu
328d999999
Clean up tests (#9183) 2023-11-28 00:33:10 +08:00
pilcrowOnPaper
1862fb44eb [ci] format 2023-11-15 23:41:21 +00:00
pilcrowOnPaper
c9487138d6
Cancel response stream when connection closes (#9071)
* cancel stream on close

* add changeset

* add test

* Update .changeset/modern-ways-develop.md

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

---------

Co-authored-by: lilnasy <69170106+lilnasy@users.noreply.github.com>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
2023-11-16 05:09:41 +05:30
natemoo-re
45ae41a457 [ci] format 2023-10-12 14:39:45 +00:00
Arsh
391729686b
fix(middleware): instantiate locals if the adapter does not (#8800) 2023-10-12 09:36:34 -05:00
Erika
de7a7fbdc3
nit: optimize images (#8629) 2023-09-22 12:04:39 +02:00
Okuto Oyama
644825845c
Removed <style> with type="text/css" from inline output at build time (#8480) 2023-09-12 17:56:52 +08:00
Emanuele Stoppa
2d50d50b6a Merge remote-tracking branch 'origin/main' into next 2023-08-22 14:02:15 +01:00
Emanuele Stoppa
d08c83ee3f
fix(@astrojs/node): handler should work with express (#8176) 2023-08-21 17:29:38 +01:00
Arsh
8a5b0c1f3a
Switch build.inlineStylesheets default to auto (#8118)
* switch inlineStylesheets default

* use previous default for astro/test

* use previous default for content-collections-render.test.js

* integrations: node, deno, mdx, markdown

* typedocs: switch inlineStylesheets default

* Update example to show non-default

* add changeset

* reword changeset

---------

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
2023-08-18 07:52:06 +01:00
Matthew Phillips
cbb77af978 Merge branch 'main' into next 2023-08-17 08:54:28 -04:00
ematipico
2145960472 [ci] format 2023-08-17 08:37:38 +00:00
Arsh
097a8e4e91
Prerendering corner cases (#8070)
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
2023-08-17 09:34:31 +01:00
Erika
b76c166bdd
feat: unflag experimental.assets (#7921)
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>
2023-08-16 10:21:05 +02:00
hbgl
560e459246
Stream request body instead of buffering it in memory (#8084)
Co-authored-by: Matthew Phillips <matthew@matthewphillips.info>
2023-08-15 15:26:18 +01:00
Bjorn Lu
b675acb2aa Remove undici dep (#7980) 2023-08-08 11:04:17 +01:00
Bjorn Lu
6333651a9f Fix node test fail (#7950) 2023-08-08 11:04:16 +01:00
bluwy
1270d4d63e [ci] format 2023-08-01 14:55:54 +00:00
Nate Moore
298dbb89f2
Refactor 404 and 500 approach (#7754)
* fix(app): refactor 404 and 500 approach

* chore: refactor logic

* fix: always treat error as page

* test: migrate ssr-prerender-404 to node adapter

* feat: merge original response metadata with error response

* chore: update lockfile

* chore: trigger ci

* chore(lint): fix lint issue

* fix: ensure merged request has proper status

* fix(node): prerender test

* chore: update test label

* fix(node): improve 404 behavior in middleware mode

* fix(vercel): improve 404 behavior

* fix(netlify): improve 404 behavior

* chore: update test labels

* chore: force ci

* chore: fix lint

* fix: avoid infinite loops

* test: fix failing test in Node 18

* chore: remove volta
2023-08-01 09:52:16 -05:00
Erika
d5f526b339
test: add test in the Node adapter for astro:assets (#7734) 2023-07-26 23:58:47 +02:00
Erika
f14e48098a
nit: use node: prefix everywhere (#7692)
* nit: use `node:` prefix everywhere

* nit: fs/promises too

* test: workaround issue in node builtin detection
2023-07-18 02:17:59 +02:00
Josh Goldberg ✨
2fea174303
feat: use typescript-eslint@v6's reworked configs (#7425) 2023-07-03 20:59:43 +08:00
Emanuele Stoppa
f4fea3b02b
fix: correctly handle prerender pages in split mode (#7509) 2023-06-28 13:06:16 +01:00
Emanuele Stoppa
8e2923cc62
feat: expose locals to render api and from requests in dev mode (#7385)
Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>
Co-authored-by: wrapperup <wrapperup4@gmail.com>
2023-06-21 13:07:16 +01:00
natemoo-re
a1144f7fec [ci] format 2023-06-06 15:11:47 +00:00
Alex Sherwin
4929332c32
#7226 - fixes NodeJS adapter for multiple set-cookie headers (and other header issues) (#7227)
* Utilizes the new standard WebAPI Fetch Headers.getSetCookie() function
to safely handle multiple set-cookie headers when converting from a
WebAPI Response to a NodeJS ServerResponse

Modifies the existing nodeMiddleware logic which first set AstroCookies
on ServerResponse.setHeader(...) and then called
ServerResponse.writeHead(status, Response.headers) which means any that
if the WebAPI Response had any set-cookie headers on it, they would
replace anything from AstroCookies.

The new logic delegates appending AstroCookie values onto the WebAPI
Response Headers object, so that a single unified function safely
converts the WebAPI Response Headers into a NodeJS compatible
OutgoingHttpHeaders object utilizing the new standard
Headers.getSetCookie() function provided by the undici WebAPI polyfills.

Plus extensive test coverage.

* #7226 - changeset for NodeJS adapter set-cookie fix

* fixing all double quotes to single quotes

---------

Co-authored-by: Alex Sherwin <alex.sherwin@acadia.inc>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
2023-06-06 10:09:16 -05:00
Riki
409c60028a
fix:query not considered in directory redirection (#7243)
* fix:query not considered in directory redirection

* feat: req.url may be empty

* test(node): add redirect + query param tests

* refactor(node): cleanup query param logic

* chore: remove log

* chore: add changeset

---------

Co-authored-by: Riki <947968273@qq.com>
Co-authored-by: Nate Moore <nate@astro.build>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
2023-06-06 10:09:00 -05:00
Nate Moore
39403c32fa
Unflag hybrid output (#7260)
* feat(hybrid): unflag hybrid output

* chore: cleanup rebase errors
2023-06-05 13:19:15 -05:00
Nate Moore
e0ca0d8c8a
Revert "feat(hybrid): unflag hybrid output (#7255)" (#7259)
This reverts commit bc5d6ed39f.
2023-05-31 12:06:24 -05:00
Nate Moore
bc5d6ed39f
feat(hybrid): unflag hybrid output (#7255) 2023-05-31 11:47:25 -05:00
Happydev
719002ca5b
feat: hybrid output (#6991)
* update config schema

* adapt default route `prerender` value

* adapt error message for hybrid output

* core hybrid output support

* add JSDocs for hybrid output

* dev server hybrid output support

* defer hybrid output check

* update endpoint request warning

* support `output=hybrid` in integrations

* put constant variable out of for loop

* revert: reapply back ssr plugin in ssr mode

* change `prerender` option default

* apply `prerender` by default in hybrid mode

* simplfy conditional

* update config schema

* add `isHybridOutput` helper

* more readable prerender condition

* set default prerender value if no export is found

* only add `pagesVirtualModuleId` ro rollup input in `output=static`

* don't export vite plugin

* remove unneeded check

* don't prerender when it shouldn't

* extract fallback `prerender` meta

Extract the fallback `prerender` module meta out of the `scan` function.
It shouldn't be its responsibility to handle that

* pass missing argument to function

* test: update cloudflare integration tests

* test: update tests of vercel integration

* test: update tests of node integration

* test: update tests of netlify func integration

* test: update tests of netlify edge integration

* throw when `hybrid` mode is malconfigured

* update node integraiton `output` warning

* test(WIP): skip node prerendering tests for now

* remove non-existant import

* test: bring back prerendering tests

* remove outdated comments

* test: refactor test to support windows paths

* remove outdated comments

* apply sarah review

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* docs: `experiment.hybridOutput` jsodcs

* test: prevent import from being cached

* refactor: extract hybrid output check to  function

* add `hybrid` to output warning in adapter hooks

* chore: changeset

* add `.js` extension to import

* chore: use spaces instead of tabs for gh formating

* resolve merge conflict

* chore: move test to another file for consitency

---------

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Co-authored-by: Matthew Phillips <matthew@skypack.dev>
2023-05-17 09:23:20 -04:00
Happydev
cd410c5eb7
Fix double prepended forward slash in certain cases (#7091)
* test: add test with no base

* fix: don't always prepend a forward slash

* chore: changeset

* `'/' + base`   ------> `prependForwardSlash(base)`
2023-05-15 08:53:34 -04:00
matthewp
b064ca6539 [ci] format 2023-05-12 14:03:42 +00:00
Matthew Phillips
781f558c40
Correct handle directory finds when using base in the Node adapter (#7076) 2023-05-12 10:01:05 -04:00
Matthew Phillips
c405cef647
Catch errors that occur within the stream in the Node adapter (#6935)
* Catch errors that occur within the stream in the Node adapter

* Adding a changeset

* Better error message on completely uncaught errors within the stream

* Update test
2023-05-01 10:08:18 -04:00