UNPKG

@mcansh/remix-fastify

Version:

Fastify server request handler for Remix and React Router

1 lines 3.42 kB
{"version":3,"file":"react-router.cjs","names":["request: FastifyRequest<RouteGenericInterface, Server>","reply: FastifyReply<RouteGenericInterface, Server>","createReadableStreamFromReadable"],"sources":["../src/servers/react-router.ts","../src/plugins/react-router.ts"],"sourcesContent":["import { createReadableStreamFromReadable } from \"@react-router/node\";\nimport type {\n FastifyRequest,\n FastifyReply,\n RouteGenericInterface,\n} from \"fastify\";\nimport type { AppLoadContext, ServerBuild } from \"react-router\";\nimport { createRequestHandler } from \"react-router\";\n\nimport { createRequest, sendResponse } from \"../shared\";\nimport type {\n GetLoadContextFunction as GenericGetLoadContextFunction,\n HttpServer,\n RequestHandler,\n} from \"../shared\";\n\nexport type CreateRequestHandlerFunction =\n typeof createReactRouterRequestHandler;\nexport type GetLoadContextFunction<Server extends HttpServer = HttpServer> =\n GenericGetLoadContextFunction<Server, AppLoadContext>;\n\n/**\n * Returns a request handler for Fastify that serves the response using Remix.\n */\nexport function createReactRouterRequestHandler<Server extends HttpServer>({\n build,\n getLoadContext,\n mode = process.env.NODE_ENV,\n}: {\n build: ServerBuild | (() => ServerBuild | Promise<ServerBuild>);\n getLoadContext?: GetLoadContextFunction<Server>;\n mode?: string;\n}): RequestHandler<Server> {\n let handleRequest = createRequestHandler(build, mode);\n\n return async (request, reply) => {\n let remixRequest = createReactRouterRequest(request, reply);\n let loadContext = await getLoadContext?.(request, reply);\n let response = await handleRequest(remixRequest, loadContext);\n return sendResponse(reply, response);\n };\n}\n\nexport function createReactRouterRequest<Server extends HttpServer>(\n request: FastifyRequest<RouteGenericInterface, Server>,\n reply: FastifyReply<RouteGenericInterface, Server>,\n): Request {\n return createRequest(request, reply, createReadableStreamFromReadable);\n}\n","import fp from \"fastify-plugin\";\nimport type { AppLoadContext, ServerBuild } from \"react-router\";\n\nimport { createReactRouterRequestHandler } from \"../servers/react-router\";\nimport type { HttpServer } from \"../shared\";\n\nimport { createPlugin } from \".\";\nimport type { PluginOptions } from \".\";\n\nexport type ReactRouterFastifyOptions = Omit<\n PluginOptions<HttpServer, AppLoadContext, ServerBuild>,\n \"virtualModule\"\n>;\n\nexport const reactRouterFastify = fp<ReactRouterFastifyOptions>(\n async (fastify, options) => {\n let plugin = createPlugin(\n fastify,\n options,\n \"virtual:react-router/server-build\",\n createReactRouterRequestHandler,\n );\n return plugin();\n },\n {\n // replaced with the package name during build\n name: process.env.__PACKAGE_NAME__,\n fastify: process.env.__FASTIFY_VERSION__,\n },\n);\n"],"mappings":";;;;;;;;;AAwBA,SAAgB,gCAA2D,EACzE,OACA,gBACA,OAAO,QAAQ,IAAI,UAKpB,EAA0B;CACzB,IAAI,gBAAgB,uCAAqB,OAAO,KAAK;AAErD,QAAO,OAAO,SAAS,UAAU;EAC/B,IAAI,eAAe,yBAAyB,SAAS,MAAM;EAC3D,IAAI,cAAc,MAAM,iBAAiB,SAAS,MAAM;EACxD,IAAI,WAAW,MAAM,cAAc,cAAc,YAAY;AAC7D,SAAO,6BAAa,OAAO,SAAS;CACrC;AACF;AAED,SAAgB,yBACdA,SACAC,OACS;AACT,QAAO,8BAAc,SAAS,OAAOC,qDAAiC;AACvE;;;;AClCD,MAAa,qBAAqB,4BAChC,OAAO,SAAS,YAAY;CAC1B,IAAI,SAAS,6BACX,SACA,SACA,qCACA,gCACD;AACD,QAAO,QAAQ;AAChB,GACD;CAEE;CACA;AACD,EACF"}