@emkodev/emroute 1.10.0 → 1.12.0-beta.2

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.
Files changed (44) hide show
  1. package/README.md +1 -1
  2. package/core/component/widget.component.ts +3 -8
  3. package/core/pipeline/pipeline.ts +13 -5
  4. package/core/util/html.util.ts +1 -1
  5. package/core/util/js.util.ts +8 -0
  6. package/core/util/widget-resolve.util.ts +4 -2
  7. package/dist/core/component/widget.component.js +3 -7
  8. package/dist/core/component/widget.component.js.map +1 -1
  9. package/dist/core/pipeline/pipeline.d.ts +1 -0
  10. package/dist/core/pipeline/pipeline.js +12 -5
  11. package/dist/core/pipeline/pipeline.js.map +1 -1
  12. package/dist/core/util/html.util.js +1 -1
  13. package/dist/core/util/html.util.js.map +1 -1
  14. package/dist/core/util/js.util.d.ts +5 -0
  15. package/dist/core/util/js.util.js +8 -0
  16. package/dist/core/util/js.util.js.map +1 -0
  17. package/dist/core/util/widget-resolve.util.js +4 -2
  18. package/dist/core/util/widget-resolve.util.js.map +1 -1
  19. package/dist/emroute.js +120 -32
  20. package/dist/emroute.js.map +11 -10
  21. package/dist/runtime/abstract.runtime.d.ts +13 -1
  22. package/dist/runtime/abstract.runtime.js +34 -22
  23. package/dist/runtime/abstract.runtime.js.map +1 -1
  24. package/dist/runtime/bun/fs/bun-fs.runtime.d.ts +4 -0
  25. package/dist/runtime/bun/fs/bun-fs.runtime.js +20 -1
  26. package/dist/runtime/bun/fs/bun-fs.runtime.js.map +1 -1
  27. package/dist/server/build.util.d.ts +9 -15
  28. package/dist/server/build.util.js +9 -148
  29. package/dist/server/build.util.js.map +1 -1
  30. package/dist/server/dev.server.d.ts +25 -0
  31. package/dist/server/dev.server.js +81 -0
  32. package/dist/server/dev.server.js.map +1 -0
  33. package/dist/src/element/component.element.d.ts +12 -0
  34. package/dist/src/element/component.element.js +55 -3
  35. package/dist/src/element/component.element.js.map +1 -1
  36. package/dist/src/util/html.util.d.ts +5 -0
  37. package/dist/src/util/html.util.js +38 -1
  38. package/dist/src/util/html.util.js.map +1 -1
  39. package/package.json +2 -2
  40. package/runtime/abstract.runtime.ts +38 -23
  41. package/runtime/bun/fs/bun-fs.runtime.ts +23 -1
  42. package/server/build.util.ts +9 -169
  43. package/src/element/component.element.ts +63 -3
  44. package/src/util/html.util.ts +46 -1
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Dev Server — subprocess restart on file changes.
3
+ *
4
+ * Watches source directories for changes, cleans stale manifests,
5
+ * and restarts the consumer's server process. This clears both
6
+ * Bun's module cache and in-memory manifest caches.
7
+ *
8
+ * Usage (consumer's dev.ts):
9
+ *
10
+ * import { createDevServer } from '@emkodev/emroute/server/dev';
11
+ * createDevServer({ entry: './server.ts' });
12
+ *
13
+ * Then: bun dev.ts
14
+ */
15
+ import { watch } from 'node:fs';
16
+ import { unlink } from 'node:fs/promises';
17
+ import { resolve, join } from 'node:path';
18
+ const DEFAULT_WATCH_DIRS = ['routes', 'widgets', 'elements'];
19
+ const MANIFEST_FILES = [
20
+ 'routes.manifest.json',
21
+ 'widgets.manifest.json',
22
+ 'elements.manifest.json',
23
+ ];
24
+ /** Source extensions — build artifacts (.js, .json) are ignored. */
25
+ const SOURCE_EXTENSIONS = new Set(['.ts', '.html', '.md', '.css']);
26
+ function isSourceFile(filename) {
27
+ const dot = filename.lastIndexOf('.');
28
+ return dot !== -1 && SOURCE_EXTENSIONS.has(filename.slice(dot));
29
+ }
30
+ export function createDevServer(options) {
31
+ const root = resolve(options.root ?? process.cwd());
32
+ const entry = resolve(root, options.entry);
33
+ const watchDirs = (options.watchDirs ?? DEFAULT_WATCH_DIRS).map((d) => resolve(root, d));
34
+ const debounceMs = options.debounce ?? 150;
35
+ let server = null;
36
+ let debounceTimer = null;
37
+ async function cleanManifests() {
38
+ await Promise.all(MANIFEST_FILES.map((f) => unlink(join(root, f)).catch(() => { })));
39
+ }
40
+ async function start() {
41
+ if (server) {
42
+ server.kill();
43
+ await server.exited;
44
+ }
45
+ await cleanManifests();
46
+ server = Bun.spawn(['bun', entry], {
47
+ cwd: root,
48
+ stdio: ['inherit', 'inherit', 'inherit'],
49
+ env: { ...process.env, NODE_ENV: 'development' },
50
+ });
51
+ console.log(`[emroute:dev] started (pid ${server.pid})`);
52
+ }
53
+ function scheduleRestart(filename) {
54
+ if (debounceTimer)
55
+ clearTimeout(debounceTimer);
56
+ debounceTimer = setTimeout(async () => {
57
+ console.log(`[emroute:dev] ${filename} changed — restarting…`);
58
+ await start();
59
+ }, debounceMs);
60
+ }
61
+ for (const dir of watchDirs) {
62
+ try {
63
+ watch(dir, { recursive: true }, (_event, filename) => {
64
+ if (filename && isSourceFile(filename)) {
65
+ scheduleRestart(filename);
66
+ }
67
+ });
68
+ }
69
+ catch {
70
+ // Directory doesn't exist yet — not an error in dev
71
+ }
72
+ }
73
+ start();
74
+ const cleanup = () => {
75
+ server?.kill();
76
+ process.exit();
77
+ };
78
+ process.on('SIGINT', cleanup);
79
+ process.on('SIGTERM', cleanup);
80
+ }
81
+ //# sourceMappingURL=dev.server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.server.js","sourceRoot":"","sources":["../../server/dev.server.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ type WidgetFiles = {
22
22
  export declare class ComponentElement<TParams, TData> extends HTMLElementBase {
23
23
  /** Lazy module loaders keyed by tag name — set by registerLazy(). */
24
24
  private static lazyLoaders;
25
+ /** Shared CSSStyleSheet cache — keyed by widget name for cross-instance sharing. */
26
+ private static sheetCache;
25
27
  /** App-level context provider set once during router initialization. */
26
28
  private static extendContext;
27
29
  /**
@@ -29,6 +31,8 @@ export declare class ComponentElement<TParams, TData> extends HTMLElementBase {
29
31
  * @deprecated Use `bootEmrouteApp({ extendContext })` instead — it wires both pages and widgets.
30
32
  */
31
33
  static setContextProvider(provider: ContextProvider | undefined): void;
34
+ /** Custom state names exposed via ElementInternals for CSS `:state()` matching. */
35
+ private static readonly CUSTOM_STATES;
32
36
  private component;
33
37
  private effectiveFiles?;
34
38
  private params;
@@ -39,9 +43,12 @@ export declare class ComponentElement<TParams, TData> extends HTMLElementBase {
39
43
  private deferred;
40
44
  private abortController;
41
45
  private intersectionObserver;
46
+ private readonly internals;
42
47
  /** Promise that resolves with fetched data (available after loadData starts) */
43
48
  dataPromise: Promise<TData | null> | null;
44
49
  constructor(component: Component<TParams, TData>, files?: WidgetFiles);
50
+ /** Update the CSS-visible custom state via ElementInternals. */
51
+ private setCustomState;
45
52
  /**
46
53
  * Register a widget as a custom element: `widget-{name}`.
47
54
  * Creates a fresh widget instance per DOM element (per-element state).
@@ -77,6 +84,11 @@ export declare class ComponentElement<TParams, TData> extends HTMLElementBase {
77
84
  * Returns inlined content from __files (set during lazy module load) directly.
78
85
  */
79
86
  private loadFiles;
87
+ /** Base sheet shared by all widgets — host-level defaults. */
88
+ private static baseSheet;
89
+ private static getBaseSheet;
90
+ /** Apply CSS via adoptedStyleSheets with cross-instance sheet sharing. */
91
+ private adoptCss;
80
92
  private loadData;
81
93
  private setError;
82
94
  private signalReady;
@@ -8,8 +8,8 @@
8
8
  * - Companion file loading (html, md, css)
9
9
  * - Loading/error states
10
10
  */
11
- import { HTMLElementBase } from "../util/html.util.js";
12
- import { LAZY_ATTR, RESERVED_ATTRS, SSR_ATTR } from "../../core/util/html.util.js";
11
+ import { CSSStyleSheetBase, HTMLElementBase } from "../util/html.util.js";
12
+ import { LAZY_ATTR, RESERVED_ATTRS, SSR_ATTR, scopeWidgetCss } from "../../core/util/html.util.js";
13
13
  /** Strip keys with undefined values — returns the filtered object, or undefined if all values are undefined. */
14
14
  function filterUndefined(obj) {
15
15
  const result = {};
@@ -29,6 +29,8 @@ function filterUndefined(obj) {
29
29
  export class ComponentElement extends HTMLElementBase {
30
30
  /** Lazy module loaders keyed by tag name — set by registerLazy(). */
31
31
  static lazyLoaders = new Map();
32
+ /** Shared CSSStyleSheet cache — keyed by widget name for cross-instance sharing. */
33
+ static sheetCache = new Map();
32
34
  /** App-level context provider set once during router initialization. */
33
35
  static extendContext;
34
36
  /**
@@ -38,6 +40,8 @@ export class ComponentElement extends HTMLElementBase {
38
40
  static setContextProvider(provider) {
39
41
  ComponentElement.extendContext = provider;
40
42
  }
43
+ /** Custom state names exposed via ElementInternals for CSS `:state()` matching. */
44
+ static CUSTOM_STATES = ['lazy', 'loading', 'hydrating', 'ready', 'error'];
41
45
  component;
42
46
  effectiveFiles;
43
47
  params = null;
@@ -48,18 +52,27 @@ export class ComponentElement extends HTMLElementBase {
48
52
  deferred = null;
49
53
  abortController = null;
50
54
  intersectionObserver = null;
55
+ internals;
51
56
  /** Promise that resolves with fetched data (available after loadData starts) */
52
57
  dataPromise = null;
53
58
  constructor(component, files) {
54
59
  super();
55
60
  this.component = component;
56
61
  this.effectiveFiles = files;
62
+ this.internals = this.attachInternals();
57
63
  // Attach shadow root if not already present (Declarative Shadow DOM creates it from <template shadowrootmode="open">)
58
64
  // This enables progressive enhancement: SSR with DSD works without JS, then hydrates when JS loads
59
65
  if (!this.shadowRoot) {
60
66
  this.attachShadow({ mode: 'open' });
61
67
  }
62
68
  }
69
+ /** Update the CSS-visible custom state via ElementInternals. */
70
+ setCustomState(next) {
71
+ for (const s of ComponentElement.CUSTOM_STATES) {
72
+ this.internals.states.delete(s);
73
+ }
74
+ this.internals.states.add(next);
75
+ }
63
76
  /**
64
77
  * Register a widget as a custom element: `widget-{name}`.
65
78
  * Creates a fresh widget instance per DOM element (per-element state).
@@ -167,7 +180,6 @@ export class ComponentElement extends HTMLElementBase {
167
180
  }
168
181
  }
169
182
  this.component.element = this;
170
- this.style.contentVisibility = 'auto';
171
183
  this.abortController = new AbortController();
172
184
  const signal = this.abortController.signal;
173
185
  // Parse params from element attributes
@@ -206,9 +218,12 @@ export class ComponentElement extends HTMLElementBase {
206
218
  ...(filteredFiles ? { files: filteredFiles } : {}),
207
219
  };
208
220
  this.context = ComponentElement.extendContext ? ComponentElement.extendContext(base) : base;
221
+ // Apply CSS via adoptedStyleSheets (shared across instances)
222
+ this.adoptCss();
209
223
  // Hydrate from SSR: adopt content from Declarative Shadow DOM
210
224
  if (this.hasAttribute(SSR_ATTR)) {
211
225
  this.removeAttribute(SSR_ATTR);
226
+ this.setCustomState('hydrating');
212
227
  // Read SSR data from light DOM (JSON text placed alongside shadow root)
213
228
  const lightText = this.textContent?.trim();
214
229
  if (lightText) {
@@ -227,13 +242,18 @@ export class ComponentElement extends HTMLElementBase {
227
242
  const args = { data: this.data, params: this.params, context: this.context };
228
243
  queueMicrotask(() => {
229
244
  this.component.hydrate(args);
245
+ this.setCustomState('ready');
230
246
  });
231
247
  }
248
+ else {
249
+ this.setCustomState('ready');
250
+ }
232
251
  this.signalReady();
233
252
  return;
234
253
  }
235
254
  // Lazy: defer loadData until element is visible
236
255
  if (this.hasAttribute(LAZY_ATTR)) {
256
+ this.setCustomState('lazy');
237
257
  this.intersectionObserver = new IntersectionObserver((entries) => {
238
258
  const entry = entries[0];
239
259
  if (entry.isIntersecting) {
@@ -255,6 +275,9 @@ export class ComponentElement extends HTMLElementBase {
255
275
  this.abortController?.abort();
256
276
  this.abortController = null;
257
277
  this.state = 'idle';
278
+ for (const s of ComponentElement.CUSTOM_STATES) {
279
+ this.internals.states.delete(s);
280
+ }
258
281
  this.data = null;
259
282
  this.context = undefined;
260
283
  this.dataPromise = null;
@@ -280,11 +303,38 @@ export class ComponentElement extends HTMLElementBase {
280
303
  async loadFiles() {
281
304
  return this.effectiveFiles ?? {};
282
305
  }
306
+ /** Base sheet shared by all widgets — host-level defaults. */
307
+ static baseSheet = null;
308
+ static getBaseSheet() {
309
+ if (!ComponentElement.baseSheet) {
310
+ ComponentElement.baseSheet = new CSSStyleSheetBase();
311
+ ComponentElement.baseSheet.replaceSync(':host { container-type: inline-size; content-visibility: auto; }');
312
+ }
313
+ return ComponentElement.baseSheet;
314
+ }
315
+ /** Apply CSS via adoptedStyleSheets with cross-instance sheet sharing. */
316
+ adoptCss() {
317
+ const css = this.effectiveFiles?.css;
318
+ const base = ComponentElement.getBaseSheet();
319
+ if (!css) {
320
+ this.shadowRoot.adoptedStyleSheets = [base];
321
+ return;
322
+ }
323
+ const name = this.component.name;
324
+ let sheet = ComponentElement.sheetCache.get(name);
325
+ if (!sheet) {
326
+ sheet = new CSSStyleSheetBase();
327
+ sheet.replaceSync(scopeWidgetCss(css, name));
328
+ ComponentElement.sheetCache.set(name, sheet);
329
+ }
330
+ this.shadowRoot.adoptedStyleSheets = [base, sheet];
331
+ }
283
332
  async loadData() {
284
333
  if (this.params === null)
285
334
  return;
286
335
  const signal = this.abortController?.signal;
287
336
  this.state = 'loading';
337
+ this.setCustomState('loading');
288
338
  this.render();
289
339
  try {
290
340
  const promise = this.component.getData({
@@ -298,6 +348,7 @@ export class ComponentElement extends HTMLElementBase {
298
348
  if (signal?.aborted)
299
349
  return;
300
350
  this.state = 'ready';
351
+ this.setCustomState('ready');
301
352
  }
302
353
  catch (e) {
303
354
  if (e instanceof DOMException && e.name === 'AbortError')
@@ -312,6 +363,7 @@ export class ComponentElement extends HTMLElementBase {
312
363
  }
313
364
  setError(message) {
314
365
  this.state = 'error';
366
+ this.setCustomState('error');
315
367
  this.errorMessage = message;
316
368
  this.render();
317
369
  this.signalReady(); // Ready even on error (completed loading)
@@ -1 +1 @@
1
- {"version":3,"file":"component.element.js","sourceRoot":"","sources":["../../../src/element/component.element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component.element.js","sourceRoot":"","sources":["../../../src/element/component.element.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,11 @@
5
5
  * SSR-compatible HTMLElement mock.
6
6
  */
7
7
  export { SSR_ATTR, LAZY_ATTR, assertSafeRedirect, escapeHtml, unescapeHtml, scopeWidgetCss, STATUS_MESSAGES, } from '../../core/util/html.util.ts';
8
+ /** Server-safe CSSStyleSheet: real in browser, mock on server. */
9
+ export declare const CSSStyleSheetBase: {
10
+ new (options?: CSSStyleSheetInit): CSSStyleSheet;
11
+ prototype: CSSStyleSheet;
12
+ };
8
13
  /** Server-safe base class: HTMLElement in browser, SSR mock on server. */
9
14
  export declare const HTMLElementBase: {
10
15
  new (): HTMLElement;
@@ -6,17 +6,45 @@
6
6
  */
7
7
  // Re-export everything from core
8
8
  export { SSR_ATTR, LAZY_ATTR, assertSafeRedirect, escapeHtml, unescapeHtml, scopeWidgetCss, STATUS_MESSAGES, } from "../../core/util/html.util.js";
9
+ /**
10
+ * SSR-compatible CSSStyleSheet mock.
11
+ * Stores cssText for serialization into <style> tags during SSR.
12
+ */
13
+ class SsrCSSStyleSheet {
14
+ cssText = '';
15
+ replaceSync(css) {
16
+ this.cssText = css;
17
+ }
18
+ replace(css) {
19
+ this.cssText = css;
20
+ return Promise.resolve(this);
21
+ }
22
+ }
23
+ /** Server-safe CSSStyleSheet: real in browser, mock on server. */
24
+ export const CSSStyleSheetBase = globalThis.CSSStyleSheet ??
25
+ SsrCSSStyleSheet;
9
26
  /**
10
27
  * SSR-compatible ShadowRoot mock.
11
28
  */
12
29
  class SsrShadowRoot {
13
30
  host;
14
31
  _innerHTML = '';
32
+ _adoptedStyleSheets = [];
15
33
  constructor(host) {
16
34
  this.host = host;
17
35
  }
36
+ get adoptedStyleSheets() {
37
+ return this._adoptedStyleSheets;
38
+ }
39
+ set adoptedStyleSheets(sheets) {
40
+ this._adoptedStyleSheets = sheets;
41
+ }
18
42
  get innerHTML() {
19
- return this._innerHTML;
43
+ const adopted = this._adoptedStyleSheets
44
+ .filter(s => s.cssText)
45
+ .map(s => `<style>${s.cssText}</style>`)
46
+ .join('');
47
+ return adopted + this._innerHTML;
20
48
  }
21
49
  set innerHTML(value) {
22
50
  this._innerHTML = value;
@@ -38,6 +66,12 @@ class SsrShadowRoot {
38
66
  return null;
39
67
  }
40
68
  }
69
+ /**
70
+ * SSR-compatible ElementInternals mock.
71
+ */
72
+ class SsrElementInternals {
73
+ states = new Set();
74
+ }
41
75
  /**
42
76
  * SSR-compatible HTMLElement mock.
43
77
  */
@@ -81,6 +115,9 @@ class SsrHTMLElement {
81
115
  this._shadowRoot = new SsrShadowRoot(this);
82
116
  return this._shadowRoot;
83
117
  }
118
+ attachInternals() {
119
+ return new SsrElementInternals();
120
+ }
84
121
  getAttribute(name) {
85
122
  return this._attributes.get(name) ?? null;
86
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"html.util.js","sourceRoot":"","sources":["../../../src/util/html.util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html.util.js","sourceRoot":"","sources":["../../../src/util/html.util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@emkodev/emroute",
3
- "version": "1.10.0",
3
+ "version": "1.12.0-beta.2",
4
4
  "description": "File-based (but storage-agnostic) router with triple rendering (SPA, SSR HTML, SSR Markdown). Zero dependencies.",
5
5
  "license": "BSD-3-Clause",
6
6
  "author": "emko.dev",
@@ -114,7 +114,7 @@
114
114
  }
115
115
  },
116
116
  "devDependencies": {
117
- "@emkodev/emkoma": "^0.1.2",
117
+ "@emkodev/emkoma": "^0.3.3",
118
118
  "@eslint/js": "^10.0.1",
119
119
  "@types/bun": "^1.3.9",
120
120
  "eslint": "^10.0.2",
@@ -2,6 +2,7 @@ import type { RouteNode, RouteFiles } from '../core/type/route-tree.type.ts';
2
2
  import { resolveTargetNode } from '../core/util/route-tree.util.ts';
3
3
  import type { WidgetManifestEntry } from '../core/type/widget.type.ts';
4
4
  import type { ElementManifestEntry } from '../core/type/element.type.ts';
5
+ import { escapeTemplateLiteral } from '../core/util/js.util.ts';
5
6
 
6
7
  export const CONTENT_TYPES: Map<string, string> = new Map<string, string>([
7
8
  ['.html', 'text/html; charset=utf-8'],
@@ -428,34 +429,14 @@ export abstract class Runtime {
428
429
  return; // .ts doesn't exist (maybe .js was hand-written)
429
430
  }
430
431
 
431
- // Collect companion files and inline them
432
- const companionExts = kind === 'element' ? [] : ['html', 'md', 'css'];
433
- const files: Record<string, string> = {};
434
- for (const ext of companionExts) {
435
- const companionPath = tsPath.replace(/\.ts$/, `.${ext}`);
436
- try {
437
- files[ext] = await this.query(companionPath, { as: 'text' });
438
- } catch {
439
- // companion doesn't exist — skip
440
- }
441
- }
442
-
443
- // Transpile
432
+ // Transpile and inline companions
444
433
  let jsCode: string;
445
434
  try {
446
- jsCode = await this.transpile(tsSource);
435
+ jsCode = await this.transpileModule(tsPath, tsSource);
447
436
  } catch {
448
437
  return; // transpile not implemented — skip silently
449
438
  }
450
439
 
451
- // Append __files export if there are companions
452
- if (Object.keys(files).length > 0) {
453
- const entries = Object.entries(files)
454
- .map(([k, v]) => `${k}: \`${v.replace(/\\/g, '\\\\').replace(/`/g, '\\`').replace(/\$/g, '\\$')}\``)
455
- .join(', ');
456
- jsCode += `\nexport const __files = { ${entries} };\n`;
457
- }
458
-
459
440
  await this.handle(jsPath, { method: 'PUT', body: jsCode });
460
441
  }
461
442
 
@@ -469,12 +450,46 @@ export abstract class Runtime {
469
450
 
470
451
  /**
471
452
  * Transpile TypeScript source to JavaScript.
472
- * Used by the build step to produce browser-loadable .js modules.
473
453
  */
474
454
  transpile(_source: string): Promise<string> {
475
455
  throw new Error(`transpile not implemented for ${this.constructor.name}`);
476
456
  }
477
457
 
458
+ /**
459
+ * Transpile a .ts module and inline companion files (.html, .md, .css)
460
+ * as `export const __files = { ... }`.
461
+ *
462
+ * This is the single implementation of the transpile+merge operation.
463
+ * Used by concrete runtimes in their serving path (e.g. BunFsRuntime
464
+ * intercepts .ts in read()) and by retranspileIfNeeded() to keep
465
+ * pre-built .js artifacts in sync after command() writes.
466
+ *
467
+ * @param path Virtual path (e.g. "/widgets/nav.widget.ts")
468
+ * @param source Raw TypeScript source
469
+ */
470
+ protected async transpileModule(path: string, source: string): Promise<string> {
471
+ let js = await this.transpile(source);
472
+
473
+ const basePath = path.replace(/\.ts$/, '');
474
+ const companions = ['html', 'md', 'css'] as const;
475
+ const entries: string[] = [];
476
+
477
+ for (const ext of companions) {
478
+ try {
479
+ const content = await this.query(basePath + '.' + ext, { as: 'text' });
480
+ entries.push(` ${ext}: \`${escapeTemplateLiteral(content)}\``);
481
+ } catch {
482
+ // companion doesn't exist
483
+ }
484
+ }
485
+
486
+ if (entries.length > 0) {
487
+ js += `\nexport const __files = {\n${entries.join(',\n')}\n};\n`;
488
+ }
489
+
490
+ return js;
491
+ }
492
+
478
493
  /**
479
494
  * Parse a widget file path and merge it into the stored manifest.
480
495
  * Reads the current manifest, upserts the entry, writes it back.
@@ -85,6 +85,11 @@ export class BunFsRuntime extends Runtime {
85
85
  return this.list(path);
86
86
  }
87
87
 
88
+ // Serve .ts as transpiled JavaScript with merged companion files.
89
+ if (path.endsWith('.ts')) {
90
+ return this.serveTranspiled(path);
91
+ }
92
+
88
93
  const content = new Uint8Array(await Bun.file(path).arrayBuffer());
89
94
  const ext = path.slice(path.lastIndexOf('.')).toLowerCase();
90
95
  const headers: HeadersInit = {
@@ -109,6 +114,20 @@ export class BunFsRuntime extends Runtime {
109
114
  }
110
115
  }
111
116
 
117
+ /**
118
+ * Serve a .ts file as transpiled JavaScript with companion files inlined.
119
+ */
120
+ private async serveTranspiled(path: string): Promise<Response> {
121
+ const source = await Bun.file(path).text();
122
+ const virtualPath = path.slice(this.root.length);
123
+ const js = await this.transpileModule(virtualPath, source);
124
+
125
+ return new Response(js, {
126
+ status: 200,
127
+ headers: { 'Content-Type': 'application/javascript; charset=utf-8' },
128
+ });
129
+ }
130
+
112
131
  private async list(path: string): Promise<Response> {
113
132
  const entries: string[] = [];
114
133
  const dirents = await readdir(path, { withFileTypes: true });
@@ -145,7 +164,10 @@ export class BunFsRuntime extends Runtime {
145
164
  }
146
165
 
147
166
  override loadModule(path: string): Promise<unknown> {
148
- return import(this.root + path);
167
+ // Cache-busting query string makes Bun treat each call as a unique
168
+ // module, bypassing the module cache. Unlike blob URLs, a real file
169
+ // path preserves filesystem context for bare specifier resolution.
170
+ return import(this.root + path + '?t=' + Date.now());
149
171
  }
150
172
 
151
173
  override async transpile(source: string): Promise<string> {