UNPKG

@openapi-ts/backend

Version:

Enables easy implementions of OpenAPI REST APIs in TypeScript with full typings of schemas and operations.

32 lines 1.94 kB
import Ajv, { ErrorObject, Options as AjvOptions } from 'ajv'; import { OpenAPIV3 } from 'openapi-types'; import { OneOrMany } from '@openapi-ts/request-types'; export declare type Resolvable<T> = T extends Function ? never : T | (() => T); export declare function resolve<T>(resolvable: Resolvable<T>): T; export declare function formatValidationError(error: ErrorObject): string; export declare function formatArray<T>(items: T[], formatter: (item: T) => string, prefix?: string): string; export declare type ParameterType = 'header' | 'query' | 'path' | 'cookie'; export declare function getParameterMap({ parameters }: OpenAPIV3.OperationObject, type: ParameterType): Record<string, OpenAPIV3.ParameterBaseObject>; export declare function getParametersSchema(parameters: Record<string, OpenAPIV3.ParameterBaseObject>): OpenAPIV3.SchemaObject; export declare function getAjv(ajvOptions?: AjvOptions): import("ajv/dist/core").default; export declare function matchSchema<T, U>(ajv: Ajv, source: Readonly<T>, schema: OpenAPIV3.SchemaObject, errors: ErrorObject[]): U; /** * Map the values of an object * @param obj Source object * @param func Transform function */ export declare function mapObject<K extends string, V, W>(obj: Record<K, V>, func: (value: V, key: K, obj: Record<K, V>) => W): Record<K, W>; export declare function transform<T, U>(value: OneOrMany<T>, func: (value: T) => U): OneOrMany<U>; /** * Apply a transformation to a single value or an array of values * @param func Transform function * @returns Single transformed value or array of transformed values */ export declare function oneOrMany<T, U>(func: (value: T) => U): (value: OneOrMany<T>) => OneOrMany<U>; /** * Return a number range validator function * @param min Min value (inclusive) * @param max Max value (exclusive) */ export declare function inRange(min: number, max: number): (value: number) => boolean; //# sourceMappingURL=utils.d.ts.map