EdgeAIG's picture
download
raw
1.12 kB
/**
* @since 1.0.0
*/
import * as internal from "./internal/router.js"
/**
* @since 1.0.0
* @category models
*/
export interface RouterConfig {
readonly ignoreTrailingSlash: boolean
readonly ignoreDuplicateSlashes: boolean
readonly caseSensitive: boolean
readonly maxParamLength: number
}
/**
* @since 1.0.0
* @category models
*/
export type PathInput = `/${string}` | "*"
/**
* @since 1.0.0
* @category models
*/
export interface Router<A> {
readonly on: (
method: string | Iterable<string>,
path: PathInput,
handler: A,
) => void
readonly all: (path: PathInput, handler: A) => void
readonly find: (method: string, url: string) => FindResult<A> | undefined
readonly has: (method: string, url: string) => boolean
}
/**
* @since 1.0.0
* @category models
*/
export interface FindResult<A> {
readonly handler: A
readonly params: Record<string, string | undefined>
readonly searchParams: Record<string, string | Array<string>>
}
/**
* @since 1.0.0
* @category constructors
*/
export const make: <A>(options?: Partial<RouterConfig>) => Router<A> =
internal.make

Xet Storage Details

Size:
1.12 kB
·
Xet hash:
39737ab8aca84f67f73c97be80bef2e55942dbdcba3191c0507d378c7d940986

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.