aboutsummaryrefslogtreecommitdiff
path: root/packages/renderers/renderer-react
diff options
context:
space:
mode:
authorGravatar Fred K. Schott <fkschott@gmail.com> 2022-04-11 11:19:41 -0700
committerGravatar GitHub <noreply@github.com> 2022-04-11 11:19:41 -0700
commit771127ea294fb297c080b2bb3e74b433043b90f4 (patch)
treed0c80721164a81592e328d22d4ecb9af932c727f /packages/renderers/renderer-react
parent6c6e9477402e9d30659f56488b1027f7179cd43b (diff)
downloadastro-771127ea294fb297c080b2bb3e74b433043b90f4.tar.gz
astro-771127ea294fb297c080b2bb3e74b433043b90f4.tar.zst
astro-771127ea294fb297c080b2bb3e74b433043b90f4.zip
remove unused renderers (#3063)
Diffstat (limited to 'packages/renderers/renderer-react')
-rw-r--r--packages/renderers/renderer-react/CHANGELOG.md123
-rw-r--r--packages/renderers/renderer-react/README.md31
-rw-r--r--packages/renderers/renderer-react/client.js15
-rw-r--r--packages/renderers/renderer-react/index.js42
-rw-r--r--packages/renderers/renderer-react/jsx-runtime.js8
-rw-r--r--packages/renderers/renderer-react/package.json31
-rw-r--r--packages/renderers/renderer-react/server.js71
-rw-r--r--packages/renderers/renderer-react/static-html.js27
8 files changed, 0 insertions, 348 deletions
diff --git a/packages/renderers/renderer-react/CHANGELOG.md b/packages/renderers/renderer-react/CHANGELOG.md
deleted file mode 100644
index 199740b38..000000000
--- a/packages/renderers/renderer-react/CHANGELOG.md
+++ /dev/null
@@ -1,123 +0,0 @@
-# @astrojs/renderer-react
-
-## 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.1
-
-### Patch Changes
-
-- [#2369](https://github.com/withastro/astro/pull/2369) [`20eaddb2`](https://github.com/withastro/astro/commit/20eaddb2a723253c7fbde3e56955a549bdf3f342) Thanks [@matthewp](https://github.com/matthewp)! - Fix for using the React renderer with the static build
-
-## 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.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
-
-- 756e3769: Fixes detect to allow rendering React.PureComponents
-
-## 0.2.1
-
-### Patch Changes
-
-- 97d37f8f: Update READMEs for all renderers
-
-## 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.
-
-## 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.
-
-## 0.1.5
-
-### Patch Changes
-
-- 1e01251: Fixes bug with React renderer that would not hydrate correctly
-
-## 0.1.4
-
-### Patch Changes
-
-- 21dc28c: Add react-dom as a knownEntrypoint (speeds up astro startup)
-
-## 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-react/README.md b/packages/renderers/renderer-react/README.md
deleted file mode 100644
index cc36073f1..000000000
--- a/packages/renderers/renderer-react/README.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# @astrojs/renderer-react
-
-This is a plugin for [Astro][astro] apps that enables server-side rendering of React components.
-
-## Installation
-
-Install `@astrojs/renderer-react` and then add it to your `astro.config.mjs` in the `renderers` property:
-
-```
-npm install @astrojs/renderer-react
-```
-
-__astro.config.mjs__
-
-```js
-export default {
- // ...
-
- renderers: [
- // ...
- '@astrojs/renderer-react'
- ]
-}
-```
-
-## 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-react/client.js b/packages/renderers/renderer-react/client.js
deleted file mode 100644
index 64284a0b0..000000000
--- a/packages/renderers/renderer-react/client.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import { createElement } from 'react';
-import { hydrate } from 'react-dom';
-import StaticHtml from './static-html.js';
-
-export default (element) => (Component, props, children) =>
- hydrate(
- createElement(
- Component,
- { ...props, suppressHydrationWarning: true },
- children != null
- ? createElement(StaticHtml, { value: children, suppressHydrationWarning: true })
- : children
- ),
- element
- );
diff --git a/packages/renderers/renderer-react/index.js b/packages/renderers/renderer-react/index.js
deleted file mode 100644
index 698f2a13c..000000000
--- a/packages/renderers/renderer-react/index.js
+++ /dev/null
@@ -1,42 +0,0 @@
-export default {
- name: '@astrojs/renderer-react',
- 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: '@astrojs/renderer-react',
- }
- ),
- ],
- };
- },
- viteConfig() {
- return {
- optimizeDeps: {
- include: [
- '@astrojs/renderer-react/client.js',
- 'react',
- 'react/jsx-runtime',
- 'react/jsx-dev-runtime',
- 'react-dom',
- ],
- exclude: ['@astrojs/renderer-react/server.js'],
- },
- resolve: {
- dedupe: ['react', 'react-dom'],
- },
- ssr: {
- external: ['react-dom/server.js'],
- },
- };
- },
-};
diff --git a/packages/renderers/renderer-react/jsx-runtime.js b/packages/renderers/renderer-react/jsx-runtime.js
deleted file mode 100644
index d86f698b9..000000000
--- a/packages/renderers/renderer-react/jsx-runtime.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// This module is a simple wrapper around react/jsx-runtime so that
-// it can run in Node ESM. 'react' doesn't declare this module as an export map
-// So we have to use the .js. The .js is not added via the babel automatic JSX transform
-// hence this module as a workaround.
-import jsxr from 'react/jsx-runtime.js';
-const { jsx, jsxs, Fragment } = jsxr;
-
-export { jsx, jsxs, Fragment };
diff --git a/packages/renderers/renderer-react/package.json b/packages/renderers/renderer-react/package.json
deleted file mode 100644
index ba35445e7..000000000
--- a/packages/renderers/renderer-react/package.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "name": "@astrojs/renderer-react",
- "description": "Use React 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-react"
- },
- "bugs": "https://github.com/withastro/astro/issues",
- "homepage": "https://astro.build",
- "exports": {
- ".": "./index.js",
- "./*": "./*",
- "./client.js": "./client.js",
- "./server.js": "./server.js",
- "./package.json": "./package.json",
- "./jsx-runtime": "./jsx-runtime.js"
- },
- "dependencies": {
- "@babel/plugin-transform-react-jsx": "^7.17.3",
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- },
- "engines": {
- "node": "^14.15.0 || >=16.0.0"
- }
-}
diff --git a/packages/renderers/renderer-react/server.js b/packages/renderers/renderer-react/server.js
deleted file mode 100644
index b48d7b6f4..000000000
--- a/packages/renderers/renderer-react/server.js
+++ /dev/null
@@ -1,71 +0,0 @@
-import React from 'react';
-import ReactDOM from 'react-dom/server.js';
-import StaticHtml from './static-html.js';
-
-const reactTypeof = Symbol.for('react.element');
-
-function errorIsComingFromPreactComponent(err) {
- return (
- err.message &&
- (err.message.startsWith("Cannot read property '__H'") ||
- err.message.includes("(reading '__H')"))
- );
-}
-
-function check(Component, props, children) {
- // Note: there are packages that do some unholy things to create "components".
- // Checking the $$typeof property catches most of these patterns.
- if (typeof Component === 'object') {
- const $$typeof = Component['$$typeof'];
- return $$typeof && $$typeof.toString().slice('Symbol('.length).startsWith('react');
- }
- if (typeof Component !== 'function') return false;
-
- if (Component.prototype != null && typeof Component.prototype.render === 'function') {
- return React.Component.isPrototypeOf(Component) || React.PureComponent.isPrototypeOf(Component);
- }
-
- let error = null;
- let isReactComponent = false;
- function Tester(...args) {
- try {
- const vnode = Component(...args);
- if (vnode && vnode['$$typeof'] === reactTypeof) {
- isReactComponent = true;
- }
- } catch (err) {
- if (!errorIsComingFromPreactComponent(err)) {
- error = err;
- }
- }
-
- return React.createElement('div');
- }
-
- renderToStaticMarkup(Tester, props, children, {});
-
- if (error) {
- throw error;
- }
- return isReactComponent;
-}
-
-function renderToStaticMarkup(Component, props, children, metadata) {
- delete props['class'];
- const vnode = React.createElement(Component, {
- ...props,
- children: children != null ? React.createElement(StaticHtml, { value: children }) : undefined,
- });
- let html;
- if (metadata && metadata.hydrate) {
- html = ReactDOM.renderToString(vnode);
- } else {
- html = ReactDOM.renderToStaticMarkup(vnode);
- }
- return { html };
-}
-
-export default {
- check,
- renderToStaticMarkup,
-};
diff --git a/packages/renderers/renderer-react/static-html.js b/packages/renderers/renderer-react/static-html.js
deleted file mode 100644
index ecd76ae9b..000000000
--- a/packages/renderers/renderer-react/static-html.js
+++ /dev/null
@@ -1,27 +0,0 @@
-import { createElement as h } from 'react';
-
-/**
- * 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 React that this subtree is
- * entirely static and will never change via `shouldComponentUpdate`.
- */
-const StaticHtml = ({ value }) => {
- if (!value) return null;
- return h('astro-fragment', {
- suppressHydrationWarning: true,
- dangerouslySetInnerHTML: { __html: value },
- });
-};
-
-/**
- * This tells React 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;