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