summaryrefslogtreecommitdiff
path: root/packages/renderers/renderer-preact
diff options
context:
space:
mode:
Diffstat (limited to 'packages/renderers/renderer-preact')
-rw-r--r--packages/renderers/renderer-preact/CHANGELOG.md119
-rw-r--r--packages/renderers/renderer-preact/README.md31
-rw-r--r--packages/renderers/renderer-preact/client.js8
-rw-r--r--packages/renderers/renderer-preact/compat/index.js36
-rw-r--r--packages/renderers/renderer-preact/index.js30
-rw-r--r--packages/renderers/renderer-preact/package.json31
-rw-r--r--packages/renderers/renderer-preact/server.js37
-rw-r--r--packages/renderers/renderer-preact/static-html.js24
8 files changed, 0 insertions, 316 deletions
diff --git a/packages/renderers/renderer-preact/CHANGELOG.md b/packages/renderers/renderer-preact/CHANGELOG.md
deleted file mode 100644
index 39179799a..000000000
--- a/packages/renderers/renderer-preact/CHANGELOG.md
+++ /dev/null
@@ -1,119 +0,0 @@
-# @astrojs/renderer-preact
-
-## 0.5.0
-
-### Minor Changes
-
-- [#2563](https://github.com/withastro/astro/pull/2563) [`a907a73b`](https://github.com/withastro/astro/commit/a907a73b8cd14726d158ea460932f9cd8891923a) Thanks [@natemoo-re](https://github.com/natemoo-re)! - Upgrade renderer dependencies for `vite@2.8.x`
-
-## 0.5.0-next.0
-
-### Minor Changes
-
-- [#2563](https://github.com/withastro/astro/pull/2563) [`a907a73b`](https://github.com/withastro/astro/commit/a907a73b8cd14726d158ea460932f9cd8891923a) Thanks [@natemoo-re](https://github.com/natemoo-re)! - Upgrade renderer dependencies for `vite@2.8.x`
-
-## 0.4.0
-
-### Minor Changes
-
-- [#2202](https://github.com/withastro/astro/pull/2202) [`45cea6ae`](https://github.com/withastro/astro/commit/45cea6aec5a310fed4cb8da0d96670d6b99a2539) Thanks [@jonathantneal](https://github.com/jonathantneal)! - Officially drop support for Node v12. The minimum supported version is now Node v14.15+,
-
-## 0.3.2
-
-### Patch Changes
-
-- [#2170](https://github.com/withastro/astro/pull/2170) [`5af24efb`](https://github.com/withastro/astro/commit/5af24efb3493b8f5b6a8f980c792455c7dc34eb5) Thanks [@FredKSchott](https://github.com/FredKSchott)! - Fix preact 10.6 regression by pinning to preact 10.5
-
-## 0.3.1
-
-### Patch Changes
-
-- [#2078](https://github.com/withastro/astro/pull/2078) [`ac3e8702`](https://github.com/withastro/astro/commit/ac3e870280e983a7977da79b6eec0568d38d8420) Thanks [@natemoo-re](https://github.com/natemoo-re)! - Fix behavior of renderers when no children are passed in
-
-## 0.3.0
-
-### Minor Changes
-
-- e6aaeff5: Updated framework renderers for the v0.21.0 release of Astro. Assorted changes and a new renderer interface are included in this release.
-
-## 0.3.0-next.1
-
-### Patch Changes
-
-- 3cd1458a: Bugfix: Bundled CSS missing files on Windows
-
-## 0.3.0-next.0
-
-### Minor Changes
-
-- d84bfe71: Updates the renderers to confirm to the new renderer API.
-
-## 0.2.2
-
-### Patch Changes
-
-- 97d37f8f: Update READMEs for all renderers
-
-## 0.2.1
-
-### Patch Changes
-
-- f7e86150: Fix an issue where preact component UI wouldn't update on hydrate
-
-## 0.2.0
-
-### Minor Changes
-
-- bd18e14: Switches to [the new JSX Transform](https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html) originally introduced for React v17. This also leverages the new `jsxTransformOptions` options for renderers.
-
- This change also removes the need for importing your Framework's `jsxFactory` directly, which means you can wave goodbye to `import React from "react";` and `import { h } from "preact";`.
-
- > **If you are using mutliple frameworks** and a file doesn't reference `react` or `preact`, Astro might not be able to locate the correct renderer! You can add a pragma comment like `/** @jsxImportSource preact */` to the top of your file. Alternatively, just import the JSX pragma as you traditionally would have.
-
-### Patch Changes
-
-- bd18e14: Update `check` logic to exclude false-positives from SolidJS
-
-## 0.2.0-next.0
-
-### Minor Changes
-
-- bd18e14: Switches to [the new JSX Transform](https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html) originally introduced for React v17. This also leverages the new `jsxTransformOptions` options for renderers.
-
- This change also removes the need for importing your Framework's `jsxFactory` directly, which means you can wave goodbye to `import React from "react";` and `import { h } from "preact";`.
-
- > **If you are using mutliple frameworks** and a file doesn't reference `react` or `preact`, Astro might not be able to locate the correct renderer! You can add a pragma comment like `/** @jsxImportSource preact */` to the top of your file. Alternatively, just import the JSX pragma as you traditionally would have.
-
-### Patch Changes
-
-- bd18e14: Update `check` logic to exclude false-positives from SolidJS
-
-## 0.1.3
-
-### Patch Changes
-
-- 0abd251: Allows renderers to provide knownEntrypoint config values
-
-## 0.1.2
-
-### Patch Changes
-
-- 9d4a40f: Fixes bug with using arrow function components
-
-## 0.1.1
-
-### Patch Changes
-
-- ab2972b: Update package.json engines for esm support
-
-## 0.1.0
-
-### Minor Changes
-
-- 643c880: Initial release
-
-## 0.1.0-next.0
-
-### Minor Changes
-
-- 643c880: Initial release
diff --git a/packages/renderers/renderer-preact/README.md b/packages/renderers/renderer-preact/README.md
deleted file mode 100644
index eba2e0db8..000000000
--- a/packages/renderers/renderer-preact/README.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# @astrojs/renderer-preact
-
-This is a plugin for [Astro][astro] apps that enables server-side rendering of Preact components.
-
-## Installation
-
-Install `@astrojs/renderer-preact` and then add it to your `astro.config.mjs` in the `renderers` property:
-
-```
-npm install @astrojs/renderer-preact
-```
-
-__astro.config.mjs__
-
-```js
-export default {
- // ...
-
- renderers: [
- // ...
- '@astrojs/renderer-preact'
- ]
-}
-```
-
-## Documentation
-
-[Astro Renderer Documentation][renderer-docs]
-
-[astro]: https://astro.build
-[renderer-docs]: https://docs.astro.build/reference/renderer-reference
diff --git a/packages/renderers/renderer-preact/client.js b/packages/renderers/renderer-preact/client.js
deleted file mode 100644
index 5ece5ddb2..000000000
--- a/packages/renderers/renderer-preact/client.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { h, render } from 'preact';
-import StaticHtml from './static-html.js';
-
-export default (element) => (Component, props, children) =>
- render(
- h(Component, props, children != null ? h(StaticHtml, { value: children }) : children),
- element
- );
diff --git a/packages/renderers/renderer-preact/compat/index.js b/packages/renderers/renderer-preact/compat/index.js
deleted file mode 100644
index a5580f04d..000000000
--- a/packages/renderers/renderer-preact/compat/index.js
+++ /dev/null
@@ -1,36 +0,0 @@
-export default {
- name: '@astrojs/renderer-preact/compat',
- client: '../client.js',
- server: '../server.js',
- jsxImportSource: 'react',
- jsxTransformOptions: async () => {
- const {
- default: { default: jsx },
- } = await import('@babel/plugin-transform-react-jsx');
- return {
- plugins: [jsx({}, { runtime: 'automatic', importSource: 'preact/compat' })],
- };
- },
- viteConfig() {
- return {
- alias: {
- react: 'preact/compat',
- 'react-dom': 'preact/compat',
- },
- resolve: {
- dedupe: ['react', 'react-dom'],
- },
- optimizeDeps: {
- include: [
- '@astrojs/renderer-preact/client.js',
- 'preact/compat',
- 'preact/compat/jsx-runtime',
- 'preact-render-to-string',
- ],
- },
- ssr: {
- external: ['preact-render-to-string'],
- },
- };
- },
-};
diff --git a/packages/renderers/renderer-preact/index.js b/packages/renderers/renderer-preact/index.js
deleted file mode 100644
index fe0a24528..000000000
--- a/packages/renderers/renderer-preact/index.js
+++ /dev/null
@@ -1,30 +0,0 @@
-export default {
- name: '@astrojs/renderer-preact',
- client: './client.js',
- server: './server.js',
- jsxImportSource: 'preact',
- jsxTransformOptions: async () => {
- const {
- default: { default: jsx },
- } = await import('@babel/plugin-transform-react-jsx');
- return {
- plugins: [jsx({}, { runtime: 'automatic', importSource: 'preact' })],
- };
- },
- viteConfig() {
- return {
- optimizeDeps: {
- include: [
- '@astrojs/renderer-preact/client.js',
- 'preact',
- 'preact/jsx-runtime',
- 'preact-render-to-string',
- ],
- exclude: ['@astrojs/renderer-preact/server.js'],
- },
- ssr: {
- external: ['preact-render-to-string'],
- },
- };
- },
-};
diff --git a/packages/renderers/renderer-preact/package.json b/packages/renderers/renderer-preact/package.json
deleted file mode 100644
index 81dea572b..000000000
--- a/packages/renderers/renderer-preact/package.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "name": "@astrojs/renderer-preact",
- "description": "Use Preact components within Astro",
- "version": "0.5.0",
- "type": "module",
- "author": "withastro",
- "license": "MIT",
- "repository": {
- "type": "git",
- "url": "https://github.com/withastro/astro.git",
- "directory": "packages/renderers/renderer-preact"
- },
- "bugs": "https://github.com/withastro/astro/issues",
- "homepage": "https://astro.build",
- "exports": {
- ".": "./index.js",
- "./*": "./*",
- "./compat": "./compat/index.js",
- "./client.js": "./client.js",
- "./server.js": "./server.js",
- "./package.json": "./package.json"
- },
- "dependencies": {
- "@babel/plugin-transform-react-jsx": "^7.17.3",
- "preact": "^10.7.1",
- "preact-render-to-string": "^5.1.21"
- },
- "engines": {
- "node": "^14.15.0 || >=16.0.0"
- }
-}
diff --git a/packages/renderers/renderer-preact/server.js b/packages/renderers/renderer-preact/server.js
deleted file mode 100644
index 0729f42e9..000000000
--- a/packages/renderers/renderer-preact/server.js
+++ /dev/null
@@ -1,37 +0,0 @@
-import { h, Component as BaseComponent } from 'preact';
-import render from 'preact-render-to-string';
-import StaticHtml from './static-html.js';
-
-function check(Component, props, children) {
- if (typeof Component !== 'function') return false;
-
- if (Component.prototype != null && typeof Component.prototype.render === 'function') {
- return BaseComponent.isPrototypeOf(Component);
- }
-
- try {
- const { html } = renderToStaticMarkup(Component, props, children);
- if (typeof html !== 'string') {
- return false;
- }
-
- // There are edge cases (SolidJS) where Preact *might* render a string,
- // but components would be <undefined></undefined>
-
- return !/\<undefined\>/.test(html);
- } catch (err) {
- return false;
- }
-}
-
-function renderToStaticMarkup(Component, props, children) {
- const html = render(
- h(Component, props, children != null ? h(StaticHtml, { value: children }) : children)
- );
- return { html };
-}
-
-export default {
- check,
- renderToStaticMarkup,
-};
diff --git a/packages/renderers/renderer-preact/static-html.js b/packages/renderers/renderer-preact/static-html.js
deleted file mode 100644
index 9af8002a7..000000000
--- a/packages/renderers/renderer-preact/static-html.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import { h } from 'preact';
-
-/**
- * Astro passes `children` as a string of HTML, so we need
- * a wrapper `div` to render that content as VNodes.
- *
- * As a bonus, we can signal to Preact that this subtree is
- * entirely static and will never change via `shouldComponentUpdate`.
- */
-const StaticHtml = ({ value }) => {
- if (!value) return null;
- return h('astro-fragment', { dangerouslySetInnerHTML: { __html: value } });
-};
-
-/**
- * This tells Preact to opt-out of re-rendering this subtree,
- * In addition to being a performance optimization,
- * this also allows other frameworks to attach to `children`.
- *
- * See https://preactjs.com/guide/v8/external-dom-mutations
- */
-StaticHtml.shouldComponentUpdate = () => false;
-
-export default StaticHtml;