@telegram-apps/transformers
Version:
Transformation utilities we use in the @telegram-apps packages.
16 lines (15 loc) • 925 B
TypeScript
import { BaseIssue, BaseSchema, InferOutput, SchemaWithPipe } from 'valibot';
import { ConditionalSnakeKeysAction } from './conditionalSnakeKeys.js';
import { CamelCaseTransformerFn } from './types.js';
type RequiredSchema = BaseSchema<unknown, object, BaseIssue<unknown>>;
export type CamelCaseTransformerPipe<Schema extends RequiredSchema, CamelCase extends boolean> = SchemaWithPipe<[
Schema,
ConditionalSnakeKeysAction<InferOutput<Schema>, CamelCase>
]>;
export type CamelCaseTransformer<Schema extends RequiredSchema> = CamelCaseTransformerFn<CamelCaseTransformerPipe<Schema, false>, CamelCaseTransformerPipe<Schema, true>>;
/**
* Creates a function that generates schemas deeply camel-casing output keys if needed.
* @param schema - base schema used to validate the input.
*/
export declare function createCamelCaseGen<Schema extends RequiredSchema>(schema: Schema): CamelCaseTransformer<Schema>;
export {};