@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
TypeScript
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