Merge branch 'master' into slow-html

This commit is contained in:
Wes Bos 2023-02-23 10:37:41 -05:00
commit 7358ccb06a
5 changed files with 40 additions and 75 deletions

View file

@ -1,63 +0,0 @@
import type { AppLoadContext, ServerBuild } from '@netlify/remix-runtime'
import { createRequestHandler as createRemixRequestHandler } from '@netlify/remix-runtime'
import type { Context } from '@netlify/edge-functions'
type LoadContext = AppLoadContext & Context
/**
* A function that returns the value to use as `context` in route `loader` and
* `action` functions.
*
* You can think of this as an escape hatch that allows you to pass
* environment/platform-specific values through to your loader/action.
*/
export type GetLoadContextFunction = (request: Request, context: Context) => Promise<LoadContext> | LoadContext
export type RequestHandler = (request: Request, context: LoadContext) => Promise<Response | void>
export function createRequestHandler({
build,
mode,
getLoadContext,
}: {
build: ServerBuild
mode?: string
getLoadContext?: GetLoadContextFunction
}): RequestHandler {
const remixHandler = createRemixRequestHandler(build, mode)
const assetPath = build.assets.url.split('/').slice(0, -1).join('/')
return async (request: Request, context: LoadContext): Promise<Response | void> => {
const { pathname } = new URL(request.url)
// Skip the handler for static files
if (pathname.startsWith(`${assetPath}/`)) {
// Temporary fix - passing the request to the Netlify static asset handler causes a 203 Not Content error. Passing the through remix works, but I asssume isn't ideal
// console.log('Skipping Remix handler for static file', pathname)
// return;
}
try {
const loadContext = (await getLoadContext?.(request, context)) || context
const response = await remixHandler(request, loadContext)
// A useful header for debugging
response.headers.set('x-nf-runtime', 'Edge')
if (response.status === 404) {
// Check if there is a matching static file
const originResponse = await context.next({
sendConditionalRequest: true,
})
if (originResponse.status !== 404) {
return originResponse
}
}
return response
} catch (error: unknown) {
console.error(error)
return new Response('Internal Error', { status: 500 })
}
}
}

View file

@ -37,6 +37,7 @@ This readme is auto-generated from the data.js file, so please don't PR this fil
* [Alex O'Reilly](https://alekzandriia.com/uses/) — Scientist turned Web developer from the Great White North.
* [Martin Bean](https://martinbean.dev/uses) — Web developer and software engineer.
* [Dominic Ruggiero](https://userexe.me/uses) — Student and idiot
* [Maicol Santos](https://maicolsantos.github.io/#/uses) — Front End Developer.
* [Carretta Riccardo](https://carrettariccardo.dev/uses/) — Software Developer & UX/UI Designer
* [Josh Medeski](https://www.joshmedeski.com/uses/) — Full-stack developer and content creator.
* [Simon Rogers](https://midnite.uk/uses) — Software Engineer
@ -650,6 +651,7 @@ This readme is auto-generated from the data.js file, so please don't PR this fil
* [Tomek Buszewski](https://www.buszewski.com/uses/) — Developer and team leader based in Warsaw, Poland.
* [Benjamin Mock](https://codesnacks.net/uses/) — coder, runner, reader, maker
* [Dan Holloran](https://danholloran.me/uses/) — Full Stack Developer
* [Sean Boult](https://boult.me/uses) — Full stack developer who likes ReactJS
* [Kevin Woblick](https://www.kovah.de/uses/) — I turn Pizza into Code and Photos
* [Michal Slepko](https://michalslepko.dev/uses) — Senior web developer learning iOS development. Live coding streamer on Twitch
* [Michał Miszczyszyn](https://typeofweb.com/michal-miszczyszyn-uses/) — Motivated full-stack developer not afraid to use any technology. Experienced developer and leader. He, him.

View file

@ -1,7 +1,6 @@
// Import path interpreted by the Remix compiler
import * as build from "@remix-run/dev/server-build";
// import { createRequestHandler } from "@netlify/remix-edge-adapter";
import { createRequestHandler } from "./netlify-server";
import { createRequestHandler } from "@netlify/remix-edge-adapter";
export default createRequestHandler({
build,
@ -12,4 +11,6 @@ export default createRequestHandler({
export const config = {
cache: "manual",
path: "/*",
// Pass all assets to the netlify asset server
excluded_patterns: ["/_assets/*", "/_shared/*", "/**/*.js"],
};

View file

@ -216,6 +216,30 @@ module.exports = [
computer: 'linux',
tags: ['Student', 'Node.js', 'Javascript', 'Ubuntu'],
},
{
name: 'Maicol Santos',
description: 'Front End Developer.',
url: 'https://maicolsantos.github.io/#/uses',
emoji: '🤘🏻',
country: '🇧🇷',
computer: 'apple',
phone: 'iphone',
tags: [
'JavaScript',
'TypeScript',
'React',
'React Native',
'Next',
'Vue.js',
'Angular',
'AlpineJS',
'Front End',
'Redux',
'React Query',
'GraphQL',
'Developer',
],
},
{
name: 'Carretta Riccardo',
description: 'Software Developer & UX/UI Designer',
@ -13623,6 +13647,17 @@ module.exports = [
'Photographer',
],
},
{
name: 'Sean Boult',
description: 'Full stack developer who likes ReactJS',
url: 'https://boult.me/uses',
twitter: '@Hacksore',
emoji: '🫠',
country: '🇺🇸',
computer: 'apple',
phone: 'iphone',
tags: ['Full Stack', 'React', 'Typescript', 'Node.js', 'Hacking'],
},
{
name: 'Kevin Woblick',
description: 'I turn Pizza into Code and Photos',

View file

@ -294,13 +294,3 @@ body::-webkit-scrollbar-thumb {
grid-template-columns: 1fr;
}
}
.People {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
grid-gap: 5rem;
@media all and (max-width: 400px) {
grid-template-columns: 1fr;
}
}