Commit graph

53 commits

Author SHA1 Message Date
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
Rishi Raj Jain
df4d84610a
Fix port env in standalone mode (#5111) 2022-10-18 15:31:21 +08:00
matthewp
575bf9205e [ci] format 2022-10-12 21:27:56 +00:00
Matthew Phillips
e55af8a232
Node.js standalone mode + support for astro preview (#5056)
* wip

* Deprecate buildConfig and move to config.build

* Implement the standalone server

* Stay backwards compat

* Add changesets

* correctly merge URLs

* Get config earlier

* update node tests

* Return the preview server

* update remaining tests

* swap usage and config ordering

* Update packages/astro/src/@types/astro.ts

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

* Update .changeset/metal-pumas-walk.md

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

* Update .changeset/metal-pumas-walk.md

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

* Update .changeset/stupid-points-refuse.md

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

* Update .changeset/stupid-points-refuse.md

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

* Link to build.server config

Co-authored-by: Fred K. Schott <fkschott@gmail.com>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
2022-10-12 17:25:51 -04:00
matthewp
55a1b5bb58 [ci] format 2022-09-28 20:57:35 +00:00
Matthew Phillips
d3091f89e9
Astro.cookies implementation (#4876)
* Astro.cookies implementation

* Remove unused var

* Fix build

* Add a changesetp

* Remove spoken-word expires
2022-09-28 16:55:27 -04:00
Bjorn Lu
fc32e2d94c
Fix @astrojs/node typo (#4525) 2022-08-29 17:02:44 +08:00
FredKSchott
d2148ce982 [ci] format 2022-07-25 04:20:38 +00:00
Matthew Phillips
6fd161d769
Add the output option (#4015)
* Start of work on astroConfig.mode === 'server'

* Add tests and more

* adapter -> deploy in some places

* Add fallback for `adapter` config

* Update more tests

* Update image tests

* Fix clientAddress test

* Updates based on PR review

* Add a changeset

* Update integrations tests + readme

* Oops

* Remove old option

* Rename `mode` to `output`

* Update Node adapter test

* Update test

* fred pass

* fred pass

* fred pass

* fix test

Co-authored-by: Fred K. Schott <fkschott@gmail.com>
2022-07-25 00:18:02 -04:00
matthewp
4392083cca [ci] format 2022-07-22 19:24:58 +00:00
Matthew Phillips
4ca6a0933d
Fixes Node adapter receiving a request body (#4023)
* Fixes Node adapter receiving a request body

* Updated lockfile
2022-07-22 15:22:31 -04:00
FredKSchott
f0f6a3332f [ci] format 2022-06-06 16:49:53 +00:00
matthewp
c6551289ee [ci] format 2022-04-14 13:52:56 +00:00
Matthew Phillips
4ac0d5d4e7
Support the Markdown component in SSR (#3036)
* Support the Markdown component in SSR

* Adds a changeset

* Support runtime markdown in Node.js

* Remove option from test adapter
2022-04-14 09:51:53 -04:00
matthewp
f5b48bc0ae [ci] format 2022-03-24 21:09:40 +00:00