Commit graph

76 commits

Author SHA1 Message Date
Nate Moore
f721275f33
Fix <Markdown {content} /> closing parent tag (#575)
* test(#494): add failing test

* chore: update with-markdown example

* fix(#494): avoid early close with <Markdown content />

* chore: add changeset
2021-06-29 15:33:56 -05:00
natemoo-re
4df98a79f8 [ci] yarn format 2021-06-29 16:38:55 +00:00
Nate Moore
e28d5cb9de
Allow .astro files to throw new Error() (#572)
* fix(#526): enable `throwExpressions`

* chore: add test for throwing inside of `.astro`

* fix: improve build error handling

* chore: add test when throwing on `build`

* chore: fix changeset bot

* chore: add changeset
2021-06-29 11:37:36 -05:00
Tony @ Navillus
aa8605761b
Fix collections regex (#557)
* 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
2021-06-28 06:22:15 -05:00
Matthew Phillips
8865158f7f
Upgrade postcss snowpack plugin (#547)
* Upgrade postcss snowpack plugin

* Increase the startup time more

* Add changeset
2021-06-25 15:12:10 -04:00
Matthew Phillips
028d4e0114
Fix code from bad merge (#540)
* 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
2021-06-25 09:29:57 -04:00
Nate Moore
a136c85e6b
New Props API (#515)
* 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
2021-06-24 17:48:24 -05:00
Nate Moore
47ac2ccd17
Fix {...spread} props (#522)
* 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)
2021-06-24 17:41:10 -05:00
Matthew Phillips
feb9a3141e
Always add the HMR script in dev (#536)
* Always add the HMR script in dev

for livereload

* Adds the changeset
2021-06-24 17:05:55 -04:00
Matthew Phillips
e316c9578c
Allow usage of node builtins through node: prefix (#520)
* 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
2021-06-23 16:01:32 -04:00
Tony @ Navillus
3f3e4f1286
Update createCollection() to handle pageSize: Infinity (#516)
* 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
2021-06-23 08:40:58 -04:00
matthewp
b2a72ccac4 [ci] yarn format 2021-06-21 16:29:33 +00:00
Matthew Phillips
b547892411
Allow the head element to be optional (#447)
* 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
2021-06-21 12:28:30 -04:00
natemoo-re
f04b82d47e [ci] yarn format 2021-06-19 00:57:20 +00:00
Nate Moore
2671b6f9cc
Skip scoped astro-* class if Astro component has no <style> (#497)
* 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
2021-06-18 19:56:14 -05:00
Drew Powers
7f8d5869c3
Fix parser error on forward slash (#469)
Fixes #407
2021-06-16 13:26:38 -06:00
matthewp
7fdb7ceca6 [ci] yarn format 2021-06-16 17:38:46 +00:00
Matthew Phillips
5601efa257
Prevent HMR client from being part of bundle (#464) 2021-06-16 13:37:29 -04:00
Nurettin Kaya
251b0b5c06
Less verbose HMR script (#457)
* Less verbose HMR script

* push changeset
2021-06-16 08:17:06 -04:00
Drew Powers
54c291efa0
Handle script module resolution (#438)
Fixes #104
2021-06-15 15:06:29 -06:00
Drew Powers
272769d723
Improve asset resolution in Astro (#437)
* Improve asset resolution in Astro

Fixes #96

* Add docs, changeset

* Fix collection resolution
2021-06-15 14:53:16 -06:00
natemoo-re
266e447e01 [ci] yarn format 2021-06-15 16:34:46 +00:00
Nate Moore
490f2bebbc
Add <> fragment support for expressions (#433)
* feat: add support for `<>` and `</>` Fragments

* docs: explain Fragments

* test: add fragment test
2021-06-15 11:33:27 -05:00
matthewp
ddd86f8ab2 [ci] yarn format 2021-06-14 20:11:42 +00:00
Matthew Phillips
016833a3bc
Honor user's hmr settings (#436)
* 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
2021-06-14 16:10:29 -04:00
Matthew Phillips
73a43d9301
Prevent postcss from crashing when scoping class without a body (#430)
* 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
2021-06-14 14:17:56 -04:00
Matthew Phillips
af03c90c2b
Fix usage of arrow functions as components (#426)
* 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
2021-06-14 13:24:37 -04:00
Brad Cornes
e0989c696a
Fix scoped CSS selector when class contains a colon (#383)
* 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
2021-06-14 10:36:33 -06:00
Matthew Phillips
2d854092a4
Serialize boolean attributes without a value (#422)
* Serialize boolean attributes without a value

Fixes #307

* Update the attrs test

* Adds a changeset

* Adds test that components receive booleans
2021-06-14 12:29:34 -04:00
Matthew Phillips
0b16b2ddd0
Make doctype be case insensitive (#419)
* 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
2021-06-14 12:00:51 -04:00
matthewp
a5d6e434ab [ci] yarn format 2021-06-14 12:36:32 +00:00
Matthew Phillips
271cfe6ce3
Improved JSX framework detection (#382)
* 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
2021-06-14 08:35:25 -04:00
Drew Powers
c374a549b5
Allow createCollection() to fetch remote data (#400)
* 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>
2021-06-11 18:31:36 -07:00
Matthew Phillips
1bab906539
Remove second snowpack instance (#368)
* Remove second snowpack instance

* Document import.meta.env.SSR

* Remove unnecessary Promise.all
2021-06-11 09:03:22 -04:00
matthewp
cc5d000fdc [ci] yarn format 2021-06-10 18:11:17 +00:00
Matthew Phillips
afa09ee9dc
Add HMR port script when needed (#375)
* 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
2021-06-10 14:10:15 -04:00
Fred K. Schott
f4a747fb1f
snowpack.dev build output cleanup (#324)
* cleanup grabbag

* add changeset

* Skip the flakey logging test

Co-authored-by: Matthew Phillips <matthew@skypack.dev>
2021-06-08 08:33:15 -04:00
matthewp
20c4efe5a2 [ci] yarn format 2021-06-08 12:22:58 +00:00
Nate Moore
f6ef53b7fa
Fix recursive markdown (#315)
* wip: fix recursive markdown

* fix: recursive markdown issue

* chore: add changeset
2021-06-08 08:21:37 -04:00
matthewp
cb3ff36105 [ci] yarn format 2021-06-07 18:26:17 +00:00
Matthew Phillips
b1364afbae
Prevent duplicate snowpack logs (#316)
* 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
2021-06-07 14:24:55 -04:00
Nate Moore
0d6afaee9e
fix: Markdown usage when deeply nested on a page (#303)
* fix: Markdown component deeply nested on a page

* chore: add changeset
2021-06-05 10:18:26 -05:00
Matthew Phillips
50e6f491ad
Use npm package names to load internal deps (#294)
* 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
2021-06-04 14:19:01 -04:00
Nate Moore
94eac19888
Pre-release refactors (#289)
* refactor: expose `astro/components` as component entrypoint

* refactor: remove `extensions` from all configs

* test: fix snowpack tests

* docs: update config doc
2021-06-02 11:35:28 -05:00
Nate Moore
ffb6380c3f
Dynamic Markdown content (#273)
* wip: serverside render dynamic Markdown content

* docs: update Markdown.astro comments

* Use existing markdown infrastructure to render external MD

* Update Markdown docs

* Add a changeset

Co-authored-by: Matthew Phillips <matthew@skypack.dev>
2021-06-02 11:53:33 -04:00
Matthew Phillips
46871d2d4a
Don't append a class attribute to the doctype (#284)
* Don't append a class attribute to the doctype

Fixes #282

* Add changeset
2021-06-01 20:03:38 -05:00
Nate Moore
c9d833ee0b
Fix prerelease bugs, reenable @astrojs/renderer-vue (#286)
* fix: add packages to external

* fix: improve renderer error message

* fix: reenable vue renderer

* chore: remove `extensions` from templates

* fix: reenable @astrojs/renderer-vue

* refactor: add types to snowpack plugin

* fix: update snowpack

* fix: use manual SSR wrapper for Svelte

* chore: add changesets

* chore: bump snowpack

* test: fix failing test

* chore: remove redundant entries
2021-06-01 18:41:08 -05:00
Drew Powers
addd67d244
Change astroRoot to pages (#277)
#271
2021-06-01 09:57:12 -06:00
natemoo-re
8d7abd0ede [ci] yarn format 2021-05-28 22:52:52 +00:00
Matthew Phillips
f49944c0e7
Improve dev perf by not esinstalling Node deps (#253)
* 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>
2021-05-28 17:51:50 -05:00