advanced-search-params
Version:
[](https://www.npmjs.com/package/advanced-search-params) [](https://www.jsdelivr.com/package/npm/a
40 lines (38 loc) • 1.51 kB
TypeScript
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 };