UNPKG

dynamodb-toolbox

Version:

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

13 lines (12 loc) 927 B
import type { AnyOfSchema, Schema } from '../../../../schema/index.js'; import type { ComputeObject } from '../../../../types/computeObject.js'; import type { FormattedValueJSONSchema } from './schema.js'; export type FormattedAnyOfJSONSchema<SCHEMA extends AnyOfSchema> = ComputeObject<{ anyOf: MapFormattedValueJSONSchema<SCHEMA['elements']>; }>; type MapFormattedValueJSONSchema<SCHEMAS extends Schema[], RESULTS extends unknown[] = []> = number extends SCHEMAS['length'] ? FormattedValueJSONSchema<SCHEMAS[number]>[] : SCHEMAS extends [infer SCHEMAS_HEAD, ...infer SCHEMAS_TAIL] ? SCHEMAS_HEAD extends Schema ? SCHEMAS_TAIL extends Schema[] ? MapFormattedValueJSONSchema<SCHEMAS_TAIL, [ ...RESULTS, FormattedValueJSONSchema<SCHEMAS_HEAD> ]> : never : never : RESULTS; export declare const getFormattedAnyOfJSONSchema: <SCHEMA extends AnyOfSchema>(schema: SCHEMA) => FormattedAnyOfJSONSchema<SCHEMA>; export {};