@resolid/react-router-hono
Version:
React Router Hono Server
10 lines (9 loc) • 1.56 kB
JavaScript
import{i as e,n as t,r as n,t as r}from"./preset-utils-0rqHBKmP.mjs";import{join as i}from"node:path";import{writeFile as a}from"node:fs/promises";var o=`@resolid/react-router-hono`,s=`2.3.2`;const c=c=>{let u=c?.nodeVersion??22;return{name:`@resolid/react-router-hono-netlify-preset`,reactRouterConfig:()=>({buildEnd:async({buildManifest:d,reactRouterConfig:f,viteConfig:p})=>{await r({entryFile:c?.entryFile,includeFiles:c?.includeFiles,nodeVersion:u,bundleLoader:c?.bundleLoader,buildManifest:d,reactRouterConfig:f,viteConfig:p,buildStart:async()=>{console.log(`Bundle Netlify Serverless for production...`);let t=await n([p.root,`.netlify`,`v1`],!0);return await l(p.build.assetsDir??`assets`,i(t,`config.json`)),{netlifyRoot:t,netlifyFunctionDir:await n([t,`functions`]),serverRoutes:e(d),nftCache:{}}},buildBundleEnd:async(e,r,c)=>{console.log(`Coping Netlify function files for ${r}...`);let l=await t(c,await n([e.netlifyFunctionDir,r],!0),e.nftCache),d=e.serverRoutes.find(e=>e.bundleId==r)?.path,f=d?[d,`${d}/*`]:`/*`;await a(i(e.netlifyFunctionDir,`${r}.mjs`),`export { default } from "./${i(r,l)}";
export const config = {
path: ${Array.isArray(f)?JSON.stringify(f):`"${f}"`},
displayName: "${r} server",
generator: "${o}@${s}",
preferStatic: true,
nodeVersion: ${u}
};
`,`utf8`)}})}})}},l=async(e,t)=>{console.log(`Writing Netlify config file...`);let n={headers:[]};n.headers.push({for:`^/${e}/.*`,values:{"Cache-Control":`public, max-age=31536000, immutable`}}),await a(t,JSON.stringify(n,null,2),`utf8`)};export{c as netlifyPreset};