@lomray/vite-ssr-boost 8.0.0-beta.4 → 8.0.0-beta.5

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.
@@ -8,6 +8,7 @@ import type ServerConfig from '../../services/server-config.js';
8
8
  export interface IRequestContext<TAppProps = Record<any, any>> {
9
9
  req: ExpressRequest;
10
10
  res: ExpressResponse;
11
+ request: Request;
11
12
  appProps: NonNullable<TAppProps>;
12
13
  html: {
13
14
  header: string;
@@ -19,7 +20,7 @@ export interface IRequestContext<TAppProps = Record<any, any>> {
19
20
  hasEarlyHints?: boolean;
20
21
  didError?: StreamError;
21
22
  }
22
- export type TRender<TAppProps = Record<any, any>> = (config: ServerConfig, context: IRequestContext<TAppProps>, options: IRenderOptions) => Promise<void>;
23
+ export type TRender<TAppProps = Record<any, any>> = (config: ServerConfig, context: Omit<IRequestContext<TAppProps>, 'request'>, options: IRenderOptions) => Promise<void>;
23
24
  export interface IRenderParams<TAppProps = Record<string, any>> {
24
25
  App: TApp<TAppProps>;
25
26
  handler: StaticHandler;
@@ -59,5 +60,5 @@ export interface IShellReadyOut {
59
60
  /**
60
61
  * Render application
61
62
  */
62
- declare function render({ App, handler }: IRenderParams, config: ServerConfig, context: IRequestContext, { onRouterReady, onShellReady, onResponse, onShellError, onError, getBody, getState, abortDelay, }: IRenderOptions): Promise<void>;
63
+ declare function render({ App, handler }: IRenderParams, config: ServerConfig, initialContext: Omit<IRequestContext, 'request'>, { onRouterReady, onShellReady, onResponse, onShellError, onError, getBody, getState, abortDelay, }: IRenderOptions): Promise<void>;
63
64
  export default render;
@@ -1,2 +1,2 @@
1
- import e from"chalk";import r from"react";import t from"./create-request.js";import o from"../../constants/stream-error.js";import s from"../../core/early-hints.js";import{getHeaderEntries as n,getSetCookieHeaders as a}from"../../core/headers.js";import i from"../../core/render.js";import d from"../../node/render-to-stream.js";import c from"../../node/request-signal.js";import m from"../../node/write-early-hints.js";import p,{writeFetchHeaders as l}from"../../node/write-fetch-response.js";import h from"../../services/ssr-manifest.js";const f=(e,r,o)=>{const s={signal:r};return o&&"GET"!==e.method&&"HEAD"!==e.method&&(s.body=o(e)??null),t(e,s)};async function u({App:t,handler:u},x,y,{onRouterReady:g,onShellReady:S,onResponse:E,onShellError:w,onError:C,getBody:j,getState:v,abortDelay:R=15e3}){const{appProps:b,html:A,req:H,res:q}=y,k=x.getLogger(),D=c(H,q);try{const c={appProps:b,html:A,request:f(H,D.signal,j),response:{headers:new Headers}},L=e=>(y.didError=e.didError,y.html=e.html,y.isStream=e.isStream,y.routerContext=e.routerContext,y.serverContext=e.serverContext,y),P=await i({createApp:(e,o)=>r.createElement(t,{server:{...o.appProps,req:H}},e),handler:u,renderToStream:d},c,{abortDelay:R,getState:v?({context:e})=>v({context:L(e)}):void 0,onError:({context:r,error:t})=>{const{code:s,message:n}=t;if(C?.({context:L(r),error:t}),k.info(e.red(`Stream error. Code: ${s}`)),[o.RenderAborted,o.RenderTimeout,o.RenderCancel].includes(s))return void k.info(e.dim(n));const{original:a}=t;k.error(a)},onResponse:E?({context:e,html:r})=>E({context:L(e),html:r}):void 0,onRouterReady:g?({context:e})=>g({context:L(e)}):void 0,onShellError:w?({context:e,error:r})=>w({context:L(e),error:r}):void 0,onShellReady:({context:e})=>{const r=L(e);((e,r)=>{if(r.headersSent||r.writableEnded)return;r.status(e.response.status??200),n(e.response.headers).forEach(([e,t])=>r.setHeader(e,t));const t=a(e.response.headers);t.length&&r.setHeader("Set-Cookie",t)})(e,q);const t=S?.({context:r});return((e,r)=>{const t=new Headers(e.response.headers);t.delete("Set-Cookie");for(const[e,o]of Object.entries(r.getHeaders()))if("set-cookie"!==e.toLowerCase()&&void 0!==o)if(Array.isArray(o))for(const r of o)t.append(e,r);else t.set(e,"number"==typeof o?String(o):o);e.response.headers=t,e.response.status=r.statusCode})(e,q),t??{}},prepare:async({context:e,executionContext:r})=>{const t=L(e),o=h.get(x);await o.prepareDevAssets(e.routerContext?.matches);const n=o.injectAssets(t);t.hasEarlyHints&&await s(r,n)},routerRequestContext:y},{onEarlyHints:e=>m(q,e)});L(c),await(async(e,r)=>{const t=r.headers.get("Location");if(t&&r.status>=300&&r.status<400&&!e.headersSent&&!e.writableEnded&&!e.destroyed)return l(e,r),await(r.body?.cancel()),void e.redirect(r.status,t);await p(e,r)})(q,P)}finally{D.dispose()}}export{u as default};
1
+ import e from"chalk";import r from"react";import t from"./create-request.js";import o from"../../constants/stream-error.js";import s from"../../core/early-hints.js";import{getHeaderEntries as n,getSetCookieHeaders as a}from"../../core/headers.js";import i from"../../core/render.js";import d from"../../node/render-to-stream.js";import c from"../../node/request-signal.js";import m from"../../node/write-early-hints.js";import p,{writeFetchHeaders as l}from"../../node/write-fetch-response.js";import u from"../../services/ssr-manifest.js";const h=(e,r,o)=>{const s={signal:r};return o&&"GET"!==e.method&&"HEAD"!==e.method&&(s.body=o(e)??null),t(e,s)};async function f({App:t,handler:f},x,y,{onRouterReady:g,onShellReady:S,onResponse:E,onShellError:j,onError:w,getBody:C,getState:v,abortDelay:R=15e3}){const{appProps:b,html:q,req:A,res:H}=y,k=x.getLogger(),D=c(A,H);try{const c=Object.assign(y,{request:h(A,D.signal,C)}),L={appProps:b,html:q,request:c.request,response:{headers:new Headers}},P=e=>(c.request=e.request,c.didError=e.didError,c.html=e.html,c.isStream=e.isStream,c.routerContext=e.routerContext,c.serverContext=e.serverContext,c),T=await i({createApp:(e,o)=>r.createElement(t,{server:{...o.appProps,req:A}},e),handler:f,renderToStream:d},L,{abortDelay:R,getState:v?({context:e})=>v({context:P(e)}):void 0,onError:({context:r,error:t})=>{const{code:s,message:n}=t;if(w?.({context:P(r),error:t}),k.info(e.red(`Stream error. Code: ${s}`)),[o.RenderAborted,o.RenderTimeout,o.RenderCancel].includes(s))return void k.info(e.dim(n));const{original:a}=t;k.error(a)},onResponse:E?({context:e,html:r})=>E({context:P(e),html:r}):void 0,onRouterReady:g?({context:e})=>g({context:P(e)}):void 0,onShellError:j?({context:e,error:r})=>j({context:P(e),error:r}):void 0,onShellReady:({context:e})=>{const r=P(e);((e,r)=>{if(r.headersSent||r.writableEnded)return;r.status(e.response.status??200),n(e.response.headers).forEach(([e,t])=>r.setHeader(e,t));const t=a(e.response.headers);t.length&&r.setHeader("Set-Cookie",t)})(e,H);const t=S?.({context:r});return((e,r)=>{const t=new Headers(e.response.headers);t.delete("Set-Cookie");for(const[e,o]of Object.entries(r.getHeaders()))if("set-cookie"!==e.toLowerCase()&&void 0!==o)if(Array.isArray(o))for(const r of o)t.append(e,r);else t.set(e,"number"==typeof o?String(o):o);e.response.headers=t,e.response.status=r.statusCode})(e,H),t??{}},prepare:async({context:e,executionContext:r})=>{const t=P(e),o=u.get(x);await o.prepareDevAssets(e.routerContext?.matches);const n=o.injectAssets(t);t.hasEarlyHints&&await s(r,n)},routerRequestContext:c},{onEarlyHints:e=>m(H,e)});P(L),await(async(e,r)=>{const t=r.headers.get("Location");if(t&&r.status>=300&&r.status<400&&!e.headersSent&&!e.writableEnded&&!e.destroyed)return l(e,r),await(r.body?.cancel()),void e.redirect(r.status,t);await p(e,r)})(H,T)}finally{D.dispose()}}export{f as default};
2
2
  //# sourceMappingURL=render.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sources":["../../../src/adapters/express/render.tsx"],"sourcesContent":[null],"names":["createRenderRequest","req","signal","getBody","options","method","body","createFetchRequest","async","render","App","handler","config","context","onRouterReady","onShellReady","onResponse","onShellError","onError","getState","abortDelay","appProps","html","shellHtml","res","Logger","getLogger","requestSignal","createRequestSignal","coreContext","request","response","headers","Headers","syncContext","updated","didError","isStream","routerContext","serverContext","coreRender","createApp","children","React","createElement","server","renderToStream","undefined","error","code","message","info","chalk","red","StreamError","RenderAborted","RenderTimeout","RenderCancel","includes","dim","original","legacyContext","headersSent","writableEnded","status","getHeaderEntries","forEach","name","value","setHeader","cookies","getSetCookieHeaders","length","prepareResponse","shell","delete","Object","entries","getHeaders","toLowerCase","Array","isArray","item","append","set","String","statusCode","syncResponse","prepare","executionContext","manifest","SsrManifest","get","prepareDevAssets","matches","hints","injectAssets","hasEarlyHints","emitEarlyHints","routerRequestContext","onEarlyHints","writeEarlyHints","location","destroyed","writeFetchHeaders","cancel","redirect","writeFetchResponse","writeResponse","dispose"],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sources":["../../../src/adapters/express/render.tsx"],"sourcesContent":[null],"names":["createRenderRequest","req","signal","getBody","options","method","body","createFetchRequest","async","render","App","handler","config","initialContext","onRouterReady","onShellReady","onResponse","onShellError","onError","getState","abortDelay","appProps","html","shellHtml","res","Logger","getLogger","requestSignal","createRequestSignal","context","Object","assign","request","coreContext","response","headers","Headers","syncContext","updated","didError","isStream","routerContext","serverContext","coreRender","createApp","children","React","createElement","server","renderToStream","undefined","error","code","message","info","chalk","red","StreamError","RenderAborted","RenderTimeout","RenderCancel","includes","dim","original","legacyContext","headersSent","writableEnded","status","getHeaderEntries","forEach","name","value","setHeader","cookies","getSetCookieHeaders","length","prepareResponse","shell","delete","entries","getHeaders","toLowerCase","Array","isArray","item","append","set","String","statusCode","syncResponse","prepare","executionContext","manifest","SsrManifest","get","prepareDevAssets","matches","hints","injectAssets","hasEarlyHints","emitEarlyHints","routerRequestContext","onEarlyHints","writeEarlyHints","location","destroyed","writeFetchHeaders","cancel","redirect","writeFetchResponse","writeResponse","dispose"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sources":["../../../src/adapters/express/server.ts"],"sourcesContent":[null],"names":["async","createServer","config","app","express","disable","isProd","set","serverApi","ServerApi","setApp","prepareServer","PrepareServer","init","vite","server","middlewareMode","watch","usePolling","interval","appType","mode","use","middlewares","setVite","isSPA","getParams","onAppCreated","root","publicDir","compression","compressionConfig","expressStatic","getMiddlewaresConfig","req","_","next","url","hasAccessIndexHtml","basename","expressStaticOpts","static","path","resolve","index","undefined","res","html","loadHtml","join","send","e","getLogger","error","message","render","onRequest","renderParams","clientHtml","Promise","all","loadEntrypoint","appProps","hasEarlyHints","shouldSkip","shouldCancel","header","footer","context","run","version","isPrintInfo","port","host","isHTTPS","Boolean","getVite","https","isHost","http","listen","onServerStarted","printServerInfo"],"mappings":"+PAqBAA,eAAeC,EAAaC,GAC1B,MAAMC,EAAMC,IAAUC,QAAQ,gBAE1BH,EAAOI,QACTH,EAAII,IAAI,MAAO,cAGjB,MAAMC,EAAY,IAAIC,EAEtBP,EAAOQ,OAAOP,GAEd,MAAMQ,EAAgBC,EAAcC,KAAKX,EAAQM,GAEjD,IAAKN,EAAOI,OAAQ,CAMlB,MAAMQ,qBACS,UACbb,aAAa,CACbc,OAAQ,CACNC,gBAAgB,EAChBC,MAAO,CAKLC,YAAY,EACZC,SAAU,MAGdC,QAAS,SACTC,KAAMnB,EAAOmB,OAMflB,EAAImB,IAAIR,EAAKS,aAEbrB,EAAOsB,QAAQV,EACjB,CAEA,MAAMW,MAAEA,GAAUvB,EAAOwB,YAMzB,GAJKD,SACGd,EAAcgB,eAGlBzB,EAAOI,OAAQ,CACjB,MAAMsB,KAAEA,EAAIC,UAAEA,GAAc3B,EAAOwB,aAC3BI,YAAaC,EAAiBC,cAAEA,GAAkBrB,EAAcsB,uBAmBxE,GAjBIF,GACF5B,EAAImB,IAAIQ,EAAYC,IAGjBN,GAIHtB,EAAImB,IAAI,CAACY,EAAKC,EAAGC,KACC,gBAAZF,EAAIG,KAA0B7B,EAAU8B,uBAC1CJ,EAAIG,IAAM,yBAGZD,MAIAJ,EAAe,CACjB,MAAMO,SAAEA,KAAaC,GAAsBR,EAE3C7B,EAAImB,IACFiB,EACAnC,EAAQqC,OAAOC,EAAKC,QAAQ,GAAGf,KAAQC,KAAc,IAChDW,EACHI,QAAOnB,QAAQoB,IAGrB,CACF,CA8DA,OAzDKpB,EAyCHtB,EAAImB,IAAI,OAAQ,CAACY,EAAKY,EAAKV,KACpB,WACH,IACE,MAAMW,SAAcpC,EAAcqC,SAASd,IAAMe,KAAK,IAEtDH,EAAII,KAAKH,EACX,CAAE,MAAOI,GACPjD,EACGkD,YACAC,MAAM,6BAA8BF,GAAaG,UAAW,CAAED,MAAOF,IACxEf,EAAKe,EACP,CACD,EAXI,KAzCPhD,EAAImB,IAAI,OAAQ,CAACY,EAAKY,EAAKV,KACpB,WACH,IACE,OAAOmB,OAAEA,EAAMC,UAAEA,KAAcC,GAAgBC,SAAoBC,QAAQC,IAAI,CAC7EjD,EAAckD,iBACdlD,EAAcqC,SAASd,MAEnB4B,SAAEA,EAAQC,cAAEA,EAAaC,WAAEA,EAAUC,aAAEA,SACpCT,IAAYtB,EAAKY,KAAS,CAAA,GAC5BoB,EAAQC,GAAUT,EAEzB,GAAIO,EACF,OAGF,GAAID,EACF,OAAO5B,IAGT,MAAMgC,EAA2B,CAC/BlC,MACAY,MACAiB,gBACAD,SAAUA,GAAY,CAAA,EACtBf,KAAM,CAAEmB,SAAQC,iBAGZZ,EAAOrD,EAAQkE,EAASX,EAChC,CAAE,MAAON,GACPjD,EACGkD,YACAC,MAAM,6BAA8BF,GAAaG,UAAW,CAAED,MAAOF,IACxEf,EAAKe,EACP,CACD,EAjCI,KAuDF,CAILkB,IAAK,EAAGC,UAASC,eAAc,GAAS,CAAA,KACtC,MAAMC,KAAEA,EAAIC,KAAEA,GAASvE,EAAOwB,YACxBgD,EAAUC,QAAQzE,EAAO0E,WAAW1E,QAAQa,QAAQ8D,OAKtD3E,EAAO4E,SAAW5E,EAAOI,SAC3BJ,EAAO0E,UAAW1E,OAAOa,OAAO0D,KAAOA,GAGzC,MAAM1D,GACJ2D,EACIG,EAAM5E,aAAaC,EAAO0E,UAAW1E,OAAOa,OAAO8D,MAAQ1E,GAC3D4E,EAAK9E,aAAaE,IACtB6E,OAAOR,EAAMC,EAAM,KACd9D,EAAcsE,kBAAkB9E,EAAKK,EAAWO,GAEhDwD,GAIAW,EAAgBhF,EAAQ,CAAEoE,UAASvD,aAG1C,OAAOA,GAETZ,MAEJ"}
1
+ {"version":3,"file":"server.js","sources":["../../../src/adapters/express/server.ts"],"sourcesContent":[null],"names":["async","createServer","config","app","express","disable","isProd","set","serverApi","ServerApi","setApp","prepareServer","PrepareServer","init","vite","server","middlewareMode","watch","usePolling","interval","appType","mode","use","middlewares","setVite","isSPA","getParams","onAppCreated","root","publicDir","compression","compressionConfig","expressStatic","getMiddlewaresConfig","req","_","next","url","hasAccessIndexHtml","basename","expressStaticOpts","static","path","resolve","index","undefined","res","html","loadHtml","join","send","e","getLogger","error","message","render","onRequest","renderParams","clientHtml","Promise","all","loadEntrypoint","appProps","hasEarlyHints","shouldSkip","shouldCancel","header","footer","renderInput","run","version","isPrintInfo","port","host","isHTTPS","Boolean","getVite","https","isHost","http","listen","onServerStarted","printServerInfo"],"mappings":"+PAqBAA,eAAeC,EAAaC,GAC1B,MAAMC,EAAMC,IAAUC,QAAQ,gBAE1BH,EAAOI,QACTH,EAAII,IAAI,MAAO,cAGjB,MAAMC,EAAY,IAAIC,EAEtBP,EAAOQ,OAAOP,GAEd,MAAMQ,EAAgBC,EAAcC,KAAKX,EAAQM,GAEjD,IAAKN,EAAOI,OAAQ,CAMlB,MAAMQ,qBACS,UACbb,aAAa,CACbc,OAAQ,CACNC,gBAAgB,EAChBC,MAAO,CAKLC,YAAY,EACZC,SAAU,MAGdC,QAAS,SACTC,KAAMnB,EAAOmB,OAMflB,EAAImB,IAAIR,EAAKS,aAEbrB,EAAOsB,QAAQV,EACjB,CAEA,MAAMW,MAAEA,GAAUvB,EAAOwB,YAMzB,GAJKD,SACGd,EAAcgB,eAGlBzB,EAAOI,OAAQ,CACjB,MAAMsB,KAAEA,EAAIC,UAAEA,GAAc3B,EAAOwB,aAC3BI,YAAaC,EAAiBC,cAAEA,GAAkBrB,EAAcsB,uBAmBxE,GAjBIF,GACF5B,EAAImB,IAAIQ,EAAYC,IAGjBN,GAIHtB,EAAImB,IAAI,CAACY,EAAKC,EAAGC,KACC,gBAAZF,EAAIG,KAA0B7B,EAAU8B,uBAC1CJ,EAAIG,IAAM,yBAGZD,MAIAJ,EAAe,CACjB,MAAMO,SAAEA,KAAaC,GAAsBR,EAE3C7B,EAAImB,IACFiB,EACAnC,EAAQqC,OAAOC,EAAKC,QAAQ,GAAGf,KAAQC,KAAc,IAChDW,EACHI,QAAOnB,QAAQoB,IAGrB,CACF,CA8DA,OAzDKpB,EAyCHtB,EAAImB,IAAI,OAAQ,CAACY,EAAKY,EAAKV,KACpB,WACH,IACE,MAAMW,SAAcpC,EAAcqC,SAASd,IAAMe,KAAK,IAEtDH,EAAII,KAAKH,EACX,CAAE,MAAOI,GACPjD,EACGkD,YACAC,MAAM,6BAA8BF,GAAaG,UAAW,CAAED,MAAOF,IACxEf,EAAKe,EACP,CACD,EAXI,KAzCPhD,EAAImB,IAAI,OAAQ,CAACY,EAAKY,EAAKV,KACpB,WACH,IACE,OAAOmB,OAAEA,EAAMC,UAAEA,KAAcC,GAAgBC,SAAoBC,QAAQC,IAAI,CAC7EjD,EAAckD,iBACdlD,EAAcqC,SAASd,MAEnB4B,SAAEA,EAAQC,cAAEA,EAAaC,WAAEA,EAAUC,aAAEA,SACpCT,IAAYtB,EAAKY,KAAS,CAAA,GAC5BoB,EAAQC,GAAUT,EAEzB,GAAIO,EACF,OAGF,GAAID,EACF,OAAO5B,IAGT,MAAMgC,EAAsC,CAC1ClC,MACAY,MACAiB,gBACAD,SAAUA,GAAY,CAAA,EACtBf,KAAM,CAAEmB,SAAQC,iBAGZZ,EAAOrD,EAAQkE,EAAaX,EACpC,CAAE,MAAON,GACPjD,EACGkD,YACAC,MAAM,6BAA8BF,GAAaG,UAAW,CAAED,MAAOF,IACxEf,EAAKe,EACP,CACD,EAjCI,KAuDF,CAILkB,IAAK,EAAGC,UAASC,eAAc,GAAS,CAAA,KACtC,MAAMC,KAAEA,EAAIC,KAAEA,GAASvE,EAAOwB,YACxBgD,EAAUC,QAAQzE,EAAO0E,WAAW1E,QAAQa,QAAQ8D,OAKtD3E,EAAO4E,SAAW5E,EAAOI,SAC3BJ,EAAO0E,UAAW1E,OAAOa,OAAO0D,KAAOA,GAGzC,MAAM1D,GACJ2D,EACIG,EAAM5E,aAAaC,EAAO0E,UAAW1E,OAAOa,OAAO8D,MAAQ1E,GAC3D4E,EAAK9E,aAAaE,IACtB6E,OAAOR,EAAMC,EAAM,KACd9D,EAAcsE,kBAAkB9E,EAAKK,EAAWO,GAEhDwD,GAIAW,EAAgBhF,EAAQ,CAAEoE,UAASvD,aAG1C,OAAOA,GAETZ,MAEJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lomray/vite-ssr-boost",
3
- "version": "8.0.0-beta.4",
3
+ "version": "8.0.0-beta.5",
4
4
  "description": "Vite plugin for create awesome SSR or SPA applications on React.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -10,6 +10,10 @@ export type TRoutesTree = {
10
10
  * Parse react router routes array
11
11
  */
12
12
  declare class ParseRoutes {
13
+ /**
14
+ * Unwrap expression-only TypeScript syntax and parentheses.
15
+ */
16
+ private static unwrapExpression;
13
17
  /**
14
18
  * Path normalize service
15
19
  */
@@ -1,2 +1,2 @@
1
- import e from"fs";import{resolve as t}from"node:path";import r from"path";import n from"@babel/generator";import*as o from"@babel/parser";import a from"@babel/traverse";import{isObjectProperty as i,isIdentifier as s,isBooleanLiteral as l,isJSXElement as p,isFunction as u,isArrayExpression as c,objectProperty as m,identifier as f,stringLiteral as d,isJSXIdentifier as h,isObjectExpression as y}from"@babel/types";import v from"../constants/plugin-name.js";import E from"./path-normalize.js";const g=n.default??n,x=a.default??a;class I{pathNormalize;config;constructor(e,t){this.config=e,this.pathNormalize=new E(e,t)}parse(){const{clientFile:e,root:r}=this.config.getParams(),n=t(r,e),o=this.findRoutesEntrypoint(n);if(!o?.routesPath)throw new Error(`Unable to find routes file import in ${e}`);const{routesPath:a,exportName:i}=o,s=this.resolveFilename(a,n);return this.recursiveBuildRoutesTree(s,i)}parseFile(t){try{const r=e.readFileSync(t,"utf-8");return o.parse(r,{sourceType:"module",createImportExpressions:!0,plugins:["typescript","jsx"]})}catch{return null}}getImportPath(e,t){let r=null,n=null;return x(e,{ImportDeclaration(e){const o=e.node;o.specifiers.forEach(e=>{e.local.name===t&&(n="ImportDefaultSpecifier"===e.type?null:t,r=o.source.value)})}}),{routesPath:r,exportName:n}}findRoutesDefinition(e,t){let r=t;if(x(e,{ExportNamedDeclaration({node:e}){!e.declaration&&e.specifiers.length>0&&e.specifiers.forEach(e=>{const n=e.exported.name;null===t&&"ExportSpecifier"===e.type?"default"===e.local.name&&(r=n):n===t&&(r=e.local.name)})},ExportDefaultDeclaration({node:e}){null===t&&("Identifier"===e.declaration.type?r=e.declaration.name:"VariableDeclaration"===e.declaration.type&&(r=e.declaration.declarations[0].id.name))}}),r){let t=null;return x(e,{VariableDeclaration({node:e}){e.declarations.forEach(n=>{n.id.name===r&&(t=e)})}}),t}return null}findRoutesEntrypoint(e){const t=this.parseFile(e);let r=null;return t?(x(t,{CallExpression({node:e}){"entryClient"===e.callee.name&&e.arguments.length>=2&&"Identifier"===e.arguments[1].type&&(r=e.arguments[1].name)}}),this.getImportPath(t,r)):r}resolveFilename(e,t){let n=e;(e.startsWith("./")||e.startsWith("../"))&&t&&(n=r.resolve(r.dirname(t),e));const o=this.pathNormalize.getAppPath(n,!0);return this.pathNormalize.findAppFile(o)}parseRoutesArray(e,t,r){const n=[];return e.forEach((e,o)=>{if("ObjectExpression"===e.type){const a={index:o,import:"",children:[]};e.properties.forEach(e=>{const n=e;if("children"===n.key.name&&"ArrayExpression"===n.value.type&&(a.children=this.parseRoutesArray(n.value.elements,t,r)),"lazy"===n.key.name&&"ArrowFunctionExpression"===n.value.type){const e=n.value.body;if("ImportExpression"===e.type){const t=e.source;"StringLiteral"===t.type&&(a.import=t.value)}}if("Component"===n.key.name&&"Identifier"===n.value.type){const e=n.value.name,{path:r}=t[e]??{};r&&(a.import=r)}if("element"===n.key.name&&"JSXElement"===n.value.type){const e=n.value?.openingElement?.name?.name,{path:r}=t[e]??{};r&&(a.import=r)}if("children"===n.key.name&&"Identifier"===n.value.type){const e=n.value.name,{path:o,isDefault:i}=t[e]??{};if(o){const t=this.resolveFilename(o,r);t&&(a.children=this.recursiveBuildRoutesTree(t,i?null:e))}}}),(a.import||a.children.length>0)&&n.push(a)}}),n}static parseImportsMap(e){const t={};return x(e,{ImportDeclaration(e){const r=e.node;r.specifiers.forEach(e=>{t[e.local.name]={path:r.source.value,isDefault:"ImportDefaultSpecifier"===e.type}})}}),t}recursiveBuildRoutesTree(e,t=null){if(!e)return[];const r=this.parseFile(e);if(!r)return[];const n=this.findRoutesDefinition(r,t),o=[];if(!n)return o;const a=I.parseImportsMap(r),i=n.declarations[0].init?.elements;return o.push(...this.parseRoutesArray(i,a,e)),o}static processRouteFileCode(e,t,r,n){e.node.properties.forEach(o=>{if(i(o)&&s(o.key)){if("lazy"===o.key.name&&"ArrowFunctionExpression"===o.value.type){const t=o.value.body,a=e.node.properties.find(e=>i(e)&&s(e.key)&&"onlyClient"===e.key.name);if(o.value={type:"CallExpression",callee:{type:"Identifier",name:"n"},arguments:i(a)&&(l(a.value)||p(a.value)||u(a.value)||s(a.value))?[o.value,a.value]:[o.value]},a&&(e.node.properties=e.node.properties.filter(e=>e!==a)),n(),"ImportExpression"===t.type){const n=t.source,a=e.findParent?.(e=>c(e.node));if(a&&"StringLiteral"===n.type&&n.value&&r){const t=m(f("pathId"),d(n.value));e.node.properties.splice(e.node.properties.indexOf(o)+1,0,t)}}}if("element"===o.key.name||"Component"===o.key.name){let n="";p(o.value)&&h(o.value.openingElement.name)?n=o.value.openingElement.name.name:s(o.value)&&(n=o.value.name);const a=e.findParent?.(e=>c(e.node)),i=t[n]?.path;if(a&&i&&r){const t=m(f("pathId"),d(i));e.node.properties.splice(e.node.properties.indexOf(o)+1,0,t)}}"children"===o.key.name&&c(o.value)&&o.value.elements.forEach(e=>{y(e)&&I.processRouteFileCode({node:e},t,r,n)})}})}static handleRoutes(e,t){if(!e)return e;const r=o.parse(e,{sourceType:"module",createImportExpressions:!0,plugins:["typescript","jsx"]});if(!r)return e;const n=I.parseImportsMap(r);let a=!1;return x(r,{ObjectExpression(e){I.processRouteFileCode(e,n,t,()=>{a=!0})}}),a&&r.program.body.unshift({type:"ImportDeclaration",specifiers:[{type:"ImportDefaultSpecifier",local:{type:"Identifier",name:"n"}}],source:{type:"StringLiteral",value:`${v}/helpers/import-route`}}),g(r,{retainLines:!0}).code}}export{I as default};
1
+ import e from"fs";import{resolve as t}from"node:path";import r from"path";import n from"@babel/generator";import*as o from"@babel/parser";import a from"@babel/traverse";import{isArrayExpression as i,isObjectProperty as s,isIdentifier as l,isBooleanLiteral as p,isJSXElement as u,isFunction as c,objectProperty as m,identifier as f,stringLiteral as d,isJSXIdentifier as h,isObjectExpression as y}from"@babel/types";import E from"../constants/plugin-name.js";import v from"./path-normalize.js";const x=n.default??n,g=a.default??a;class I{static unwrapExpression(e){switch(e?.type){case"TSSatisfiesExpression":case"TSAsExpression":case"TSTypeAssertion":case"TSNonNullExpression":case"ParenthesizedExpression":return I.unwrapExpression(e.expression);default:return e}}pathNormalize;config;constructor(e,t){this.config=e,this.pathNormalize=new v(e,t)}parse(){const{clientFile:e,root:r}=this.config.getParams(),n=t(r,e),o=this.findRoutesEntrypoint(n);if(!o?.routesPath)throw new Error(`Unable to find routes file import in ${e}`);const{routesPath:a,exportName:i}=o,s=this.resolveFilename(a,n);return this.recursiveBuildRoutesTree(s,i)}parseFile(t){try{const r=e.readFileSync(t,"utf-8");return o.parse(r,{sourceType:"module",createImportExpressions:!0,plugins:["typescript","jsx"]})}catch{return null}}getImportPath(e,t){let r=null,n=null;return g(e,{ImportDeclaration(e){const o=e.node;o.specifiers.forEach(e=>{e.local.name===t&&(n="ImportDefaultSpecifier"===e.type?null:t,r=o.source.value)})}}),{routesPath:r,exportName:n}}findRoutesDefinition(e,t){let r=t,n=null;if(g(e,{ExportNamedDeclaration({node:e}){!e.declaration&&e.specifiers.length>0&&e.specifiers.forEach(e=>{const n=e.exported.name;null===t&&"ExportSpecifier"===e.type?"default"===e.local.name&&(r=n):n===t&&(r=e.local.name)})},ExportDefaultDeclaration({node:e}){null===t&&(n=e,"Identifier"===e.declaration.type?r=e.declaration.name:"VariableDeclaration"===e.declaration.type&&(r=e.declaration.declarations[0].id.name))}}),r){let t=null;return g(e,{VariableDeclaration({node:e}){e.declarations.forEach(n=>{n.id.name===r&&(t=e)})}}),t}return n}findRoutesEntrypoint(e){const t=this.parseFile(e);let r=null;return t?(g(t,{CallExpression({node:e}){"entryClient"===e.callee.name&&e.arguments.length>=2&&"Identifier"===e.arguments[1].type&&(r=e.arguments[1].name)}}),this.getImportPath(t,r)):r}resolveFilename(e,t){let n=e;(e.startsWith("./")||e.startsWith("../"))&&t&&(n=r.resolve(r.dirname(t),e));const o=this.pathNormalize.getAppPath(n,!0);return this.pathNormalize.findAppFile(o)}parseRoutesArray(e,t,r){const n=[];return e.forEach((e,o)=>{if("ObjectExpression"===e.type){const a={index:o,import:"",children:[]};e.properties.forEach(e=>{const n=e;if("children"===n.key.name){const e=I.unwrapExpression(n.value);i(e)&&(a.children=this.parseRoutesArray(e.elements,t,r))}if("lazy"===n.key.name&&"ArrowFunctionExpression"===n.value.type){const e=n.value.body;if("ImportExpression"===e.type){const t=e.source;"StringLiteral"===t.type&&(a.import=t.value)}}if("Component"===n.key.name&&"Identifier"===n.value.type){const e=n.value.name,{path:r}=t[e]??{};r&&(a.import=r)}if("element"===n.key.name&&"JSXElement"===n.value.type){const e=n.value?.openingElement?.name?.name,{path:r}=t[e]??{};r&&(a.import=r)}if("children"===n.key.name&&"Identifier"===n.value.type){const e=n.value.name,{path:o,isDefault:i}=t[e]??{};if(o){const t=this.resolveFilename(o,r);t&&(a.children=this.recursiveBuildRoutesTree(t,i?null:e))}}}),(a.import||a.children.length>0)&&n.push(a)}}),n}static parseImportsMap(e){const t={};return g(e,{ImportDeclaration(e){const r=e.node;r.specifiers.forEach(e=>{t[e.local.name]={path:r.source.value,isDefault:"ImportDefaultSpecifier"===e.type}})}}),t}recursiveBuildRoutesTree(e,t=null){if(!e)return[];const r=this.parseFile(e);if(!r)return[];const n=this.findRoutesDefinition(r,t),o=[];if(!n)return o;const a=I.parseImportsMap(r),s=I.unwrapExpression("VariableDeclaration"===n.type?n.declarations[0].init:n.declaration);if(!i(s)){if("ExportDefaultDeclaration"===n.type){return this.config.getLogger().warn(`Routes manifest: default export of ${e} is a ${s?.type} and cannot be analyzed; lazy route assets will not be injected.`),o}throw new Error(`Expected routes array in ${e}, received ${s?.type??"undefined"}.`)}return o.push(...this.parseRoutesArray(s.elements,a,e)),o}static processRouteFileCode(e,t,r,n){e.node.properties.forEach(o=>{if(s(o)&&l(o.key)){if("lazy"===o.key.name&&"ArrowFunctionExpression"===o.value.type){const t=o.value.body,a=e.node.properties.find(e=>s(e)&&l(e.key)&&"onlyClient"===e.key.name);if(o.value={type:"CallExpression",callee:{type:"Identifier",name:"n"},arguments:s(a)&&(p(a.value)||u(a.value)||c(a.value)||l(a.value))?[o.value,a.value]:[o.value]},a&&(e.node.properties=e.node.properties.filter(e=>e!==a)),n(),"ImportExpression"===t.type){const n=t.source,a=e.findParent?.(e=>i(I.unwrapExpression(e.node)));if(a&&"StringLiteral"===n.type&&n.value&&r){const t=m(f("pathId"),d(n.value));e.node.properties.splice(e.node.properties.indexOf(o)+1,0,t)}}}if("element"===o.key.name||"Component"===o.key.name){let n="";u(o.value)&&h(o.value.openingElement.name)?n=o.value.openingElement.name.name:l(o.value)&&(n=o.value.name);const a=e.findParent?.(e=>i(I.unwrapExpression(e.node))),s=t[n]?.path;if(a&&s&&r){const t=m(f("pathId"),d(s));e.node.properties.splice(e.node.properties.indexOf(o)+1,0,t)}}const a=I.unwrapExpression(o.value);"children"===o.key.name&&i(a)&&a.elements.forEach(e=>{y(e)&&I.processRouteFileCode({node:e},t,r,n)})}})}static handleRoutes(e,t){if(!e)return e;const r=o.parse(e,{sourceType:"module",createImportExpressions:!0,plugins:["typescript","jsx"]});if(!r)return e;const n=I.parseImportsMap(r);let a=!1;return g(r,{ObjectExpression(e){I.processRouteFileCode(e,n,t,()=>{a=!0})}}),a&&r.program.body.unshift({type:"ImportDeclaration",specifiers:[{type:"ImportDefaultSpecifier",local:{type:"Identifier",name:"n"}}],source:{type:"StringLiteral",value:`${E}/helpers/import-route`}}),x(r,{retainLines:!0}).code}}export{I as default};
2
2
  //# sourceMappingURL=parse-routes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-routes.js","sources":["../../src/services/parse-routes.ts"],"sourcesContent":[null],"names":["generate","babelGenerate","default","traverse","babelTraverse","ParseRoutes","pathNormalize","config","constructor","viteAliases","this","PathNormalize","parse","clientFile","root","getParams","clientEntrypoint","resolve","routesEntrypoint","findRoutesEntrypoint","routesPath","Error","exportName","routeFilepath","resolveFilename","recursiveBuildRoutesTree","parseFile","filename","code","fs","readFileSync","parser","sourceType","createImportExpressions","plugins","getImportPath","ast","importName","ImportDeclaration","nodePath","importNode","node","specifiers","forEach","specifier","local","name","type","source","value","findRoutesDefinition","exportNameResolved","ExportNamedDeclaration","declaration","length","exportedName","exported","ExportDefaultDeclaration","declarations","id","variableNode","VariableDeclaration","routesVariable","CallExpression","callee","arguments","relativeFile","resolvedFilename","startsWith","path","dirname","filepath","getAppPath","findAppFile","parseRoutesArray","elements","importsMap","results","index","routeInfo","import","children","properties","prop","objectProp","key","importCall","body","importArg","importPath","openingElement","isDefault","childrenFilePath","push","parseImportsMap","routesNode","init","processRouteFileCode","shouldAddPathId","addImportRouteWrapper","property","isObjectProperty","isIdentifier","onlyClientProp","find","p","isBooleanLiteral","isJSXElement","isFunction","filter","parent","findParent","isArrayExpression","pathIdProperty","objectProperty","identifier","stringLiteral","splice","indexOf","componentName","isJSXIdentifier","element","isObjectExpression","handleRoutes","shouldAddRoutesImport","ObjectExpression","program","unshift","PLUGIN_NAME","retainLines"],"mappings":"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"}
1
+ {"version":3,"file":"parse-routes.js","sources":["../../src/services/parse-routes.ts"],"sourcesContent":[null],"names":["generate","babelGenerate","default","traverse","babelTraverse","ParseRoutes","unwrapExpression","node","type","expression","pathNormalize","config","constructor","viteAliases","this","PathNormalize","parse","clientFile","root","getParams","clientEntrypoint","resolve","routesEntrypoint","findRoutesEntrypoint","routesPath","Error","exportName","routeFilepath","resolveFilename","recursiveBuildRoutesTree","parseFile","filename","code","fs","readFileSync","parser","sourceType","createImportExpressions","plugins","getImportPath","ast","importName","ImportDeclaration","nodePath","importNode","specifiers","forEach","specifier","local","name","source","value","findRoutesDefinition","exportNameResolved","defaultExportNode","ExportNamedDeclaration","declaration","length","exportedName","exported","ExportDefaultDeclaration","declarations","id","variableNode","VariableDeclaration","routesVariable","CallExpression","callee","arguments","relativeFile","resolvedFilename","startsWith","path","dirname","filepath","getAppPath","findAppFile","parseRoutesArray","elements","importsMap","results","index","routeInfo","import","children","properties","prop","objectProp","key","isArrayExpression","importCall","body","importArg","importPath","openingElement","isDefault","childrenFilePath","push","parseImportsMap","routesNode","routesArray","init","getLogger","warn","processRouteFileCode","shouldAddPathId","addImportRouteWrapper","property","isObjectProperty","isIdentifier","onlyClientProp","find","p","isBooleanLiteral","isJSXElement","isFunction","filter","parent","findParent","pathIdProperty","objectProperty","identifier","stringLiteral","splice","indexOf","componentName","isJSXIdentifier","element","isObjectExpression","handleRoutes","shouldAddRoutesImport","ObjectExpression","program","unshift","PLUGIN_NAME","retainLines"],"mappings":"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"}