feat(websiteserver): add bundledContent pass-through and make serveDir optional
UtilityWebsiteServer now forwards bundledContent to TypedServer for in-memory serving. serveDir is optional; dev features (injectReload, watch, noCache) only activate with serveDir.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import * as interfaces from '../../dist_ts_interfaces/index.js';
|
||||
import { type IServerOptions, type ISecurityHeaders, TypedServer } from '../classes.typedserver.js';
|
||||
import { type IServerOptions, type ISecurityHeaders, type IBundledContentItem, TypedServer } from '../classes.typedserver.js';
|
||||
import * as plugins from '../plugins.js';
|
||||
|
||||
export interface IUtilityWebsiteServerConstructorOptions {
|
||||
@@ -10,7 +10,9 @@ export interface IUtilityWebsiteServerConstructorOptions {
|
||||
/** Domain name for the website */
|
||||
domain: string;
|
||||
/** Directory to serve static files from */
|
||||
serveDir: string;
|
||||
serveDir?: string;
|
||||
/** Bundled content to serve from memory (base64-encoded files from tsbundle) */
|
||||
bundledContent?: IBundledContentItem[];
|
||||
/** RSS feed metadata */
|
||||
feedMetadata?: IServerOptions['feedMetadata'];
|
||||
/** Enable/disable CORS (default: true) */
|
||||
@@ -55,12 +57,14 @@ export class UtilityWebsiteServer {
|
||||
// Core settings
|
||||
cors: this.options.cors ?? true,
|
||||
serveDir: this.options.serveDir,
|
||||
bundledContent: this.options.bundledContent,
|
||||
domain: this.options.domain,
|
||||
port,
|
||||
|
||||
// Development features
|
||||
injectReload: true,
|
||||
watch: true,
|
||||
// Development features (only when serving from filesystem)
|
||||
injectReload: !!this.options.serveDir,
|
||||
watch: !!this.options.serveDir,
|
||||
noCache: !!this.options.serveDir,
|
||||
|
||||
// SPA support (enabled by default for modern web apps)
|
||||
spaFallback: this.options.spaFallback ?? true,
|
||||
|
||||
Reference in New Issue
Block a user