Commit graph

67 commits

Author SHA1 Message Date
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
Emanuele Stoppa
d43ca69c1d Merge remote-tracking branch 'origin/main' into next 2023-08-21 14:21:53 +01:00
Arsh
4c15c06969
fix(node): delegate preview's not found and error handling to core/app (#8141)
* fix(node): delegate preview's not found and error handling to core/app

* add changeset

---------

Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
2023-08-18 15:51:46 -05:00
Emanuele Stoppa
7530d5689d Merge remote-tracking branch 'origin/main' into next 2023-08-15 09:24:06 +01:00
natemoo-re
fa3e839843 [ci] format 2023-08-10 18:25:25 +00:00
Jerry_wu
b16cb787fd
Support --host for Node adapter preview (#6928)
* supporting a network address access a website when an user set host = true in Node environment

* fix bug

* sumbit test code

* optimism

* delect white space

* test

* fix test

* fix test error

* test

* test

* test

* fix test error

* Optimizing code based on the comments

* optimize test

* fix: rebase issues

* chore: format

* chore: add changeset

* chore: format

* chore: format

* chore: lint

---------

Co-authored-by: wuls <linsheng.wu@beantechs.com>
Co-authored-by: Nate Moore <nate@astro.build>
2023-08-10 13:22:50 -05:00
Emanuele Stoppa
0f1e9d8361
chore: update prettier to 3.0 (#7957) 2023-08-08 13:01:38 +01:00
Bjorn Lu
b675acb2aa Remove undici dep (#7980) 2023-08-08 11:04:17 +01:00
Emanuele Stoppa
cd2d7e7698 feat: astro features (#7815) 2023-08-08 11:02:00 +01:00
Erika
148e61d249 feat: remove webapi in favor of a smaller polyfill (#7840)
* feat: remove webapi in favor of a smaller polyfill

* test: remove old test

* test: 🤦‍♀️

* chore: changeset
2023-08-08 11:01:45 +01:00
DixCouleur
4dd6c7900c
Fix "res.writeHead is not a function" in Express/node middleware (#7708)
* fix: res.writeHead is not a function

* fix: handler params type added

* fix: handler function params error

* Update packages/integrations/node/src/nodeMiddleware.ts

---------

Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
2023-08-01 17:10:29 -05: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
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
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
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
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
Emanuele Stoppa
831b67cdb8
feat(astro): experimental middleware (#6721)
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
2023-05-03 17:40:47 +01:00
matthewp
d6b153bcac [ci] format 2023-05-01 14:11:30 +00: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
Erika
4cc1bf61b8
fix(node): Fix malformed URLs crashing the server in certain cases (#6746) 2023-04-04 15:48:28 +02:00
Erika
1e7d6af412
feat(all): Migrate to TypeScript 5.0 (#6579) 2023-03-20 17:02:07 +01:00
Erika
c44aa15534
fix: Enforce the usage of type imports when possible (#6502) 2023-03-10 16:19:57 +01:00
Emanuele Stoppa
fe88f89512
chore: use directive @ts-expect-error instead of @ts-ignore (#6429) 2023-03-07 13:41:24 +00:00
matthewp
74c135ef9d [ci] format 2023-02-03 00:12:22 +00:00
Matthew Phillips
67ccec9e16
Node adapter: handle prerendering and serving with query params (#6110)
* Node adapter: handle prerendering and serving with query params

* Adding a changeset
2023-02-02 19:10:16 -05:00
Shiina
6a03649f00
Fix incorrent encoded when path has other language characters (#6088)
* fix: Incorrent encoded when path has Chinese

* chore: exec changeset
2023-02-01 13:53:09 -05:00
HiDeoo
60b32d5856
Fix Astro.url.protocol when using the @astrojs/node SSR adapter with HTTPS (#5992) 2023-01-26 12:39:57 -05:00
HiDeoo
2303f95142
Add support for serving well-known URIs with the @astrojs/node SSR adapter (#5832) 2023-01-11 17:52:51 +08:00
wulinsheng123
9869f2f6d8
can jump 404 when that page does not exist (#5701) 2023-01-11 00:59:20 +08:00
matthewp
10137cd9cc [ci] format 2023-01-09 22:01:33 +00:00
Erika
1f92d64ea3
Drop Node 14 support (#5782)
* chore: Update engines field

* fix(deps): Remove node-fetch

* feat(polyfills): Remove node-fetch for undici

* feat(webapi): Remove node-fetch from the webapis polyfills for undici

* feat(core): Remove node-fetch for undici in Astro core

* feat(telemetry): Remove node-fetch for undici

* feat(node): Remove node-fetch for undici in node integration

* feat(vercel): Remove node-fetch for undici in Vercel integration

* chore: update lockfile

* chore: update lockfile

* chore: changeset

* fix(set): Fix set directives not streaming correctly on Node 16

* Try another approach

* Debugging

* Debug fetch

* Use global fetch if there is one

* changeset for lit

* Remove web-streams-polyfill

* Remove web-streams-polyfill license note

* Update .changeset/stupid-wolves-explain.md

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

Co-authored-by: Matthew Phillips <matthew@skypack.dev>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
2023-01-09 16:59:20 -05:00
Bjorn Lu
5eba34fcc6
Remove deprecated APIs (#5707)
* Remove deprecated Astro globals

* Remove deprecated hook param

* Fix test

* Add changeset

* Add TODO
2023-01-03 14:06:07 -05:00
natemoo-re
5877dcb7e9 [ci] format 2022-12-08 20:56:38 +00:00
Nate Moore
281ea9fc34
Node: better serverEntrypoint error (#5560)
* fix(node): better entrypoint error

* fix(node): surface start errors during preview

Co-authored-by: Nate Moore <nate@astro.build>
2022-12-08 14:54:19 -06:00
matthewp
eea824bee9 [ci] format 2022-11-17 15:51:50 +00:00
Scttpr
12236dbc06
feat: provide HOST env variable at runtime (#5421)
* feat: provide HOST env variable at runtime

* doc: add change to documentation

* Update documentation according to suggestions

Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>

* fix: empty string is considered as undefined

Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
2022-11-17 10:48:20 -05:00
matthewp
c18c618a09 [ci] format 2022-11-16 21:58:37 +00:00
Jean-Baptiste Alleaume
aa16b6cebc
Add response iterator to node adapter (#5418)
* add response iterator to node adapter

* changeset

* add node-fetch types

* fix @types/node-fetch as a dev dep
2022-11-16 16:55:15 -05:00
matthewp
a10cbec67e [ci] format 2022-11-07 15:06:51 +00:00
Matthew Phillips
b2b291d291
Handle base in adapters (#5290)
* Handle `base` in adapters

* Use removeBase in the test adapter

* Update packages/integrations/node/src/preview.ts

Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>

* Update packages/integrations/cloudflare/src/server.advanced.ts

Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>

* Include the subpath for links

Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
2022-11-07 10:05:12 -05:00
bluwy
b48320d722 [ci] format 2022-10-27 09:19:16 +00:00
BeanWei
c203a5cc2f
Fix node standalone for windows system (#5207) 2022-10-27 17:17:38 +08:00
matthewp
8cf692766b [ci] format 2022-10-18 15:49:01 +00:00
Matthew Phillips
5c0c6e1ac6
Mark @astrojs/node to be noExternal (#5114)
* Mark @astrojs/node to be noExternal

* Adding a changeset
2022-10-18 11:47:18 -04:00