* Add new fields to API route context
* Add props and redirect
* Pass custom redirect status code
* Correctly pass props in api routes
* Add better docs
* Add test
* Fix build
* Add constants file
* Add links to jsdoc
* Workaround lint issue
* Thanks Chris
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* Missed one doc change
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* Add more detail to the changesets
* Strict redirect status type
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
Co-authored-by: Matthew Phillips <matthew@skypack.dev>
* Added support for updating tsconfig.json when using astro add
* Refactor
* Remove unneeded change
* Fix build failling due to type difference
* Extend changeset description
* First run
* Works with tailwind!
* Added TSConfig to watchlist
* Changeset
* Fix eslint
* Renamed `isConfigReload` --> `isRestart` and `injectWatchTarget` --> `addWatchFile`
* Refactored watchTargets to watchFiles
* Refactor createSettings
* addWatchFile now accepts URL
* Fix getViteConfig
* Expanded description of the change
Co-authored-by: Matthew Phillips <matthew@skypack.dev>
* Add type argument to AstroGlobal to type Props
* Update packages/astro/src/@types/astro.ts
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* Update packages/astro/src/@types/astro.ts
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* Yield out potentional slot instructions when rendering dynamic tags
* Adding a changeset
* yield instead of return
* Handle the fact that renderComponent returns an iterable
* Only yield out html once
* fix(astro): tag jsx vnodes with renderer so errors are properly handled
* chore: fix missing package in test
Co-authored-by: Nate Moore <nate@astro.build>
* Move module declarations for Markdown and MDX to the proper file so they're globally available
* Remove tsconfig.json depending on client.d.ts unnecessarily
* Fix CSS ordering between imported and Astro styles
* Fix linting errors
* Add changeset and upgrade compiler version
* Update test to reflect shared styles placed before page styles
* Update endpoint.ts
* add warning for post routes called when output is not server
* Update famous-camels-study.md
* Update endpoint.ts
* If not get
* Resolve changes
* feat: support importing markdown from outside root project
This change adds support for importing markdown located outside the root of directory of a project
* refactor how the "jsx-runtime" module path is retrieved
* refactor: split type imports and function import
Pattern I've seen repeated a lot in the repo
* fix: chaotic marge conflict mistake
Co-authored-by: Matthew Phillips <matthew@skypack.dev>
* `create-astro`: always create `tsconfig.json`
Currently, we only make sure `tsconfig.json` exists when `strict` or `strictest` is selected. Both `default` & `optout` are intended to correspond to `base` -- and will do so for all [23 official templates](https://github.com/withastro/astro/tree/main/examples), but not necessarily for third-party templates.
The [example command for installing a third-party template](https://github.com/withastro/astro/blob/a800bf7/packages/create-astro/README.md?plain=1#L31-L35) is (rather conveniently for the sake of this PR!) an example of a template without a `tsconfig.json` file, and installing it with the `default` ("Relaxed") Typescript option results in no `tsconfig.json` file, rather than a `tsconfig.json` file containing `{ "extends": "astro/tsconfigs/base" }` as would be expected.
This PR addresses this scenario.
It also explicitly sets the `tsconfig.json` file to `{ "extends": "astro/tsconfigs/base" }` when `default` (which I renamed to `base`, still presented to the user as "Relaxed") or `optout` is selected (`optout` has always printed a warning about the importance of `tsconfig.json` & `src/env.d.ts` but otherwise behaved identically to `default`). This is necessary in two scenarios:
1. When the `tsconfig.json` file was created by this script.
2. When it either didn't already include `"extends"`, or it extended a different config by default. For example, some third-party templates might default to `strict`, in which case I'm guessing we'd want to respect the user's choice and change that to `base`.
* update `del` 6.1.1 --> 7.0.0
* test: prevent excess writes
(without this it triggers many times)
* test: create-astro typescript prompt
* changeset
* fix: recursive `mkdirSync`
* test: longer timeout for `windows-latest` OS
(see if this fixes failing tests)
* better glob path creation, don't hardcode `/`
* test: longer timeout for windows-latest OS
(since I'm about to trigger another CI run by pushing a commit, might as well try this too)
* create-astro test: show last CLI output on timeout
* drop variable timeout
Typescript tests are slower than directory tests, but they are all usually less than 5000 ms. Less complexity, easier to maintain.
* DRY new error output
* Update lockfile
* Sync lockfile with main
* Update lockfile
Co-authored-by: Princesseuh <princssdev@gmail.com>
* Revert "Update preact example to match @astrojs/preact ranges (#4840)"
This reverts commit d650a1161a.
* Revert "[ci] format"
This reverts commit e3c78c5b16.
* Revert "Support shared signals in Preact islands (#4763)"
This reverts commit 5e46be5468.
* Support signals in Preact islands
* Add a changeset
* Only add signals if we need them
* Refactor signal logic into its own module
* Keep track of the signals used
* Revert "Revert "Adds a new "astro:build:generated" hook for SSG builds (#4772)" (#4774)"
This reverts commit 13a4b0d488.
* fix: updating for latest merge with main
* supports Uint8Array/Uint16Array/Uint32Array
* update astro-island to supports the added types
* run changeset
* apply format
* pass metadata through
* using Array type
* write test cases for serializing Uint8Array/Uint16Array/Uint32Array
* fix the broken test cases
* add type assertion for psychological safety
* this changes is minor change
* feat: serialize UintArrays directly
* Update index.ts
Co-authored-by: Matthew Phillips <matthew@skypack.dev>
Co-authored-by: Nate Moore <nate@astro.build>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* [chore] replaces hard-coded `minify` values with `vite.build.minify`
* [style] changes ternary to not-equals
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
* [chore] removes `minify` in favor of user config & Vite defaults
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
* Remove explicit `Transfer-Encoding: chunked`
This header is not necessary and is ignored by essentially all HTTP
servers when provided explicitly by the user. This is because the HTTP
transport layer handles adding this header automatically as needed.
Some variations of HTTP transport (like HTTP/2, which is enabled by
default in Deno, Netlify, and CFW) have no notion of
`Transfer-Encoding: chunked`, because all responses are streamed.
* add changeset
* Refactor to remove AstroConfig['_ctx']
* Fix type error
* Export validateConfig
* Move to an options bag for createSettings
* Move config tests into test/untils/config
* Add a changeste
* fix build
* Properly allow file uploads in the dev server
* Allow custom 404 route to handle API route missing methods
* Add a changeset
* what was i thinking
* Pass through the pathname
* Move the try/catch out and into handleRequest
* await the result of handleRoute