@voltx/server 0.3.4 → 0.3.7

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
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __export = (target, all) => {
7
9
  for (var name in all)
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
15
17
  }
16
18
  return to;
17
19
  };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
18
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
29
 
20
30
  // src/index.ts
@@ -323,7 +333,9 @@ function registerSSR(app, vite, options = {}) {
323
333
  }
324
334
  try {
325
335
  let render;
326
- if (vite) {
336
+ if (options.render) {
337
+ render = options.render;
338
+ } else if (vite) {
327
339
  const mod = await vite.ssrLoadModule(entryServer);
328
340
  render = mod.render;
329
341
  } else if (process.env.NODE_ENV === "production") {
@@ -331,20 +343,29 @@ function registerSSR(app, vite, options = {}) {
331
343
  const mod = await import(ssrBundlePath);
332
344
  render = mod.render;
333
345
  } else {
334
- const viteFromEnv = c.env?.vite;
335
- if (viteFromEnv) {
346
+ const envRecord = c.env;
347
+ const viteFromEnv = envRecord?.vite ?? envRecord?.VITE_DEV_SERVER ?? envRecord?.incoming?.server?.vite;
348
+ if (viteFromEnv?.ssrLoadModule) {
336
349
  const mod = await viteFromEnv.ssrLoadModule(entryServer);
337
350
  render = mod.render;
338
351
  } else if (options.loadModule) {
339
352
  const mod = await options.loadModule(entryServer);
340
353
  render = mod.render;
341
354
  } else {
342
- const absPath = (0, import_node_path3.resolve)(process.cwd(), entryServer);
343
- const mod = await import(
344
- /* @vite-ignore */
345
- absPath
346
- );
347
- render = mod.render;
355
+ try {
356
+ const { createServer: createViteServer } = await import("vite");
357
+ const devServer = await createViteServer({
358
+ server: { middlewareMode: true },
359
+ appType: "custom",
360
+ optimizeDeps: { disabled: true }
361
+ });
362
+ const mod = await devServer.ssrLoadModule(entryServer);
363
+ render = mod.render;
364
+ } catch {
365
+ throw new Error(
366
+ `[voltx] Cannot load "${entryServer}" \u2014 Node.js cannot import .tsx files directly. Ensure @hono/vite-dev-server is configured or pass a loadModule/render option to registerSSR().`
367
+ );
368
+ }
348
369
  }
349
370
  }
350
371
  const appStream = await render(url);
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,7 +287,9 @@ 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") {
@@ -295,20 +297,29 @@ function registerSSR(app, vite, options = {}) {
295
297
  const mod = await import(ssrBundlePath);
296
298
  render = mod.render;
297
299
  } else {
298
- const viteFromEnv = c.env?.vite;
299
- if (viteFromEnv) {
300
+ const envRecord = c.env;
301
+ const viteFromEnv = envRecord?.vite ?? envRecord?.VITE_DEV_SERVER ?? envRecord?.incoming?.server?.vite;
302
+ if (viteFromEnv?.ssrLoadModule) {
300
303
  const mod = await viteFromEnv.ssrLoadModule(entryServer);
301
304
  render = mod.render;
302
305
  } else if (options.loadModule) {
303
306
  const mod = await options.loadModule(entryServer);
304
307
  render = mod.render;
305
308
  } else {
306
- const absPath = resolve2(process.cwd(), entryServer);
307
- const mod = await import(
308
- /* @vite-ignore */
309
- absPath
310
- );
311
- render = mod.render;
309
+ try {
310
+ const { createServer: createViteServer } = await import("vite");
311
+ const devServer = await createViteServer({
312
+ server: { middlewareMode: true },
313
+ appType: "custom",
314
+ optimizeDeps: { disabled: true }
315
+ });
316
+ const mod = await devServer.ssrLoadModule(entryServer);
317
+ render = mod.render;
318
+ } catch {
319
+ throw new Error(
320
+ `[voltx] Cannot load "${entryServer}" \u2014 Node.js cannot import .tsx files directly. Ensure @hono/vite-dev-server is configured or pass a loadModule/render option to registerSSR().`
321
+ );
322
+ }
312
323
  }
313
324
  }
314
325
  const appStream = await render(url);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voltx/server",
3
- "version": "0.3.4",
3
+ "version": "0.3.7",
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",