UNPKG

abi.js

Version:

[![typescript-icon]][typescript-link] [![license-icon]][license-link] [![status-icon]][status-link] [![ci-icon]][ci-link] [![twitter-icon]][twitter-link]

68 lines (67 loc) 1.79 kB
export type QueryType = 'string' | 'number'; export type QueryValue = string | number; export type Index = number; export type Name = string; export type Key = Index | Name; export type Argument = { index: Index; value: QueryValue; }; export type Parameter = { name: Name; type: QueryType; value: QueryValue; }; export type Option = { key: Key; value: QueryValue; }; export type Arguments = Record<Index, QueryValue>; export type Parameters = Record<Name, QueryValue>; export type Options = Record<Key, QueryValue>; export type Result = boolean | number | string | object | Response; export type Path = string; export type Pattern = string; export type Resolver = (...args: any[]) => Result; export type Port = number; export type Hostname = `${number}.${number}.${number}.${number}` | string; export type Address = { port: Port; hostname: Hostname; }; export type ServeHandler = (request: Request) => Response | Promise<Response>; export type ServeOptions = Address & { handler: ServeHandler; }; export type Engine = 'V8' | 'JSC'; export type Runtime = 'Node.js' | 'Deno' | 'Bun'; export type UserConfig = Partial<Config> | undefined; export type Config = { root: string; port: Port; hostname: Hostname; assets: string; routes: string; errors: string; }; export interface Logger { log(...args: any[]): void; warn(...args: any[]): void; error(...args: any[]): void; } export interface PathInfo { name: string; realname: string; normalname: string; isAbsolute: boolean; isFile: boolean; isDirectory: boolean; isSymlink: boolean; size: number; mtime: Date | null; atime: Date | null; birthtime: Date | null; extension: string; basename: string; dirname: string; }