@resolid/react-router-hono
Version:
React Router Hono Server
1 lines • 1.4 kB
JavaScript
import{t as e}from"./hono-server-4GWGsoXU.mjs";import{serve as t}from"@hono/node-server";import{serveStatic as n}from"@hono/node-server/serve-static";import{logger as r}from"hono/logger";import{networkInterfaces as i}from"node:os";import{env as a}from"node:process";const o=(e,t=!1)=>async(n,r)=>{if(!n.req.path.match(/\.[a-zA-Z0-9]+$/)||n.req.path.endsWith(`.data`))return r();await r(),n.res.ok&&n.res.headers.set(`Cache-Control`,`public, max-age=${e}${t?`, immutable`:``}`)},s=async(s={})=>{let c=a.NODE_ENV==`test`?`development`:a.NODE_ENV,l=c==`production`,u={port:Number(a.PORT)||3e3,listeningListener:e=>{console.log(`🚀 Server started on port ${e.port}`);let t=Object.values(i()).flat().find(e=>String(e?.family).includes(`4`)&&!e?.internal)?.address,n=a.SERVE_PATH?a.SERVE_PATH:``;console.log(`[resolid-hono-server] http://localhost:${e.port}${n}${t&&` (http://${t}:${e.port})`}`)},...s,defaultLogger:s.defaultLogger??!l},d=await e(c,{configure:async e=>{if(l){let t=`${import.meta.env.RESOLID_BUILD_DIR}/client`;e.use(`/${import.meta.env.RESOLID_ASSETS_DIR}/*`,o(3600*24*365,!0),n({root:t})),e.use(`*`,o(3600),n({root:t}))}else e.use(`*`,o(3600),n({root:`./public`}));u.defaultLogger&&e.use(`*`,r()),await u.configure?.(e)},getLoadContext:u.getLoadContext,honoOptions:u.honoOptions});return l&&t({...d,port:u.port},u.listeningListener),d};export{o as cache,s as createHonoNodeServer};