Skip to content

Commit

Permalink
chore: update deno/cloudflare server entry
Browse files Browse the repository at this point in the history
Signed-off-by: Logan McAnsh <logan@mcan.sh>
  • Loading branch information
mcansh committed Jan 10, 2023
1 parent 6918568 commit dfc1681
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 114 deletions.
52 changes: 2 additions & 50 deletions packages/remix-dev/config/defaults/entry.server.cloudflare.tsx
Original file line number Diff line number Diff line change
@@ -1,38 +1,16 @@
import type { EntryContext } from "@remix-run/cloudflare";
import { RemixServer } from "@remix-run/react";
import { renderToReadableStream } from "react-dom/server";
import isbot from "isbot";

export default function handleRequest(
request: Request,
responseStatusCode: number,
responseHeaders: Headers,
remixContext: EntryContext
) {
return isbot(request.headers.get("user-agent"))
? handleBotRequest(
request,
responseStatusCode,
responseHeaders,
remixContext
)
: handleBrowserRequest(
request,
responseStatusCode,
responseHeaders,
remixContext
);
}

async function handleBotRequest(
export default async function handleRequest(
request: Request,
responseStatusCode: number,
responseHeaders: Headers,
remixContext: EntryContext
) {
let didError = false;

let stream = await renderToReadableStream(
const stream = await renderToReadableStream(
<RemixServer context={remixContext} url={request.url} />,
{
signal: request.signal,
Expand All @@ -50,29 +28,3 @@ async function handleBotRequest(
status: didError ? 500 : responseStatusCode,
});
}

async function handleBrowserRequest(
request: Request,
responseStatusCode: number,
responseHeaders: Headers,
remixContext: EntryContext
) {
let didError = false;

let stream = await renderToReadableStream(
<RemixServer context={remixContext} url={request.url} />,
{
signal: request.signal,
onError(error: unknown) {
didError = true;
console.error(error);
},
}
);

responseHeaders.set("Content-Type", "text/html");
return new Response(stream, {
headers: responseHeaders,
status: didError ? 500 : responseStatusCode,
});
}
52 changes: 2 additions & 50 deletions packages/remix-dev/config/defaults/entry.server.deno.tsx
Original file line number Diff line number Diff line change
@@ -1,38 +1,16 @@
import type { EntryContext } from "@remix-run/deno";
import { RemixServer } from "@remix-run/react";
import { renderToReadableStream } from "react-dom/server";
import isbot from "isbot";

export default function handleRequest(
request: Request,
responseStatusCode: number,
responseHeaders: Headers,
remixContext: EntryContext
) {
return isbot(request.headers.get("user-agent"))
? handleBotRequest(
request,
responseStatusCode,
responseHeaders,
remixContext
)
: handleBrowserRequest(
request,
responseStatusCode,
responseHeaders,
remixContext
);
}

async function handleBotRequest(
export default async function handleRequest(
request: Request,
responseStatusCode: number,
responseHeaders: Headers,
remixContext: EntryContext
) {
let didError = false;

let stream = await renderToReadableStream(
const stream = await renderToReadableStream(
<RemixServer context={remixContext} url={request.url} />,
{
signal: request.signal,
Expand All @@ -50,29 +28,3 @@ async function handleBotRequest(
status: didError ? 500 : responseStatusCode,
});
}

async function handleBrowserRequest(
request: Request,
responseStatusCode: number,
responseHeaders: Headers,
remixContext: EntryContext
) {
let didError = false;

let stream = await renderToReadableStream(
<RemixServer context={remixContext} url={request.url} />,
{
signal: request.signal,
onError(error: unknown) {
didError = true;
console.error(error);
},
}
);

responseHeaders.set("Content-Type", "text/html");
return new Response(stream, {
headers: responseHeaders,
status: didError ? 500 : responseStatusCode,
});
}
21 changes: 15 additions & 6 deletions templates/cloudflare-pages/app/entry.server.tsx
Original file line number Diff line number Diff line change
@@ -1,21 +1,30 @@
import type { EntryContext } from "@remix-run/cloudflare";
import { RemixServer } from "@remix-run/react";
import { renderToString } from "react-dom/server";
import { renderToReadableStream } from "react-dom/server";

export default function handleRequest(
export default async function handleRequest(
request: Request,
responseStatusCode: number,
responseHeaders: Headers,
remixContext: EntryContext
) {
const markup = renderToString(
<RemixServer context={remixContext} url={request.url} />
let didError = false;

const stream = await renderToReadableStream(
<RemixServer context={remixContext} url={request.url} />,
{
signal: request.signal,
onError(error: unknown) {
didError = true;
console.error(error);
},
}
);

responseHeaders.set("Content-Type", "text/html");

return new Response("<!DOCTYPE html>" + markup, {
status: responseStatusCode,
return new Response(stream, {
headers: responseHeaders,
status: didError ? 500 : responseStatusCode,
});
}
2 changes: 1 addition & 1 deletion templates/cloudflare-pages/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"scripts": {
"build": "remix build",
"dev:remix": "remix watch",
"dev:wrangler": "cross-env NODE_ENV=development wrangler pages dev ./public",
"dev:wrangler": "cross-env NODE_ENV=development wrangler pages dev ./public --compatibility-flags streams_enable_constructors",
"dev": "remix build && run-p \"dev:*\"",
"start": "cross-env NODE_ENV=production npm run dev:wrangler",
"typecheck": "tsc -b"
Expand Down
22 changes: 15 additions & 7 deletions templates/deno/app/entry.server.tsx
Original file line number Diff line number Diff line change
@@ -1,22 +1,30 @@
import type { EntryContext } from "@remix-run/deno";
import { RemixServer } from "@remix-run/react";
import * as React from "react";
import { renderToString } from "react-dom/server";
import { renderToReadableStream } from "react-dom/server";

export default function handleRequest(
export default async function handleRequest(
request: Request,
responseStatusCode: number,
responseHeaders: Headers,
remixContext: EntryContext,
remixContext: EntryContext
) {
const markup = renderToString(
let didError = false;

const stream = await renderToReadableStream(
<RemixServer context={remixContext} url={request.url} />,
{
signal: request.signal,
onError(error: unknown) {
didError = true;
console.error(error);
},
}
);

responseHeaders.set("Content-Type", "text/html");

return new Response("<!DOCTYPE html>" + markup, {
status: responseStatusCode,
return new Response(stream, {
headers: responseHeaders,
status: didError ? 500 : responseStatusCode,
});
}

0 comments on commit dfc1681

Please sign in to comment.