@mmote/niimblue-node
Version:
Headless clients for niimbluelib. Command line interface, simple REST server are also included.
21 lines (20 loc) • 840 B
TypeScript
import http from "http";
import { z } from "zod";
type RouteHandler = (request: http.IncomingMessage) => unknown;
export declare class RestError extends Error {
readonly status: number;
constructor(message: string, status?: number);
}
export declare const writeObj: (response: http.ServerResponse, o: unknown, status?: number) => void;
export declare const readBodyJson: <T>(request: http.IncomingMessage, schema: z.ZodType<T>) => Promise<T>;
export declare class SimpleServer {
private readonly routes;
private corsEnabled;
enableCors(): void;
get(path: string, handler: RouteHandler): void;
post(path: string, handler: RouteHandler): void;
anything(path: string, handler: RouteHandler): void;
private onRequest;
start(host: string, port: number, listeningListener?: () => void): void;
}
export {};