@sigiljs/sigil
Version:
TypeScript-first Node.js HTTP framework offering schema-driven routing, modifier-based middleware, plugin extensibility, and flexible response templating
64 lines (63 loc) • 1.88 kB
TypeScript
import { default as https } from 'node:https';
import { Internal } from '../../types';
import AbstractLogger = Internal.AbstractLogger;
/**
* Debug configuration options for the Sigil framework.
*/
export interface DebugOptions {
/**
* Validation settings.
*/
validation: Partial<{
/** if true, include detailed validation messages in errors. */
messages: boolean;
/** if true, skip validation entirely. */
skip: boolean;
}>;
/**
* Whether to use enhanced, styled output in logs and CLI.
*/
fancyOutput: boolean;
/**
* Optional custom logger to use for framework-level logging.
* If null, framework defaults to its own logger.
*/
logger: AbstractLogger | null;
/**
* Factory to create a logger scoped to a specific module name.
*
* @param module - The name of the module requesting a logger.
* @returns An AbstractLogger instance for that module.
*/
moduleLogger: (module: string) => AbstractLogger;
}
/**
* Top-level configuration options for initializing Sigil.
*/
export interface SigilOptions {
/**
* List of HTTP status codes that should return only the code without body.
*/
codeOnlyResponse?: number[];
/**
* Run in serverless mode: skip starting an internal HTTP server.
*/
serverless: boolean;
/**
* Server-specific options, including HTTPS settings.
*/
server: Partial<{
/**
* HTTPS server options for creating a secure server.
*/
https: https.ServerOptions;
}>;
/**
* Function to map a handler response into HTTP status, headers, and body.
*/
responseTemplate: Internal.ResponseTemplateCallback;
/**
* Debugging options controlling validation, logging, and output style.
*/
debug: Partial<DebugOptions>;
}