@stacksjs/stx
Version:
A performant UI Framework. Powered by Bun.
92 lines • 2.38 kB
TypeScript
import type { SyntaxHighlightTheme, StxOptions } from '../types';
/**
* Get MIME type for a file extension
*/
export declare function getMimeType(ext: string): string;
/**
* MIME type mapping
*/
export declare const MIME_TYPES: {
'.html': 'text/html';
'.css': 'text/css';
'.js': 'application/javascript';
'.mjs': 'application/javascript';
'.json': 'application/json';
'.png': 'image/png';
'.jpg': 'image/jpeg';
'.jpeg': 'image/jpeg';
'.gif': 'image/gif';
'.svg': 'image/svg+xml';
'.ico': 'image/x-icon';
'.webp': 'image/webp';
'.woff': 'font/woff';
'.woff2': 'font/woff2';
'.ttf': 'font/ttf';
'.eot': 'application/vnd.ms-fontobject';
'.otf': 'font/otf';
'.mp4': 'video/mp4';
'.webm': 'video/webm';
'.mp3': 'audio/mpeg';
'.wav': 'audio/wav';
'.pdf': 'application/pdf';
'.zip': 'application/zip';
'.xml': 'application/xml';
'.txt': 'text/plain';
'.md': 'text/markdown';
'.stx': 'text/html'
};
/**
* Default dev server options
*/
export declare const DEFAULT_DEV_OPTIONS: Required<Omit<DevServerOptions, 'stxOptions' | 'markdown'>>;
/**
* Markdown rendering options
*/
export declare interface MarkdownOptions {
syntaxHighlighting?: {
/** Enable server-side syntax highlighting */
serverSide?: boolean
/** Enable syntax highlighting (default: true) */
enabled?: boolean
/** Default theme for code blocks */
defaultTheme?: SyntaxHighlightTheme
/** Highlight code blocks with unknown languages */
highlightUnknownLanguages?: boolean
/** Additional themes to make available */
additionalThemes?: SyntaxHighlightTheme[]
}
}
/**
* Dev server configuration options
*/
export declare interface DevServerOptions {
port?: number
watch?: boolean
native?: boolean
stxOptions?: StxOptions
markdown?: MarkdownOptions
cache?: boolean
hotReload?: boolean
hmrPort?: number
}
/**
* Server instance returned by serve functions
*/
export declare interface ServerInstance {
stop: () => void
url: string
port: number
hmrPort?: number
}
/**
* File watcher event types
*/
export type WatchEventType = 'change' | 'rename' | 'delete' | 'add'
/**
* File watcher callback
*/
export type WatchCallback = (eventType: WatchEventType, filename: string) => void
/**
* Route handler function
*/
export type RouteHandler = (request: Request) => Promise<Response> | Response