UNPKG

dynamodb-toolbox

Version:

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

31 lines (30 loc) 1.28 kB
import type { ArrayPath } from '../../schema/actions/utils/types.js'; import type { Extension, ItemSchema, Schema, SchemaUnextendedValue } from '../../schema/index.js'; import type { TransformedValue } from './transformedValue.js'; import type { ValidValue } from './validValue.js'; export declare const $extension: unique symbol; export type $extension = typeof $extension; export declare const $contextExtension: unique symbol; export type $contextExtension = typeof $contextExtension; export type ExtensionParserOptions = { transform?: boolean; valuePath?: ArrayPath; }; export type ExtensionParser<EXTENSION extends Extension = Extension, CONTEXT_EXTENSION extends Extension = EXTENSION> = { [$extension]?: EXTENSION; [$contextExtension]?: CONTEXT_EXTENSION; } & ((schema: Schema, input: unknown, options?: ExtensionParserOptions) => { isExtension: true; extensionParser: () => Generator<ValidValue<Schema, { extension: EXTENSION; }>, TransformedValue<Schema, { extension: EXTENSION; }>, ValidValue<ItemSchema, { extension: CONTEXT_EXTENSION; }> | undefined>; unextendedInput?: never; } | { isExtension: false; extensionParser?: never; unextendedInput: SchemaUnextendedValue<EXTENSION> | undefined; });