UNPKG

@mcansh/remix-fastify

Version:

Fastify server request handler for Remix and React Router

1 lines 3.31 kB
{"version":3,"file":"index.cjs","names":["request: FastifyRequest<RouteGenericInterface, Server>","reply: FastifyReply<RouteGenericInterface, Server>","createReadableStreamFromReadable"],"sources":["../src/servers/remix.ts","../src/plugins/remix.ts"],"sourcesContent":["import type { AppLoadContext, ServerBuild } from \"@remix-run/node\";\nimport {\n createRequestHandler,\n createReadableStreamFromReadable,\n} from \"@remix-run/node\";\nimport type {\n FastifyRequest,\n FastifyReply,\n RouteGenericInterface,\n} from \"fastify\";\n\nimport { createRequest, sendResponse } from \"../shared\";\nimport type {\n GetLoadContextFunction as GenericGetLoadContextFunction,\n HttpServer,\n RequestHandler,\n} from \"../shared\";\n\nexport type CreateRequestHandlerFunction = typeof createRemixRequestHandler;\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 createRemixRequestHandler<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 = createRemixRequest(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 createRemixRequest<Server extends HttpServer>(\n request: FastifyRequest<RouteGenericInterface, Server>,\n reply: FastifyReply<RouteGenericInterface, Server>,\n): Request {\n return createRequest(request, reply, createReadableStreamFromReadable);\n}\n","import type { AppLoadContext, ServerBuild } from \"@remix-run/node\";\nimport fp from \"fastify-plugin\";\n\nimport { createRemixRequestHandler } from \"../servers/remix\";\nimport type { HttpServer } from \"../shared\";\n\nimport { createPlugin } from \".\";\nimport type { PluginOptions } from \".\";\n\nexport type RemixFastifyOptions = Omit<\n PluginOptions<HttpServer, AppLoadContext, ServerBuild>,\n \"virtualModule\"\n>;\n\nexport const remixFastify = fp<RemixFastifyOptions>(\n async (fastify, options) => {\n let plugin = createPlugin(\n fastify,\n options,\n \"virtual:remix/server-build\",\n createRemixRequestHandler,\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":";;;;;;;;AAyBA,SAAgB,0BAAqD,EACnE,OACA,gBACA,OAAO,QAAQ,IAAI,UAKpB,EAA0B;CACzB,IAAI,gBAAgB,2CAAqB,OAAO,KAAK;AAErD,QAAO,OAAO,SAAS,UAAU;EAC/B,IAAI,eAAe,mBAAmB,SAAS,MAAM;EACrD,IAAI,cAAc,MAAM,iBAAiB,SAAS,MAAM;EACxD,IAAI,WAAW,MAAM,cAAc,cAAc,YAAY;AAC7D,SAAO,6BAAa,OAAO,SAAS;CACrC;AACF;AAED,SAAgB,mBACdA,SACAC,OACS;AACT,QAAO,8BAAc,SAAS,OAAOC,kDAAiC;AACvE;;;;ACnCD,MAAa,eAAe,4BAC1B,OAAO,SAAS,YAAY;CAC1B,IAAI,SAAS,6BACX,SACA,SACA,8BACA,0BACD;AACD,QAAO,QAAQ;AAChB,GACD;CAEE;CACA;AACD,EACF"}