* fix: 🐛 Fixes bug #532
Matching for collection routes should look for exact filename matches
* test: ✅ Adding test coverage to make sure collection routes are matched exactly
* chore: Adding changeset
* Fix code from bad merge
* Dont wrap the raw
* Wrap the expression in quotes
* remove react-dom just to test
* Add back react-dom as a known entrypoint
* Make startup time even longer
* wip: update props api
* feat(#139, #309): enable new props api
* chore: migrate examples to new props API
* docs: update syntax guide for new props API
* chore: update examples to new props API
* chore: update docs to new Props API
* fix: hide __astroInternal from `Astro.props` consumers
* chore: remove scratchpad file
* chore: fix script error
* test: fix failing collection tests
* fix: set __astroInternal to `enumerable: false`
* chore: add changeset
* feat: warn users using old props api
* fix(#521): allow spread props
* chore: add spread prop tests
* fix: falsy expressions should only be skipped in 'Expression' case
* fix: support primitives in expressions (objects, arrays)
* Start of allowing node builtins issue
* Allow use of node:builtin
* Produce an error in Astro files with bare builtin usage
* Upgrade snowpack version
bug fixes for packages that use `node:`
* Document node builtins
* Use the provided builtins list
* Fix pageSize calculation when Infinity is given
* test grouping collection with pageSize: Infinity
* test individual pages for collection items
* Revert "update docs, remove reference to Inifinity"
This reverts commit e8a976a543.
* Adding changeset
* First take
* Allow omitting head element
This makes it possible to omit the head element but still inject the style and HMR script into the right place.
* Add changeset
* More progress on this
* Only render if it's a page
* Include fragments in compiled jsx
* Adds a changeset
* feat(#472): do not inject `astro-xxx` class for components without styles
* test: add test for skipped scoped classes
* chore: add changeset
* Update happy-cougars-scream.md
* Honor user's hmr settings
This contains 2 fixes:
* If the user sets the hmrPort in their own snowpack config we use that port.
* If the user sets `window.HMR_WEBSOCKET_URL` we defer to that
* Adds the changeset
* Prevent postcss from crashing when scoping class without a body
For some reason postcss will keep running the plugin over and over on a class without a body if we modify the `selector` (this triggers it as being "dirty"). It doesn't do this for selectors with a body. But the fix was easy enough, only scope a rule once.
Closes#340
* Add a changeset
* Fix usage of arrow functions as components
This fixes the React and Preact component as arrow function use-case by checking for the prototype property (arrow functions don't)
* Check the prototype
* fix scoped selector when using escaped colon
* update scoped styles test
* add changeset
* update `scopeRule` test
* update `scopeRule` test
* update css minifier to account for windows-style line breaks
* Make doctype be case insensitive
Fixes#413
* Make doctype completely case insensitive
* Make check for style scoping doctype override be case insensitive
* Check for doctype in the right place
* Improved JSX framework detection
This improves the JSX detection and adds a bunch of test. The following is improved:
* If an error throws because of a coding mistake, those errors will be reported.
* We properly detect class components for both Preact and React. We don't have to "try to render" these.
It's still possible that error messages might be obscured in this scenario:
A Preact function component that uses hooks (or another preact specific feature) that has a coding mistake. The React renderer might throw when it uses the Preact hook. That error will be reported rather than the real coding mistake.
This is because we can't distinguish between errors that are due to the wrong framework and errors that the user caused.
I might reach out to the Preact community and see if they can think of a better solution to this problem. This will come up when other JSX based frameworks have renderers. I still think that having multiple frameworks in the same project is a feature worth trying to preserve.
* Move try/catch into the __astro_component
* Allow createCollection() to fetch remote data
Fixes#378
* Update docs
* revert isomorphic-fetch, see if ci passes
Co-authored-by: Fred K. Schott <fkschott@gmail.com>
* Always add HMR port script when HMR is enabled
* Add it only if there are client side components
* Fix the test
* Add a test where HMR port not set
* Upgrade snowpack version
* Fix snowpack semver
* Prevent duplicate snowpack logs
* Fix test to wait on expected messages
* Update the snowpack/plugin-vue
* Add changeset
* Debugging
* Skip the logging test on windows :(
* arg
* Use npm package names to load internal deps
This is necessary so that published Astro components work. These components will be built by esinstall and therefore they cannot rely on `_astro_internal`. The fix is to use npm specifiers everywhere.
* Move most of frontend to internal
* Mark astro/internal/markdown.js as external
* Move markdown stuff to its own package
This moves the markdown stuff to its own package so that we can externalize it in the markdown component.
* Add the changeset
* Improve dev startup by making most dependencies externals
This moves most dependencies to be an `external` for Snowpack, preventing backend deps from going through esinstall.
* Update benchmark times
* chore: add benchmark script for convenience
* fix: update externals to allow renderers
* chore: update benchmark times
Co-authored-by: Nate Moore <nate@skypack.dev>