summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Nate Moore <natemoo-re@users.noreply.github.com> 2023-12-20 12:59:49 -0600
committerGravatar GitHub <noreply@github.com> 2023-12-20 12:59:49 -0600
commit72b26daf694b213918f02d0fcbf90ab5b7ebc31f (patch)
tree38819098c4ab2888887ca320f1274566bde1a231
parent97342d218e0c2d616005af6f6f54308115b89ec1 (diff)
downloadastro-72b26daf694b213918f02d0fcbf90ab5b7ebc31f.tar.gz
astro-72b26daf694b213918f02d0fcbf90ab5b7ebc31f.tar.zst
astro-72b26daf694b213918f02d0fcbf90ab5b7ebc31f.zip
Skip `check` for known Qwik components (#9482)
-rw-r--r--.changeset/eight-ears-call.md7
-rw-r--r--packages/integrations/preact/src/server.ts1
-rw-r--r--packages/integrations/react/server-v17.js1
-rw-r--r--packages/integrations/react/server.js1
-rw-r--r--packages/integrations/solid/src/server.ts1
5 files changed, 11 insertions, 0 deletions
diff --git a/.changeset/eight-ears-call.md b/.changeset/eight-ears-call.md
new file mode 100644
index 000000000..41a9140a7
--- /dev/null
+++ b/.changeset/eight-ears-call.md
@@ -0,0 +1,7 @@
+---
+'@astrojs/preact': patch
+'@astrojs/react': patch
+'@astrojs/solid-js': patch
+---
+
+Improves compatability with the [Qwik adapter](https://github.com/QwikDev/astro)
diff --git a/packages/integrations/preact/src/server.ts b/packages/integrations/preact/src/server.ts
index a395433c9..1de6d174f 100644
--- a/packages/integrations/preact/src/server.ts
+++ b/packages/integrations/preact/src/server.ts
@@ -13,6 +13,7 @@ let consoleFilterRefs = 0;
function check(this: RendererContext, Component: any, props: Record<string, any>, children: any) {
if (typeof Component !== 'function') return false;
+ if (Component.name === "QwikComponent") return false;
if (Component.prototype != null && typeof Component.prototype.render === 'function') {
return BaseComponent.isPrototypeOf(Component);
diff --git a/packages/integrations/react/server-v17.js b/packages/integrations/react/server-v17.js
index 5638c6fb7..12e1f198e 100644
--- a/packages/integrations/react/server-v17.js
+++ b/packages/integrations/react/server-v17.js
@@ -20,6 +20,7 @@ function check(Component, props, children) {
return Component['$$typeof']?.toString().slice('Symbol('.length).startsWith('react');
}
if (typeof Component !== 'function') return false;
+ if (Component.name === "QwikComponent") return false;
if (Component.prototype != null && typeof Component.prototype.render === 'function') {
return React.Component.isPrototypeOf(Component) || React.PureComponent.isPrototypeOf(Component);
diff --git a/packages/integrations/react/server.js b/packages/integrations/react/server.js
index 4c1aac933..810c37250 100644
--- a/packages/integrations/react/server.js
+++ b/packages/integrations/react/server.js
@@ -22,6 +22,7 @@ async function check(Component, props, children) {
return Component['$$typeof'].toString().slice('Symbol('.length).startsWith('react');
}
if (typeof Component !== 'function') return false;
+ if (Component.name === "QwikComponent") return false;
// Preact forwarded-ref components can be functions, which React does not support
if (typeof Component === 'function' && Component['$$typeof'] === Symbol.for('react.forward_ref'))
diff --git a/packages/integrations/solid/src/server.ts b/packages/integrations/solid/src/server.ts
index 6e371da51..eb73f0af1 100644
--- a/packages/integrations/solid/src/server.ts
+++ b/packages/integrations/solid/src/server.ts
@@ -6,6 +6,7 @@ const slotName = (str: string) => str.trim().replace(/[-_]([a-z])/g, (_, w) => w
function check(this: RendererContext, Component: any, props: Record<string, any>, children: any) {
if (typeof Component !== 'function') return false;
+ if (Component.name === "QwikComponent") return false;
const { html } = renderToStaticMarkup.call(this, Component, props, children);
return typeof html === 'string';
}