@bobtail.software/b-ssr 1.0.70 → 1.0.72

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- "use strict";var D=Object.create;var g=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var P=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var A=(e,t)=>{for(var o in t)g(e,o,{get:t[o],enumerable:!0})},E=(e,t,o,d)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of G(t))!k.call(e,a)&&a!==o&&g(e,a,{get:()=>t[a],enumerable:!(d=I(t,a))||d.enumerable});return e};var y=(e,t,o)=>(o=e!=null?D(P(e)):{},E(t||!e||!e.__esModule?g(o,"default",{value:e,enumerable:!0}):o,e)),C=e=>E(g({},"__esModule",{value:!0}),e);var H={};A(H,{default:()=>q});module.exports=C(H);var M=require("@fastify/multipart"),x=y(require("fastify-plugin"),1),v=y(require("path"),1),R=require("zod");async function b(e=24678){let t=await import("net");return new Promise((o,d)=>{let a=t.createServer();a.listen(e,"127.0.0.1",()=>{let r=a.address(),n=typeof r=="object"&&r!==null?r.port:e;a.close(()=>o(n))}),a.on("error",r=>{r.code==="EADDRINUSE"?a.close(()=>o(b(e+1))):d(r)})})}function w(e){if(!e)return;let t={},o=d=>!d||typeof d!="object"?!1:!!(d._def||d.def);return e.body&&o(e.body)&&(t.body=R.z.toJSONSchema(e.body,{target:"draft-7",unrepresentable:"any",io:"input"})),e.params&&o(e.params)&&(t.params=R.z.toJSONSchema(e.params,{target:"draft-7",unrepresentable:"any",io:"input"})),e.querystring&&o(e.querystring)&&(t.querystring=R.z.toJSONSchema(e.querystring,{target:"draft-7",unrepresentable:"any",io:"input"})),e.headers&&o(e.headers)&&(t.headers=R.z.toJSONSchema(e.headers,{target:"draft-7",unrepresentable:"any",io:"input"})),e.consumes&&(t.consumes=e.consumes),e.produces&&(t.produces=e.produces),e.response&&(t.response=e.response),e.tags&&(t.tags=e.tags),e.description&&(t.description=e.description),e.summary&&(t.summary=e.summary),e.deprecated&&(t.deprecated=e.deprecated),t}var T=async(e,t)=>{if(!e.isMultipart())return t.status(415).send({statusCode:415,error:"Unsupported Media Type",message:"Multipart/form-data expected"});let o=e.parts(),d={};for await(let a of o)if(a.type==="field")d[a.fieldname]=a.value;else{let r=Symbol.for("file-stream");e[r]=a}e.body=d},_=async(e,t)=>{let o=r=>{if(t.errorHandler){let n=t.errorHandler(r);if(n)return n}return{message:r instanceof Error?r.message:"Internal Server Error",statusCode:500}};if(e.hasDecorator("viteInitDone")&&e.viteInitDone)return;if(!e.hasDecorator("multipartErrors"))try{let r=await import("@fastify/multipart");await e.register(r.default)}catch(r){if(r.code!=="FST_ERR_DEC_ALREADY_PRESENT")throw r}let d=process.env.NODE_ENV==="production";if(d){if(t.clientDistDir)try{let r=await import("@fastify/static"),n=v.default.resolve(t.root,t.clientDistDir);await e.register(r.default,{root:n,wildcard:!1}),console.log(`\u{1F4C2} [Fastify-SSR] Serving static assets from: ${n}`)}catch(r){console.error("\u274C [Fastify-SSR] Error registering @fastify/static. Did you install it?",r)}}else{if(!e.hasDecorator("use"))try{let f=await import("@fastify/middie");await e.register(f.default,{hook:"onRequest"})}catch(f){if(f.code!=="FST_ERR_DEC_ALREADY_PRESENT")throw f}let r=await import("vite"),n=t.viteConfig||{},p;n.server?.hmr&&typeof n.server.hmr=="object"&&"port"in n.server.hmr?p=n.server.hmr.port:p=t.hmrPort??await b();let u=await r.createServer({root:t.root,appType:"custom",...n,server:{hmr:{port:p},...n.server,middlewareMode:!0}});e.use(u.middlewares),e.hasDecorator("viteServer")||e.decorate("viteServer",u),console.log("\u{1F680} [Fastify-SSR] Vite Dev Server Ready")}e.decorate("viteInitDone",!0);let a=async(r,n,p)=>{try{let u=r.raw.url,f=t.getGlobalSettings?await t.getGlobalSettings(r):void 0;if(v.default.extname(u)!==""){n.status(404).send(`File not found: ${u}`);return}let s="";!d&&e.viteServer&&(s=await e.viteServer.transformIndexHtml(u,"<html><head></head><body></body></html>"),s=s.substring(s.indexOf("<head>")+6,s.indexOf("</head>"))),s=(f?`<script>window.__GLOBAL_SETTINGS__ = ${JSON.stringify(f)}</script>`:"")+s;let l=d?await import(v.default.resolve(t.root,t.prodEntryFile)):await e.viteServer.ssrLoadModule(t.devEntryFile),i=l.render||l.default;if(typeof i!="function")throw new Error(`Entry file ${t.devEntryFile} must export a 'render' function.`);await i({req:r,reply:n,head:s,data:p,globalSettings:f})}catch(u){e.viteServer?.ssrFixStacktrace(u),console.error("[SSR Error]:",u),n.sent||n.status(500).send("Internal Server Error")}};e.decorate("addRpcRoute",function(r,n){let{handler:p,schema:u,...f}=n,s=`/rpc${r}`,h=w(u),l={...f,schema:h};if(u?.consumes?.includes("multipart/form-data")){let c=l.preValidation;l.preValidation=c?Array.isArray(c)?[T,...c]:[T,c]:T}this.route({method:"POST",url:s,...l,handler:async(c,m)=>{try{let S=await p.call(this,c,m);return m.sent?void 0:S}catch(S){if(console.error(`[RPC Error] ${s}:`,S),!m.sent){let{statusCode:F,message:O}=o(S);m.status(F).send({error:{message:O}})}}}})}),e.decorate("addRenderRoute",function(r,n){let{handler:p,schema:u,...f}=n||{},s=w(u),h=async(l,i,c)=>{try{let m=await p?.call(this,l,i);return c?m:a(l,i,m)}catch(m){if(console.error(`[Render Error] ${r}:`,m),!i.sent){let{statusCode:S,message:F}=o(m);if(c)i.status(S).send({error:{message:F}});else return a(l,i,{ssrError:{statusCode:500,message:"Internal Error"}})}}};if(this.route({method:"GET",url:r,schema:s,...f,handler:(l,i)=>h(l,i,!1)}),r!=="*"&&r!=="/*"){this.route({method:"GET",url:`/loader${r}`,schema:s,...f,handler:(c,m)=>h(c,m,!0)});let l=r.endsWith("/")?"*":"/*",i=`${r}${l}`;this.route({method:"GET",url:i,schema:s,...f,handler:(c,m)=>h(c,m,!1)})}}),e.decorate("addLoaderRoute",function(r,n){let{handler:p,schema:u,...f}=n,s=`/api${r}`,h=w(u);this.route({method:"GET",url:s,schema:h,...f,handler:async(l,i)=>{try{let c=await p.call(this,l,i);return i.sent?void 0:c}catch(c){if(console.error(`[Loader API Error] ${s}:`,c),!i.sent){let{statusCode:m,message:S}=o(c);i.status(m).send({error:{message:S}})}}}})})},q=(0,x.default)(_,{name:"fastify-b-ssr"});
1
+ "use strict";var O=Object.create;var y=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var G=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty;var k=(e,r)=>{for(var c in r)y(e,c,{get:r[c],enumerable:!0})},T=(e,r,c,h)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of b(r))!P.call(e,o)&&o!==c&&y(e,o,{get:()=>r[o],enumerable:!(h=I(r,o))||h.enumerable});return e};var R=(e,r,c)=>(c=e!=null?O(G(e)):{},T(r||!e||!e.__esModule?y(c,"default",{value:e,enumerable:!0}):c,e)),A=e=>T(y({},"__esModule",{value:!0}),e);var H={};k(H,{default:()=>_});module.exports=A(H);var Z=require("@fastify/multipart"),E=R(require("fastify-plugin"),1),v=R(require("path"),1);async function x(e=24678){let r=await import("net");return new Promise((c,h)=>{let o=r.createServer();o.listen(e,"127.0.0.1",()=>{let t=o.address(),n=typeof t=="object"&&t!==null?t.port:e;o.close(()=>c(n))}),o.on("error",t=>{t.code==="EADDRINUSE"?o.close(()=>c(x(e+1))):h(t)})})}function g(e){if(e)return e}var w=async(e,r)=>{if(!e.isMultipart())return r.status(415).send({statusCode:415,error:"Unsupported Media Type",message:"Multipart/form-data expected"});let c=e.parts(),h={};for await(let o of c)if(o.type==="field")h[o.fieldname]=o.value;else{let t=Symbol.for("file-stream");e[t]=o}e.body=h},C=async(e,r)=>{let c=t=>{if(r.errorHandler){let n=r.errorHandler(t);if(n)return n}return{message:t instanceof Error?t.message:"Internal Server Error",statusCode:500}};if(e.hasDecorator("viteInitDone")&&e.viteInitDone)return;if(!e.hasDecorator("multipartErrors"))try{let t=await import("@fastify/multipart");await e.register(t.default)}catch(t){if(t.code!=="FST_ERR_DEC_ALREADY_PRESENT")throw t}let h=process.env.NODE_ENV==="production";if(h){if(r.clientDistDir)try{let t=await import("@fastify/static"),n=v.default.resolve(r.root,r.clientDistDir);await e.register(t.default,{root:n,wildcard:!1}),console.log(`\u{1F4C2} [Fastify-SSR] Serving static assets from: ${n}`)}catch(t){console.error("\u274C [Fastify-SSR] Error registering @fastify/static. Did you install it?",t)}}else{if(!e.hasDecorator("use"))try{let u=await import("@fastify/middie");await e.register(u.default,{hook:"onRequest"})}catch(u){if(u.code!=="FST_ERR_DEC_ALREADY_PRESENT")throw u}let t=await import("vite"),n=r.viteConfig||{},f;n.server?.hmr&&typeof n.server.hmr=="object"&&"port"in n.server.hmr?f=n.server.hmr.port:f=r.hmrPort??await x();let d=await t.createServer({root:r.root,appType:"custom",...n,server:{hmr:{port:f},...n.server,middlewareMode:!0}});e.use(d.middlewares),e.hasDecorator("viteServer")||e.decorate("viteServer",d),console.log("\u{1F680} [Fastify-SSR] Vite Dev Server Ready")}e.decorate("viteInitDone",!0);let o=async(t,n,f)=>{try{let d=t.raw.url,u=r.getGlobalSettings?await r.getGlobalSettings(t):void 0;if(v.default.extname(d)!==""){n.status(404).send(`File not found: ${d}`);return}let a="";!h&&e.viteServer&&(a=await e.viteServer.transformIndexHtml(d,"<html><head></head><body></body></html>"),a=a.substring(a.indexOf("<head>")+6,a.indexOf("</head>"))),a=(u?`<script>window.__GLOBAL_SETTINGS__ = ${JSON.stringify(u)}</script>`:"")+a;let m=h?await import(v.default.resolve(r.root,r.prodEntryFile)):await e.viteServer.ssrLoadModule(r.devEntryFile),s=m.render||m.default;if(typeof s!="function")throw new Error(`Entry file ${r.devEntryFile} must export a 'render' function.`);await s({req:t,reply:n,head:a,data:f,globalSettings:u})}catch(d){e.viteServer?.ssrFixStacktrace(d),console.error("[SSR Error]:",d),n.sent||n.status(500).send("Internal Server Error")}};e.decorate("addRpcRoute",function(t,n){let{handler:f,schema:d,...u}=n,a=`/rpc${t}`,p=g(d),m={...u,schema:p};if(d?.consumes?.includes("multipart/form-data")){let i=m.preValidation;m.preValidation=i?Array.isArray(i)?[w,...i]:[w,i]:w}this.route({method:"POST",url:a,...m,handler:async(i,l)=>{try{let S=await f.call(this,i,l);return l.sent?void 0:S}catch(S){if(console.error(`[RPC Error] ${a}:`,S),!l.sent){let{statusCode:F,message:D}=c(S);l.status(F).send({error:{message:D}})}}}})}),e.decorate("addRenderRoute",function(t,n){let{handler:f,schema:d,...u}=n||{},a=g(d),p=async(m,s,i)=>{try{let l=await f?.call(this,m,s);return i?l:o(m,s,l)}catch(l){if(console.error(`[Render Error] ${t}:`,l),!s.sent){let{statusCode:S,message:F}=c(l);if(i)s.status(S).send({error:{message:F}});else return o(m,s,{ssrError:{statusCode:500,message:"Internal Error"}})}}};if(this.route({method:"GET",url:t,schema:a,...u,handler:(m,s)=>p(m,s,!1)}),t!=="*"&&t!=="/*"){this.route({method:"GET",url:`/loader${t}`,schema:a,...u,handler:(i,l)=>p(i,l,!0)});let m=t.endsWith("/")?"*":"/*",s=`${t}${m}`;this.route({method:"GET",url:s,schema:a,...u,handler:(i,l)=>p(i,l,!1)})}}),e.decorate("addLoaderRoute",function(t,n){let{handler:f,schema:d,...u}=n,a=`/api${t}`,p=g(d);this.route({method:"GET",url:a,schema:p,...u,handler:async(m,s)=>{try{let i=await f.call(this,m,s);return s.sent?void 0:i}catch(i){if(console.error(`[Loader API Error] ${a}:`,i),!s.sent){let{statusCode:l,message:S}=c(i);s.status(l).send({error:{message:S}})}}}})})},_=(0,E.default)(C,{name:"fastify-b-ssr"});
@@ -1 +1 @@
1
- import"@fastify/multipart";import E from"fastify-plugin";import g from"path";import{z as y}from"zod";async function w(e=24678){let r=await import("net");return new Promise((f,l)=>{let m=r.createServer();m.listen(e,"127.0.0.1",()=>{let t=m.address(),n=typeof t=="object"&&t!==null?t.port:e;m.close(()=>f(n))}),m.on("error",t=>{t.code==="EADDRINUSE"?m.close(()=>f(w(e+1))):l(t)})})}function v(e){if(!e)return;let r={},f=l=>!l||typeof l!="object"?!1:!!(l._def||l.def);return e.body&&f(e.body)&&(r.body=y.toJSONSchema(e.body,{target:"draft-7",unrepresentable:"any",io:"input"})),e.params&&f(e.params)&&(r.params=y.toJSONSchema(e.params,{target:"draft-7",unrepresentable:"any",io:"input"})),e.querystring&&f(e.querystring)&&(r.querystring=y.toJSONSchema(e.querystring,{target:"draft-7",unrepresentable:"any",io:"input"})),e.headers&&f(e.headers)&&(r.headers=y.toJSONSchema(e.headers,{target:"draft-7",unrepresentable:"any",io:"input"})),e.consumes&&(r.consumes=e.consumes),e.produces&&(r.produces=e.produces),e.response&&(r.response=e.response),e.tags&&(r.tags=e.tags),e.description&&(r.description=e.description),e.summary&&(r.summary=e.summary),e.deprecated&&(r.deprecated=e.deprecated),r}var F=async(e,r)=>{if(!e.isMultipart())return r.status(415).send({statusCode:415,error:"Unsupported Media Type",message:"Multipart/form-data expected"});let f=e.parts(),l={};for await(let m of f)if(m.type==="field")l[m.fieldname]=m.value;else{let t=Symbol.for("file-stream");e[t]=m}e.body=l},x=async(e,r)=>{let f=t=>{if(r.errorHandler){let n=r.errorHandler(t);if(n)return n}return{message:t instanceof Error?t.message:"Internal Server Error",statusCode:500}};if(e.hasDecorator("viteInitDone")&&e.viteInitDone)return;if(!e.hasDecorator("multipartErrors"))try{let t=await import("@fastify/multipart");await e.register(t.default)}catch(t){if(t.code!=="FST_ERR_DEC_ALREADY_PRESENT")throw t}let l=process.env.NODE_ENV==="production";if(l){if(r.clientDistDir)try{let t=await import("@fastify/static"),n=g.resolve(r.root,r.clientDistDir);await e.register(t.default,{root:n,wildcard:!1}),console.log(`\u{1F4C2} [Fastify-SSR] Serving static assets from: ${n}`)}catch(t){console.error("\u274C [Fastify-SSR] Error registering @fastify/static. Did you install it?",t)}}else{if(!e.hasDecorator("use"))try{let c=await import("@fastify/middie");await e.register(c.default,{hook:"onRequest"})}catch(c){if(c.code!=="FST_ERR_DEC_ALREADY_PRESENT")throw c}let t=await import("vite"),n=r.viteConfig||{},p;n.server?.hmr&&typeof n.server.hmr=="object"&&"port"in n.server.hmr?p=n.server.hmr.port:p=r.hmrPort??await w();let i=await t.createServer({root:r.root,appType:"custom",...n,server:{hmr:{port:p},...n.server,middlewareMode:!0}});e.use(i.middlewares),e.hasDecorator("viteServer")||e.decorate("viteServer",i),console.log("\u{1F680} [Fastify-SSR] Vite Dev Server Ready")}e.decorate("viteInitDone",!0);let m=async(t,n,p)=>{try{let i=t.raw.url,c=r.getGlobalSettings?await r.getGlobalSettings(t):void 0;if(g.extname(i)!==""){n.status(404).send(`File not found: ${i}`);return}let o="";!l&&e.viteServer&&(o=await e.viteServer.transformIndexHtml(i,"<html><head></head><body></body></html>"),o=o.substring(o.indexOf("<head>")+6,o.indexOf("</head>"))),o=(c?`<script>window.__GLOBAL_SETTINGS__ = ${JSON.stringify(c)}</script>`:"")+o;let d=l?await import(g.resolve(r.root,r.prodEntryFile)):await e.viteServer.ssrLoadModule(r.devEntryFile),a=d.render||d.default;if(typeof a!="function")throw new Error(`Entry file ${r.devEntryFile} must export a 'render' function.`);await a({req:t,reply:n,head:o,data:p,globalSettings:c})}catch(i){e.viteServer?.ssrFixStacktrace(i),console.error("[SSR Error]:",i),n.sent||n.status(500).send("Internal Server Error")}};e.decorate("addRpcRoute",function(t,n){let{handler:p,schema:i,...c}=n,o=`/rpc${t}`,h=v(i),d={...c,schema:h};if(i?.consumes?.includes("multipart/form-data")){let s=d.preValidation;d.preValidation=s?Array.isArray(s)?[F,...s]:[F,s]:F}this.route({method:"POST",url:o,...d,handler:async(s,u)=>{try{let S=await p.call(this,s,u);return u.sent?void 0:S}catch(S){if(console.error(`[RPC Error] ${o}:`,S),!u.sent){let{statusCode:R,message:T}=f(S);u.status(R).send({error:{message:T}})}}}})}),e.decorate("addRenderRoute",function(t,n){let{handler:p,schema:i,...c}=n||{},o=v(i),h=async(d,a,s)=>{try{let u=await p?.call(this,d,a);return s?u:m(d,a,u)}catch(u){if(console.error(`[Render Error] ${t}:`,u),!a.sent){let{statusCode:S,message:R}=f(u);if(s)a.status(S).send({error:{message:R}});else return m(d,a,{ssrError:{statusCode:500,message:"Internal Error"}})}}};if(this.route({method:"GET",url:t,schema:o,...c,handler:(d,a)=>h(d,a,!1)}),t!=="*"&&t!=="/*"){this.route({method:"GET",url:`/loader${t}`,schema:o,...c,handler:(s,u)=>h(s,u,!0)});let d=t.endsWith("/")?"*":"/*",a=`${t}${d}`;this.route({method:"GET",url:a,schema:o,...c,handler:(s,u)=>h(s,u,!1)})}}),e.decorate("addLoaderRoute",function(t,n){let{handler:p,schema:i,...c}=n,o=`/api${t}`,h=v(i);this.route({method:"GET",url:o,schema:h,...c,handler:async(d,a)=>{try{let s=await p.call(this,d,a);return a.sent?void 0:s}catch(s){if(console.error(`[Loader API Error] ${o}:`,s),!a.sent){let{statusCode:u,message:S}=f(s);a.status(u).send({error:{message:S}})}}}})})},P=E(x,{name:"fastify-b-ssr"});export{P as default};
1
+ import"@fastify/multipart";import T from"fastify-plugin";import y from"path";async function g(t=24678){let n=await import("net");return new Promise((h,f)=>{let m=n.createServer();m.listen(t,"127.0.0.1",()=>{let e=m.address(),r=typeof e=="object"&&e!==null?e.port:t;m.close(()=>h(r))}),m.on("error",e=>{e.code==="EADDRINUSE"?m.close(()=>h(g(t+1))):f(e)})})}function v(t){if(t)return t}var F=async(t,n)=>{if(!t.isMultipart())return n.status(415).send({statusCode:415,error:"Unsupported Media Type",message:"Multipart/form-data expected"});let h=t.parts(),f={};for await(let m of h)if(m.type==="field")f[m.fieldname]=m.value;else{let e=Symbol.for("file-stream");t[e]=m}t.body=f},E=async(t,n)=>{let h=e=>{if(n.errorHandler){let r=n.errorHandler(e);if(r)return r}return{message:e instanceof Error?e.message:"Internal Server Error",statusCode:500}};if(t.hasDecorator("viteInitDone")&&t.viteInitDone)return;if(!t.hasDecorator("multipartErrors"))try{let e=await import("@fastify/multipart");await t.register(e.default)}catch(e){if(e.code!=="FST_ERR_DEC_ALREADY_PRESENT")throw e}let f=process.env.NODE_ENV==="production";if(f){if(n.clientDistDir)try{let e=await import("@fastify/static"),r=y.resolve(n.root,n.clientDistDir);await t.register(e.default,{root:r,wildcard:!1}),console.log(`\u{1F4C2} [Fastify-SSR] Serving static assets from: ${r}`)}catch(e){console.error("\u274C [Fastify-SSR] Error registering @fastify/static. Did you install it?",e)}}else{if(!t.hasDecorator("use"))try{let c=await import("@fastify/middie");await t.register(c.default,{hook:"onRequest"})}catch(c){if(c.code!=="FST_ERR_DEC_ALREADY_PRESENT")throw c}let e=await import("vite"),r=n.viteConfig||{},l;r.server?.hmr&&typeof r.server.hmr=="object"&&"port"in r.server.hmr?l=r.server.hmr.port:l=n.hmrPort??await g();let i=await e.createServer({root:n.root,appType:"custom",...r,server:{hmr:{port:l},...r.server,middlewareMode:!0}});t.use(i.middlewares),t.hasDecorator("viteServer")||t.decorate("viteServer",i),console.log("\u{1F680} [Fastify-SSR] Vite Dev Server Ready")}t.decorate("viteInitDone",!0);let m=async(e,r,l)=>{try{let i=e.raw.url,c=n.getGlobalSettings?await n.getGlobalSettings(e):void 0;if(y.extname(i)!==""){r.status(404).send(`File not found: ${i}`);return}let o="";!f&&t.viteServer&&(o=await t.viteServer.transformIndexHtml(i,"<html><head></head><body></body></html>"),o=o.substring(o.indexOf("<head>")+6,o.indexOf("</head>"))),o=(c?`<script>window.__GLOBAL_SETTINGS__ = ${JSON.stringify(c)}</script>`:"")+o;let d=f?await import(y.resolve(n.root,n.prodEntryFile)):await t.viteServer.ssrLoadModule(n.devEntryFile),a=d.render||d.default;if(typeof a!="function")throw new Error(`Entry file ${n.devEntryFile} must export a 'render' function.`);await a({req:e,reply:r,head:o,data:l,globalSettings:c})}catch(i){t.viteServer?.ssrFixStacktrace(i),console.error("[SSR Error]:",i),r.sent||r.status(500).send("Internal Server Error")}};t.decorate("addRpcRoute",function(e,r){let{handler:l,schema:i,...c}=r,o=`/rpc${e}`,p=v(i),d={...c,schema:p};if(i?.consumes?.includes("multipart/form-data")){let s=d.preValidation;d.preValidation=s?Array.isArray(s)?[F,...s]:[F,s]:F}this.route({method:"POST",url:o,...d,handler:async(s,u)=>{try{let S=await l.call(this,s,u);return u.sent?void 0:S}catch(S){if(console.error(`[RPC Error] ${o}:`,S),!u.sent){let{statusCode:R,message:w}=h(S);u.status(R).send({error:{message:w}})}}}})}),t.decorate("addRenderRoute",function(e,r){let{handler:l,schema:i,...c}=r||{},o=v(i),p=async(d,a,s)=>{try{let u=await l?.call(this,d,a);return s?u:m(d,a,u)}catch(u){if(console.error(`[Render Error] ${e}:`,u),!a.sent){let{statusCode:S,message:R}=h(u);if(s)a.status(S).send({error:{message:R}});else return m(d,a,{ssrError:{statusCode:500,message:"Internal Error"}})}}};if(this.route({method:"GET",url:e,schema:o,...c,handler:(d,a)=>p(d,a,!1)}),e!=="*"&&e!=="/*"){this.route({method:"GET",url:`/loader${e}`,schema:o,...c,handler:(s,u)=>p(s,u,!0)});let d=e.endsWith("/")?"*":"/*",a=`${e}${d}`;this.route({method:"GET",url:a,schema:o,...c,handler:(s,u)=>p(s,u,!1)})}}),t.decorate("addLoaderRoute",function(e,r){let{handler:l,schema:i,...c}=r,o=`/api${e}`,p=v(i);this.route({method:"GET",url:o,schema:p,...c,handler:async(d,a)=>{try{let s=await l.call(this,d,a);return a.sent?void 0:s}catch(s){if(console.error(`[Loader API Error] ${o}:`,s),!a.sent){let{statusCode:u,message:S}=h(s);a.status(u).send({error:{message:S}})}}}})})},I=T(E,{name:"fastify-b-ssr"});export{I as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobtail.software/b-ssr",
3
- "version": "1.0.70",
3
+ "version": "1.0.72",
4
4
  "description": "Fastify + Vite SSR Plugin wrapper with RPC",
5
5
  "author": "Victor Moreno <info@bobtail.software> (https://bobtail.software)",
6
6
  "license": "GPL-3.0",