dynamodb-toolbox
Version:
Lightweight and type-safe query builder for DynamoDB and TypeScript.
21 lines (20 loc) • 1.87 kB
TypeScript
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 {};