UNPKG

advanced-search-params

Version:

[![npm version](https://badge.fury.io/js/%40urlkit%2Fsearch-params.svg)](https://www.npmjs.com/package/advanced-search-params) [![jsDelivr hits](https://data.jsdelivr.com/v1/package/npm/advanced-search-params/badge)](https://www.jsdelivr.com/package/npm/a

40 lines (38 loc) 1.51 kB
interface ParserOptions<T> { defaultValue?: T; validate?: (value: T) => boolean; } interface Parser<T> { parse: (value: string) => T | undefined; serialize: (value: T) => string; validate?: (value: T) => boolean; } declare function parseAsTimestamp(options?: ParserOptions<number>): { parse: (value: string) => number | undefined; serialize: (value: number) => string; validate: ((value: number) => boolean) | undefined; }; declare function parseAsIsoDateTime(options?: ParserOptions<Date>): { parse: (value: string) => Date | undefined; serialize: (value: Date) => string; validate: ((value: Date) => boolean) | undefined; }; declare function parseAsStringEnum<T extends string>(enumValues: readonly T[], options?: ParserOptions<T>): { parse: (value: string) => T | undefined; serialize: (value: T) => T; validate: (value: T) => boolean; }; declare function parseAsNumber(options?: ParserOptions<number> & { min?: number; max?: number; }): { parse: (value: string) => number | undefined; serialize: (value: number) => string; validate: ((value: number) => boolean) | undefined; }; declare function parseAsBoolean(options?: ParserOptions<boolean>): { parse: (value: string) => boolean | undefined; serialize: (value: boolean) => string; validate: ((value: boolean) => boolean) | undefined; }; export { type Parser, type ParserOptions, parseAsBoolean, parseAsIsoDateTime, parseAsNumber, parseAsStringEnum, parseAsTimestamp };