This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { deferred, LoaderFunction } from "@remix-run/node"; | |
import { | |
Deferred, | |
Link, | |
useDeferred, | |
useLoaderData, | |
useSearchParams, | |
} from "@remix-run/react"; | |
import { getAllPokemon } from "~/pokemon"; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { renderToReadableStream } from "react-dom/server"; | |
import { RemixServer } from "remix"; | |
import type { EntryContext } from "remix"; | |
import isbot from "isbot"; | |
export default async function handleRequest( | |
request: Request, | |
responseStatusCode: number, | |
responseHeaders: Headers, | |
remixContext: EntryContext |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import fsp from "fs/promises"; | |
import type { LoaderFunction } from "remix"; | |
import postcss from "postcss"; | |
import postcssrc from "postcss-load-config"; | |
export let loader: LoaderFunction = async () => { | |
let { options, plugins } = await postcssrc(); | |
let { css } = await postcss(plugins).process( | |
await fsp.readFile("styles/global.css", "utf8"), |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{"requestedUrl":"https://shopify.vercel.store/","finalUrl":"https://shopify.vercel.store/","lighthouseVersion":"9.0.0","userAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/95.0.4638.69 Safari/537.36","fetchTime":"2022-01-02T09:51:04.078Z","environment":{"networkUserAgent":"Mozilla/5.0 (Linux; Android 7.0; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4695.0 Mobile Safari/537.36 Chrome-Lighthouse","hostUserAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/95.0.4638.69 Safari/537.36","benchmarkIndex":1548},"runWarnings":[],"configSettings":{"emulatedFormFactor":"mobile","formFactor":"mobile","locale":"en-US","onlyCategories":["performance","accessibility","best-practices","seo"],"channel":"lr"},"audits":{"aria-required-attr":{"id":"aria-required-attr","title":"`[role]`s have all required `[aria-*]` attributes","description":"Some ARIA roles have required attributes that describe the state of the element to |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{"requestedUrl":"https://remix-ecommerce.fly.dev/","finalUrl":"https://remix-ecommerce.fly.dev/","lighthouseVersion":"9.0.0","userAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/95.0.4638.69 Safari/537.36","fetchTime":"2022-01-02T09:53:12.290Z","environment":{"networkUserAgent":"Mozilla/5.0 (Linux; Android 7.0; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4695.0 Mobile Safari/537.36 Chrome-Lighthouse","hostUserAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/95.0.4638.69 Safari/537.36","benchmarkIndex":1302.5},"runWarnings":[],"configSettings":{"emulatedFormFactor":"mobile","formFactor":"mobile","locale":"en-US","onlyCategories":["performance","accessibility","best-practices","seo"],"channel":"lr"},"audits":{"th-has-data-cells":{"id":"th-has-data-cells","title":"`<th>` elements and elements with `[role=\"columnheader\"/\"rowheader\"]` have data cells they describe.","description":"Screen readers have f |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { createHash } from "crypto"; | |
import fs from "fs"; | |
import fsp from "fs/promises"; | |
import path from "path"; | |
import https from "https"; | |
import { PassThrough } from "stream"; | |
import type { Readable } from "stream"; | |
import type { LoaderFunction } from "remix"; | |
import sharp from "sharp"; | |
import type { Request as NodeRequest } from "@remix-run/node"; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { createHash } from "crypto"; | |
import { get, set, setex } from "@upstash/redis"; | |
type CachedResponse = { | |
status: number; | |
statusText: string; | |
body: string; | |
headers: [string, string][]; | |
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import type { LinksFunction, LoaderFunction, MetaFunction } from "remix"; | |
export let composeMeta = | |
( | |
...metas: (MetaFunction | { data: string; meta: MetaFunction })[] | |
): MetaFunction => | |
(args) => | |
metas.reduce<ReturnType<MetaFunction>>((res, meta) => { | |
if (typeof meta === "function") { | |
return { ...res, ...meta(args) }; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const { PassThrough } = require('stream'); | |
const { pipeToNodeWritable } = require('react-dom/server'); | |
function renderToStringWithWritable(element, timeout = 10000) { | |
return new Promise((resolve, reject) => { | |
const writable = new PassThrough(); | |
let res = ''; | |
writable.on('data', d => { | |
res += String(d); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
new StatsWriterPlugin({ | |
stats: { | |
all: true, | |
}, | |
transform(stats) { | |
const federatedChunks = stats.chunks.filter((chunk) => | |
chunk.origins.some((origin) => origin.moduleName === "container entry") | |
); | |
const assetsByChunkName = Object.entries( |