@voltx/server 0.3.3 → 0.3.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.
package/dist/index.cjs CHANGED
@@ -323,23 +323,31 @@ function registerSSR(app, vite, options = {}) {
323
323
  }
324
324
  try {
325
325
  let render;
326
- if (vite) {
326
+ if (options.render) {
327
+ render = options.render;
328
+ } else if (vite) {
327
329
  const mod = await vite.ssrLoadModule(entryServer);
328
330
  render = mod.render;
329
331
  } else if (process.env.NODE_ENV === "production") {
330
332
  const ssrBundlePath = (0, import_node_path3.resolve)(process.cwd(), "dist/server/entry-server.js");
331
333
  const mod = await import(ssrBundlePath);
332
334
  render = mod.render;
333
- } else if (options.loadModule) {
334
- const mod = await options.loadModule(entryServer);
335
- render = mod.render;
336
335
  } else {
337
- const absPath = (0, import_node_path3.resolve)(process.cwd(), entryServer);
338
- const mod = await import(
339
- /* @vite-ignore */
340
- absPath
341
- );
342
- render = mod.render;
336
+ const viteFromEnv = c.env?.vite;
337
+ if (viteFromEnv?.ssrLoadModule) {
338
+ const mod = await viteFromEnv.ssrLoadModule(entryServer);
339
+ render = mod.render;
340
+ } else if (options.loadModule) {
341
+ const mod = await options.loadModule(entryServer);
342
+ render = mod.render;
343
+ } else {
344
+ const absPath = (0, import_node_path3.resolve)(process.cwd(), entryServer);
345
+ const mod = await import(
346
+ /* @vite-ignore */
347
+ absPath
348
+ );
349
+ render = mod.render;
350
+ }
343
351
  }
344
352
  const appStream = await render(url);
345
353
  const publicEnv = getPublicEnv();
package/dist/index.d.cts CHANGED
@@ -190,6 +190,12 @@ interface SSROptions {
190
190
  * Example: `loadModule: (path) => import(path)`
191
191
  */
192
192
  loadModule?: (path: string) => Promise<Record<string, unknown>>;
193
+ /**
194
+ * Pre-loaded render function. When provided, skips all module loading
195
+ * and uses this function directly. Useful when the caller imports the
196
+ * entry-server module themselves (e.g. in Vite-processed server.ts).
197
+ */
198
+ render?: (url: string) => Promise<ReadableStream>;
193
199
  }
194
200
  /** Vite dev server shape — minimal interface to avoid hard dep on vite */
195
201
  interface ViteDevServer {
package/dist/index.d.ts CHANGED
@@ -190,6 +190,12 @@ interface SSROptions {
190
190
  * Example: `loadModule: (path) => import(path)`
191
191
  */
192
192
  loadModule?: (path: string) => Promise<Record<string, unknown>>;
193
+ /**
194
+ * Pre-loaded render function. When provided, skips all module loading
195
+ * and uses this function directly. Useful when the caller imports the
196
+ * entry-server module themselves (e.g. in Vite-processed server.ts).
197
+ */
198
+ render?: (url: string) => Promise<ReadableStream>;
193
199
  }
194
200
  /** Vite dev server shape — minimal interface to avoid hard dep on vite */
195
201
  interface ViteDevServer {
package/dist/index.js CHANGED
@@ -287,23 +287,31 @@ function registerSSR(app, vite, options = {}) {
287
287
  }
288
288
  try {
289
289
  let render;
290
- if (vite) {
290
+ if (options.render) {
291
+ render = options.render;
292
+ } else if (vite) {
291
293
  const mod = await vite.ssrLoadModule(entryServer);
292
294
  render = mod.render;
293
295
  } else if (process.env.NODE_ENV === "production") {
294
296
  const ssrBundlePath = resolve2(process.cwd(), "dist/server/entry-server.js");
295
297
  const mod = await import(ssrBundlePath);
296
298
  render = mod.render;
297
- } else if (options.loadModule) {
298
- const mod = await options.loadModule(entryServer);
299
- render = mod.render;
300
299
  } else {
301
- const absPath = resolve2(process.cwd(), entryServer);
302
- const mod = await import(
303
- /* @vite-ignore */
304
- absPath
305
- );
306
- render = mod.render;
300
+ const viteFromEnv = c.env?.vite;
301
+ if (viteFromEnv?.ssrLoadModule) {
302
+ const mod = await viteFromEnv.ssrLoadModule(entryServer);
303
+ render = mod.render;
304
+ } else if (options.loadModule) {
305
+ const mod = await options.loadModule(entryServer);
306
+ render = mod.render;
307
+ } else {
308
+ const absPath = resolve2(process.cwd(), entryServer);
309
+ const mod = await import(
310
+ /* @vite-ignore */
311
+ absPath
312
+ );
313
+ render = mod.render;
314
+ }
307
315
  }
308
316
  const appStream = await render(url);
309
317
  const publicEnv = getPublicEnv();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voltx/server",
3
- "version": "0.3.3",
3
+ "version": "0.3.5",
4
4
  "description": "VoltX Server — Hono-based HTTP server with file-based routing, SSE streaming, and static file serving",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",