@celsian/vura-cli 0.2.0 → 0.5.0
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/LICENSE +21 -0
- package/README.md +36 -17
- package/dist/bin.js +0 -0
- package/dist/commands/build.d.ts +1 -0
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +133 -18
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/dev.d.ts +13 -0
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +301 -117
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/shared.d.ts +18 -0
- package/dist/commands/shared.d.ts.map +1 -0
- package/dist/commands/shared.js +57 -0
- package/dist/commands/shared.js.map +1 -0
- package/dist/commands/tasks.d.ts +26 -0
- package/dist/commands/tasks.d.ts.map +1 -0
- package/dist/commands/tasks.js +130 -0
- package/dist/commands/tasks.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/package.json +21 -9
package/dist/commands/dev.js
CHANGED
|
@@ -12,7 +12,9 @@
|
|
|
12
12
|
* vura dev — Start dev server on port 3000
|
|
13
13
|
* vura dev --port 8080 — Start on custom port
|
|
14
14
|
*/
|
|
15
|
-
import {
|
|
15
|
+
import { renderToString as builtinRenderToString } from 'what-framework/server';
|
|
16
|
+
import { importRouteModule } from './shared.js';
|
|
17
|
+
import { buildManifest, compilePageRoutes, matchPageRoute, compileRoutes, matchApiPath, getLogger, wrapDocument, escapeHtml, parseNodeBody, reportError, getMimeType, createApiApp, createWsUpgradeHandler, createNoServerWebSocketServer, GLOBAL_HOOKS_FILENAMES, nodeToWebRequest, writeWebResponse, generateClientPageEntry, } from '@celsian/vura-core';
|
|
16
18
|
export function parseDevOptions(args, projectRoot = process.cwd()) {
|
|
17
19
|
const portArg = args.find((_, i) => args[i - 1] === '--port');
|
|
18
20
|
const hostArg = args.find((_, i) => args[i - 1] === '--host');
|
|
@@ -117,6 +119,8 @@ export async function devCommand(args) {
|
|
|
117
119
|
if (err.code === 'ERR_MODULE_NOT_FOUND' || err.message?.includes('Cannot find')) {
|
|
118
120
|
console.log(' Vite not found, starting standalone dev server...\n');
|
|
119
121
|
await startStandaloneServer(manifest, opts);
|
|
122
|
+
// Keep the dev process alive until the user interrupts it.
|
|
123
|
+
await new Promise(() => { });
|
|
120
124
|
}
|
|
121
125
|
else {
|
|
122
126
|
throw err;
|
|
@@ -142,52 +146,142 @@ function printRouteTable(manifest) {
|
|
|
142
146
|
/**
|
|
143
147
|
* Standalone dev server without Vite — for backend-only projects (CelsianJS).
|
|
144
148
|
* Uses Node's built-in HTTP server with file watching.
|
|
149
|
+
*
|
|
150
|
+
* Exported for tests. Resolves once the server is listening and returns a
|
|
151
|
+
* handle; devCommand keeps the process alive itself.
|
|
145
152
|
*/
|
|
146
|
-
async function startStandaloneServer(manifest, opts) {
|
|
153
|
+
export async function startStandaloneServer(manifest, opts) {
|
|
147
154
|
const { createServer } = await import('node:http');
|
|
148
155
|
const { watch } = await import('node:fs');
|
|
149
|
-
const {
|
|
150
|
-
|
|
151
|
-
const { pathToFileURL } = await import('node:url');
|
|
152
|
-
const { build: esbuild } = await import('esbuild');
|
|
153
|
-
const tmpDir = join(opts.projectRoot, 'node_modules', '.then-dev-cache');
|
|
154
|
-
await mkdirAsync(tmpDir, { recursive: true });
|
|
155
|
-
// Determine JSX import source
|
|
156
|
-
let jsxImportSource = '@celsian/vura-core';
|
|
157
|
-
try {
|
|
158
|
-
// @ts-ignore — optional dependency
|
|
159
|
-
await import('what-framework/jsx-runtime');
|
|
160
|
-
jsxImportSource = 'what-framework';
|
|
161
|
-
}
|
|
162
|
-
catch { }
|
|
156
|
+
const { join } = await import('node:path');
|
|
157
|
+
// Thin wrapper so call-sites inside this function keep the same shape
|
|
163
158
|
async function loadHandler(filePath) {
|
|
164
|
-
|
|
165
|
-
|
|
159
|
+
return importRouteModule(opts.projectRoot, filePath);
|
|
160
|
+
}
|
|
161
|
+
// One module instance per route file, shared by the HTTP app AND every ws
|
|
162
|
+
// connection. Module-level state (rooms Maps, Sets, counters — the hot-route
|
|
163
|
+
// wedge) must survive across connections/requests, matching prod (one
|
|
164
|
+
// bundled instance) and Vite dev (ssrLoadModule's cache). importRouteModule
|
|
165
|
+
// imports a unique URL per call, so without this cache every connection got
|
|
166
|
+
// a fresh instance. Cleared on fs-watcher rescan: edits still apply on the
|
|
167
|
+
// next connection/request — the documented dev contract.
|
|
168
|
+
const moduleCache = new Map();
|
|
169
|
+
function loadHandlerCached(filePath) {
|
|
170
|
+
let mod = moduleCache.get(filePath);
|
|
171
|
+
if (!mod) {
|
|
172
|
+
mod = loadHandler(filePath);
|
|
173
|
+
// Never cache failures (e.g. a syntax error mid-edit): the next
|
|
174
|
+
// connection retries the load instead of replaying the rejection.
|
|
175
|
+
mod.catch(() => {
|
|
176
|
+
if (moduleCache.get(filePath) === mod)
|
|
177
|
+
moduleCache.delete(filePath);
|
|
178
|
+
});
|
|
179
|
+
moduleCache.set(filePath, mod);
|
|
180
|
+
}
|
|
181
|
+
return mod;
|
|
182
|
+
}
|
|
183
|
+
const logger = getLogger();
|
|
184
|
+
const { existsSync } = await import('node:fs');
|
|
185
|
+
function findGlobalHooksFile() {
|
|
186
|
+
for (const filename of GLOBAL_HOOKS_FILENAMES) {
|
|
187
|
+
if (existsSync(join(opts.projectRoot, filename)))
|
|
188
|
+
return filename;
|
|
189
|
+
}
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Build a CelsianApp from the GIVEN manifest by loading each non-task route
|
|
194
|
+
* module via esbuild + dynamic import. Called on startup (initial manifest)
|
|
195
|
+
* and on file changes (the freshly rescanned manifest). Takes the manifest
|
|
196
|
+
* as a parameter — NOT the `manifest` closure variable — because the rescan
|
|
197
|
+
* swaps `manifest` only after a successful rebuild; reading the closure here
|
|
198
|
+
* would rebuild against the stale route set (deleted files would be
|
|
199
|
+
* re-esbuilt and throw forever; added files would be missed).
|
|
200
|
+
*/
|
|
201
|
+
async function buildStandaloneApiApp(forManifest) {
|
|
202
|
+
const routes = [];
|
|
203
|
+
for (const route of forManifest.api) {
|
|
204
|
+
if (route.kind === 'task')
|
|
205
|
+
continue;
|
|
206
|
+
// Cached: HTTP handlers and websocket() must observe the SAME module
|
|
207
|
+
// instance (module-level state is shared between them, as in prod).
|
|
208
|
+
const mod = await loadHandlerCached(route.filePath);
|
|
209
|
+
routes.push({ ...route, module: mod });
|
|
210
|
+
}
|
|
211
|
+
let globalHooks;
|
|
212
|
+
const hooksFile = findGlobalHooksFile();
|
|
213
|
+
if (hooksFile) {
|
|
214
|
+
const hooksMod = await loadHandler(hooksFile);
|
|
215
|
+
const normalize = (v) => v == null ? [] : Array.isArray(v) ? v : [v];
|
|
216
|
+
globalHooks = {
|
|
217
|
+
onRequest: normalize(hooksMod.onRequest),
|
|
218
|
+
onError: normalize(hooksMod.onError),
|
|
219
|
+
onResponse: normalize(hooksMod.onResponse),
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
// Inject a dev-only onError hook (appended after any user hooks) that prints
|
|
223
|
+
// handler errors to the terminal via reportError so they aren't swallowed by
|
|
224
|
+
// celsian's logger:false + 500 JSON response.
|
|
225
|
+
const devErrorHook = (err, req, _reply) => {
|
|
226
|
+
const path = req?.url ?? req?.raw?.url ?? '(unknown path)';
|
|
227
|
+
const error = err instanceof Error ? err : new Error(String(err));
|
|
228
|
+
reportError(error, { method: 'handler', path }, logger);
|
|
229
|
+
};
|
|
230
|
+
const mergedHooks = {
|
|
231
|
+
onRequest: globalHooks?.onRequest ?? [],
|
|
232
|
+
// Append dev hook after user hooks — never clobbers user hooks.
|
|
233
|
+
onError: [...(globalHooks?.onError ?? []), devErrorHook],
|
|
234
|
+
onResponse: globalHooks?.onResponse ?? [],
|
|
235
|
+
};
|
|
236
|
+
// Compile route regexes for the path-existence pre-check (method-agnostic).
|
|
237
|
+
const compiledApiRoutes = compileRoutes(routes);
|
|
238
|
+
return { app: createApiApp({ routes, globalHooks: mergedHooks }), compiledApiRoutes };
|
|
239
|
+
}
|
|
240
|
+
// Build initial CelsianApp and page route table
|
|
241
|
+
let { app: apiApp, compiledApiRoutes } = await buildStandaloneApiApp(manifest);
|
|
242
|
+
// In dev mode, compile ALL page routes — not just server/hybrid.
|
|
243
|
+
// Static and server pages are SSR'd on the fly; client pages are served as
|
|
244
|
+
// a shell + on-demand browser bundle (SSR'ing them would run hooks like
|
|
245
|
+
// useSignal outside a component context and throw).
|
|
246
|
+
let compiledPages = compilePageRoutes(manifest.pages);
|
|
247
|
+
// ── Browser page bundles (client/hybrid) — on-demand esbuild, dev cache ──
|
|
248
|
+
const browserScriptPath = (page) => '/_then/pages/' + page.filePath.replace(/^src\/pages\//, '').replace(/\.(tsx|jsx|ts|js)$/, '.js');
|
|
249
|
+
const browserBundleCache = new Map();
|
|
250
|
+
async function bundleBrowserPage(page) {
|
|
251
|
+
const cached = browserBundleCache.get(page.filePath);
|
|
252
|
+
if (cached !== undefined)
|
|
253
|
+
return cached;
|
|
254
|
+
const { build: esbuild } = await import('esbuild');
|
|
255
|
+
const { dirname, basename, resolve } = await import('node:path');
|
|
256
|
+
const absPath = resolve(opts.projectRoot, page.filePath);
|
|
257
|
+
let jsxImportSource = '@celsian/vura-core';
|
|
258
|
+
try {
|
|
259
|
+
// @ts-ignore — optional peer dep
|
|
260
|
+
await import('what-framework/jsx-runtime');
|
|
261
|
+
jsxImportSource = 'what-framework';
|
|
262
|
+
}
|
|
263
|
+
catch { /* not installed — keep default */ }
|
|
166
264
|
const result = await esbuild({
|
|
167
|
-
|
|
265
|
+
stdin: {
|
|
266
|
+
contents: generateClientPageEntry(`./${basename(absPath)}`, page.mode),
|
|
267
|
+
resolveDir: dirname(absPath),
|
|
268
|
+
sourcefile: '__vura-client-entry__.js',
|
|
269
|
+
loader: 'js',
|
|
270
|
+
},
|
|
168
271
|
bundle: true,
|
|
169
272
|
format: 'esm',
|
|
170
273
|
target: 'es2022',
|
|
171
|
-
platform: '
|
|
274
|
+
platform: 'browser',
|
|
172
275
|
write: false,
|
|
173
|
-
outfile: '
|
|
174
|
-
|
|
276
|
+
outfile: 'page.js',
|
|
277
|
+
jsx: 'automatic',
|
|
278
|
+
jsxImportSource,
|
|
279
|
+
nodePaths: [join(opts.projectRoot, 'node_modules')],
|
|
175
280
|
});
|
|
176
|
-
const
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
return import(pathToFileURL(outPath).href);
|
|
281
|
+
const text = result.outputFiles[0].text;
|
|
282
|
+
browserBundleCache.set(page.filePath, text);
|
|
283
|
+
return text;
|
|
180
284
|
}
|
|
181
|
-
const logger = getLogger();
|
|
182
|
-
// Hook registry for the dev server — routes can register hooks via exports
|
|
183
|
-
const hookRegistry = createHookRegistry();
|
|
184
|
-
hookRegistry.setLogger(logger);
|
|
185
|
-
// Pre-compile route regexes at startup — recompiled only on file change
|
|
186
|
-
let compiledRoutes = compileRoutes(manifest.api);
|
|
187
|
-
// In dev mode, compile ALL page routes — not just server/hybrid.
|
|
188
|
-
// Static and client pages also need on-the-fly SSR rendering during development
|
|
189
|
-
// because there's no Vite to serve them as static assets.
|
|
190
|
-
let compiledPages = compilePageRoutes(manifest.pages);
|
|
191
285
|
const server = createServer(async (req, res) => {
|
|
192
286
|
const url = new URL(req.url ?? '/', `http://${req.headers.host}`);
|
|
193
287
|
const method = (req.method ?? 'GET').toUpperCase();
|
|
@@ -307,74 +401,53 @@ async function startStandaloneServer(manifest, opts) {
|
|
|
307
401
|
}));
|
|
308
402
|
return;
|
|
309
403
|
}
|
|
310
|
-
// Try API route matching (
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
if
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
const cReply = {
|
|
333
|
-
status(code) { statusCode = code; return cReply; },
|
|
334
|
-
header(name, value) { headers[name] = value; return cReply; },
|
|
335
|
-
json(data) {
|
|
336
|
-
res.writeHead(statusCode, headers);
|
|
337
|
-
res.end(JSON.stringify(data));
|
|
338
|
-
return null;
|
|
339
|
-
},
|
|
340
|
-
send(data) {
|
|
341
|
-
res.writeHead(statusCode, headers);
|
|
342
|
-
res.end(data);
|
|
343
|
-
return null;
|
|
344
|
-
},
|
|
345
|
-
redirect(url, status) {
|
|
346
|
-
res.writeHead(status || 302, { 'location': url });
|
|
347
|
-
res.end('Redirecting to ' + url);
|
|
348
|
-
return null;
|
|
349
|
-
},
|
|
350
|
-
};
|
|
351
|
-
// Extract route-level hooks if the module exports them
|
|
352
|
-
const routeHooks = mod.hooks;
|
|
353
|
-
// Validate request if route exports a schema
|
|
354
|
-
if (mod.schema) {
|
|
355
|
-
const validationError = validateRequest(cReq, mod.schema);
|
|
356
|
-
if (validationError) {
|
|
357
|
-
res.writeHead(validationError.statusCode, { 'content-type': 'application/json' });
|
|
358
|
-
res.end(JSON.stringify(validationError.body));
|
|
404
|
+
// Try API route matching via CelsianApp.handle (A1.3 dev/prod parity)
|
|
405
|
+
if (url.pathname.startsWith('/api/') || url.pathname.startsWith('/__vura/')) {
|
|
406
|
+
// Route-existence pre-check (method-agnostic): if no manifest API route
|
|
407
|
+
// pattern matches this pathname, skip celsian entirely and fall through to
|
|
408
|
+
// pages/404. This also correctly passes through intentional handler 404s —
|
|
409
|
+
// if the route exists but returns 404, that response is delivered as-is.
|
|
410
|
+
if (matchApiPath(compiledApiRoutes, url.pathname)) {
|
|
411
|
+
try {
|
|
412
|
+
const webReq = nodeToWebRequest(req, url);
|
|
413
|
+
const webRes = await apiApp.handle(webReq);
|
|
414
|
+
// A matched route's response is always delivered — including intentional
|
|
415
|
+
// 404s from the handler. The pre-check above guarantees the route exists.
|
|
416
|
+
await writeWebResponse(res, webRes);
|
|
417
|
+
return;
|
|
418
|
+
}
|
|
419
|
+
catch (err) {
|
|
420
|
+
const error = err instanceof Error ? err : new Error(String(err));
|
|
421
|
+
reportError(error, { method, path: url.pathname, requestId: reqCtx.requestId }, logger);
|
|
422
|
+
if (!res.writableEnded) {
|
|
423
|
+
res.writeHead(500, { 'Content-Type': 'application/json' });
|
|
424
|
+
res.end(JSON.stringify({ error: error.message }));
|
|
425
|
+
}
|
|
359
426
|
return;
|
|
360
427
|
}
|
|
361
428
|
}
|
|
362
|
-
//
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
429
|
+
// No manifest route matched — fall through to pages/404.
|
|
430
|
+
}
|
|
431
|
+
// Serve on-demand browser bundles for client/hybrid pages (mirrors the
|
|
432
|
+
// production /_then/pages/*.js layout emitted by `vura build`).
|
|
433
|
+
if (method === 'GET' && url.pathname.startsWith('/_then/pages/') && url.pathname.endsWith('.js')) {
|
|
434
|
+
const target = manifest.pages.find(p => (p.mode === 'client' || p.mode === 'hybrid') && browserScriptPath(p) === url.pathname);
|
|
435
|
+
if (target) {
|
|
436
|
+
try {
|
|
437
|
+
const code = await bundleBrowserPage(target);
|
|
438
|
+
res.writeHead(200, { 'Content-Type': 'text/javascript; charset=utf-8', 'Cache-Control': 'no-store' });
|
|
439
|
+
res.end(code);
|
|
440
|
+
}
|
|
441
|
+
catch (err) {
|
|
442
|
+
const error = err instanceof Error ? err : new Error(String(err));
|
|
443
|
+
reportError(error, { method: 'GET', path: url.pathname, requestId: reqCtx.requestId }, logger);
|
|
444
|
+
if (!res.writableEnded) {
|
|
445
|
+
res.writeHead(500, { 'Content-Type': 'text/javascript' });
|
|
446
|
+
res.end(`console.error(${JSON.stringify('[vura] client bundle failed: ' + error.message)});`);
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
return;
|
|
376
450
|
}
|
|
377
|
-
return;
|
|
378
451
|
}
|
|
379
452
|
// Try server-mode page matching (uses shared compilePageRoutes/matchPageRoute)
|
|
380
453
|
if (method === 'GET' && !/\.\w+$/.test(url.pathname)) {
|
|
@@ -384,6 +457,21 @@ async function startStandaloneServer(manifest, opts) {
|
|
|
384
457
|
const mod = await loadHandler(pageMatch.page.filePath);
|
|
385
458
|
const Component = mod.default;
|
|
386
459
|
const pageConfig = mod.page ?? {};
|
|
460
|
+
// Client pages render entirely in the browser: serve the shell +
|
|
461
|
+
// bundle. SSR'ing them here would call hooks (useSignal, useState)
|
|
462
|
+
// outside a component context and 500.
|
|
463
|
+
if (pageMatch.page.mode === 'client') {
|
|
464
|
+
const html = wrapDocument('<div id="loading">Loading...</div>', {
|
|
465
|
+
title: pageConfig.title ?? 'Vura App',
|
|
466
|
+
meta: pageConfig.meta ?? [],
|
|
467
|
+
styles: pageConfig.styles ?? [],
|
|
468
|
+
scripts: [...(pageConfig.scripts ?? []), browserScriptPath(pageMatch.page)],
|
|
469
|
+
head: pageConfig.head ?? '',
|
|
470
|
+
});
|
|
471
|
+
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
|
|
472
|
+
res.end(html);
|
|
473
|
+
return;
|
|
474
|
+
}
|
|
387
475
|
if (typeof Component === 'function') {
|
|
388
476
|
let serverData = {};
|
|
389
477
|
if (typeof mod.getServerData === 'function') {
|
|
@@ -410,7 +498,12 @@ async function startStandaloneServer(manifest, opts) {
|
|
|
410
498
|
title: pageConfig.title ?? 'Vura App',
|
|
411
499
|
meta: pageConfig.meta ?? [],
|
|
412
500
|
styles: pageConfig.styles ?? [],
|
|
413
|
-
|
|
501
|
+
// Hybrid pages also load their browser bundle so hydrate() runs
|
|
502
|
+
// against the SSR'd DOM — same contract as the production build.
|
|
503
|
+
scripts: [
|
|
504
|
+
...(pageConfig.scripts ?? []),
|
|
505
|
+
...(pageMatch.page.mode === 'hybrid' ? [browserScriptPath(pageMatch.page)] : []),
|
|
506
|
+
],
|
|
414
507
|
head: pageConfig.head ?? '',
|
|
415
508
|
});
|
|
416
509
|
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
|
|
@@ -434,40 +527,131 @@ async function startStandaloneServer(manifest, opts) {
|
|
|
434
527
|
res.writeHead(404, { 'Content-Type': 'application/json' });
|
|
435
528
|
res.end(JSON.stringify({ error: 'Not Found', path: url.pathname }));
|
|
436
529
|
});
|
|
530
|
+
// ─── WebSocket upgrades for hot routes ───
|
|
531
|
+
// Wired BEFORE listen — upgrade can fire with the first connection. Vura
|
|
532
|
+
// owns this whole server, so unmatched upgrade paths are 404-rejected.
|
|
533
|
+
let wsMod;
|
|
534
|
+
try {
|
|
535
|
+
wsMod = await import('ws');
|
|
536
|
+
}
|
|
537
|
+
catch {
|
|
538
|
+
// 'ws' is optional — warn only when websocket hot routes would silently
|
|
539
|
+
// not work without it.
|
|
540
|
+
if (manifest.api.some((r) => r.kind === 'hot' && r.hasWebsocket)) {
|
|
541
|
+
console.warn(' [vura] Hot routes export websocket() but the "ws" package is not installed. ' +
|
|
542
|
+
'Install it with: npm install ws. WebSocket upgrades are disabled in dev.');
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
// Open ws connection count — used by the rescan notice below.
|
|
546
|
+
let openWsConnections = 0;
|
|
547
|
+
if (wsMod !== undefined) {
|
|
548
|
+
const wss = createNoServerWebSocketServer(wsMod);
|
|
549
|
+
server.on('upgrade', createWsUpgradeHandler({
|
|
550
|
+
wss,
|
|
551
|
+
// `manifest` is reassigned by the fs-watcher rescan below — recompiling
|
|
552
|
+
// per upgrade keeps new/renamed hot routes connectable without restart.
|
|
553
|
+
getWsRoutes: () => compileRoutes(manifest.api.filter((r) => r.kind === 'hot' && r.hasWebsocket)),
|
|
554
|
+
// Cached per file (same instance the HTTP app uses) — the rescan clears
|
|
555
|
+
// the cache, so edits still apply on the next connection.
|
|
556
|
+
loadModule: (route) => loadHandlerCached(route.filePath),
|
|
557
|
+
// apiApp is rebuilt on rescan — always use the latest app's registry.
|
|
558
|
+
getWsRegistry: () => apiApp.wsRegistry,
|
|
559
|
+
onUnmatched: 'reject',
|
|
560
|
+
onOpen: () => { openWsConnections++; },
|
|
561
|
+
onClose: () => { openWsConnections--; },
|
|
562
|
+
}));
|
|
563
|
+
}
|
|
437
564
|
// Watch for file changes and re-scan manifest
|
|
438
565
|
const apiDir = join(opts.projectRoot, 'src', 'api');
|
|
439
566
|
const pagesDir = join(opts.projectRoot, 'src', 'pages');
|
|
440
567
|
const watchDirs = [apiDir, pagesDir];
|
|
568
|
+
const watchers = [];
|
|
441
569
|
for (const dir of watchDirs) {
|
|
442
570
|
try {
|
|
443
571
|
const watcher = watch(dir, { recursive: true }, async (event, filename) => {
|
|
444
572
|
const prefix = dir === apiDir ? 'src/api' : 'src/pages';
|
|
445
573
|
console.log(` [vura] ${event}: ${prefix}/${filename} — re-scanning routes`);
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
574
|
+
try {
|
|
575
|
+
const { buildManifest: rescan, compilePageRoutes: recompilePages } = await import('@celsian/vura-core');
|
|
576
|
+
const nextManifest = await rescan(opts.projectRoot);
|
|
577
|
+
const nextPages = recompilePages(nextManifest.pages);
|
|
578
|
+
// Build-then-swap: snapshot the module cache and clear it so the
|
|
579
|
+
// rebuild loads edited files; restore the snapshot on failure so
|
|
580
|
+
// HTTP and ws keep serving the SAME old instances during a broken
|
|
581
|
+
// edit (no ws/http state split until a successful rescan).
|
|
582
|
+
// Accepted residual: a ws connection arriving mid-rebuild may load
|
|
583
|
+
// and keep an orphaned fresh module instance until it reconnects —
|
|
584
|
+
// the failure path below restores a consistent old set for everyone
|
|
585
|
+
// else.
|
|
586
|
+
const prevModules = new Map(moduleCache);
|
|
587
|
+
moduleCache.clear();
|
|
588
|
+
try {
|
|
589
|
+
// Rebuild against the FRESH manifest (nextManifest) — `manifest`
|
|
590
|
+
// is only swapped after success, so building from the closure
|
|
591
|
+
// variable would use the stale route set (see buildStandaloneApiApp).
|
|
592
|
+
({ app: apiApp, compiledApiRoutes } = await buildStandaloneApiApp(nextManifest));
|
|
593
|
+
}
|
|
594
|
+
catch (err) {
|
|
595
|
+
moduleCache.clear();
|
|
596
|
+
for (const [k, v] of prevModules)
|
|
597
|
+
moduleCache.set(k, v);
|
|
598
|
+
throw err;
|
|
599
|
+
}
|
|
600
|
+
manifest = nextManifest;
|
|
601
|
+
compiledPages = nextPages;
|
|
602
|
+
browserBundleCache.clear();
|
|
603
|
+
if (openWsConnections > 0) {
|
|
604
|
+
console.log(' [vura] routes re-scanned — open WebSocket clients keep their old room registry; reconnect to rejoin');
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
catch (err) {
|
|
608
|
+
// A broken edit (e.g. syntax error) must not crash the dev server —
|
|
609
|
+
// keep serving the previous app; the next successful rescan recovers.
|
|
610
|
+
console.error(` [vura] route re-scan failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
611
|
+
}
|
|
450
612
|
});
|
|
451
|
-
|
|
613
|
+
watchers.push(watcher);
|
|
452
614
|
}
|
|
453
615
|
catch {
|
|
454
616
|
// Watch may fail if directory doesn't exist yet
|
|
455
617
|
}
|
|
456
618
|
}
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
619
|
+
// One SIGINT handler for all watchers — registered once, removed in close()
|
|
620
|
+
// so repeated startStandaloneServer() calls (tests) don't leak listeners.
|
|
621
|
+
const onSigint = () => {
|
|
622
|
+
for (const w of watchers)
|
|
623
|
+
w.close();
|
|
624
|
+
process.exit(0);
|
|
625
|
+
};
|
|
626
|
+
process.on('SIGINT', onSigint);
|
|
627
|
+
await new Promise((resolve) => {
|
|
628
|
+
server.listen(opts.port, opts.host, () => {
|
|
629
|
+
console.log(` Server listening on http://${opts.host}:${opts.port}\n`);
|
|
630
|
+
// Warn once at startup when the user explicitly exposes the dev server beyond loopback.
|
|
631
|
+
if (isLanDevHost(opts.host)) {
|
|
632
|
+
console.warn(` [vura] Dev server exposed on ${opts.host}. Only use --host for trusted LAN testing.`);
|
|
633
|
+
}
|
|
634
|
+
printRouteTable(manifest);
|
|
635
|
+
resolve();
|
|
636
|
+
});
|
|
464
637
|
});
|
|
465
|
-
|
|
466
|
-
|
|
638
|
+
const address = server.address();
|
|
639
|
+
return {
|
|
640
|
+
server,
|
|
641
|
+
port: address.port,
|
|
642
|
+
close: () => new Promise((resolve) => {
|
|
643
|
+
process.off('SIGINT', onSigint);
|
|
644
|
+
for (const w of watchers)
|
|
645
|
+
w.close();
|
|
646
|
+
// Force-close lingering (incl. upgraded) connections so close() can't hang.
|
|
647
|
+
server.closeAllConnections?.();
|
|
648
|
+
server.close(() => resolve());
|
|
649
|
+
}),
|
|
650
|
+
};
|
|
467
651
|
}
|
|
468
652
|
// All rendering, matching, parsing, and escaping utilities are now imported
|
|
469
653
|
// from @celsian/vura-core — no local copies needed. See:
|
|
470
|
-
//
|
|
654
|
+
// wrapDocument, escapeHtml — from static-render.ts; renderToString — from what-framework/server
|
|
471
655
|
// compilePageRoutes, matchPageRoute — from match.ts
|
|
472
|
-
//
|
|
656
|
+
// createApiApp, nodeToWebRequest, writeWebResponse — A1.3 celsian API path
|
|
473
657
|
//# sourceMappingURL=dev.js.map
|
package/dist/commands/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helpers for CLI commands that need to load route module files
|
|
3
|
+
* (TypeScript/JSX) at runtime without a full Vite build.
|
|
4
|
+
*
|
|
5
|
+
* Extracted from commands/dev.ts (Task 12) so that the tasks command can reuse
|
|
6
|
+
* the same transpile-then-import flow without duplicating it.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Transpile a TypeScript/JSX route file via esbuild and import it as an ES
|
|
10
|
+
* module. Each call writes a uniquely-named `.mjs` file (keyed by wall-clock
|
|
11
|
+
* time) so repeated loads within the same process never collide.
|
|
12
|
+
*
|
|
13
|
+
* @param projectRoot Absolute path to the project root.
|
|
14
|
+
* @param filePath Path to the route file, relative to `projectRoot`.
|
|
15
|
+
* @returns The dynamically-imported module record.
|
|
16
|
+
*/
|
|
17
|
+
export declare function importRouteModule(projectRoot: string, filePath: string): Promise<Record<string, unknown>>;
|
|
18
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAoClC"}
|