UNPKG

dynamodb-toolbox

Version:

Lightweight and type-safe query builder for DynamoDB and TypeScript.

21 lines (20 loc) 1.87 kB
import type { InputValue, Schema, TransformedValue, ValidValue, WriteValueOptions } from '../../../schema/index.js'; import { SchemaAction } from '../../../schema/index.js'; import type { InferWriteValueOptions, ParseValueOptions } from './options.js'; type ParserInput<SCHEMA extends Schema, OPTIONS extends ParseValueOptions = {}, WRITE_VALUE_OPTIONS extends WriteValueOptions = InferWriteValueOptions<OPTIONS>> = OPTIONS extends { fill: false; } ? ValidValue<SCHEMA, WRITE_VALUE_OPTIONS> : InputValue<SCHEMA, WRITE_VALUE_OPTIONS>; export type ParserYield<SCHEMA extends Schema, OPTIONS extends ParseValueOptions = {}, WRITE_VALUE_OPTIONS extends WriteValueOptions = InferWriteValueOptions<OPTIONS>> = (OPTIONS extends { fill: false; } ? never : InputValue<SCHEMA, WRITE_VALUE_OPTIONS>) | ValidValue<SCHEMA, WRITE_VALUE_OPTIONS>; export type ParserReturn<SCHEMA extends Schema, OPTIONS extends ParseValueOptions = {}, WRITE_VALUE_OPTIONS extends WriteValueOptions = InferWriteValueOptions<OPTIONS>> = OPTIONS extends { transform: false; } ? ValidValue<SCHEMA, WRITE_VALUE_OPTIONS> : TransformedValue<SCHEMA, WRITE_VALUE_OPTIONS>; export declare class Parser<SCHEMA extends Schema> extends SchemaAction<SCHEMA> { static actionName: "parse"; start<OPTIONS extends ParseValueOptions = {}>(inputValue: unknown, options?: OPTIONS): Generator<ParserYield<SCHEMA, OPTIONS>, ParserReturn<SCHEMA, OPTIONS>>; parse<OPTIONS extends ParseValueOptions = {}>(inputValue: unknown, options?: OPTIONS): ParserReturn<SCHEMA, OPTIONS>; reparse<OPTIONS extends ParseValueOptions = {}>(inputValue: ParserInput<SCHEMA, OPTIONS>, options?: OPTIONS): ParserReturn<SCHEMA, OPTIONS>; validate<OPTIONS extends Omit<ParseValueOptions, 'fill' | 'transform'> = {}>(inputValue: unknown, options?: OPTIONS): inputValue is ValidValue<SCHEMA, OPTIONS>; } export {};