Cygni_backend/node_modules/@tsoa/runtime/dist/routeGeneration/templateHelpers.d.ts

173 lines
6.0 KiB
TypeScript

import { AdditionalProps } from './additionalProps';
import { TsoaRoute } from './tsoa-route';
export declare function ValidateParam(property: TsoaRoute.PropertySchema, value: any, generatedModels: TsoaRoute.Models, name: string | undefined, fieldErrors: FieldErrors, isBodyParam: boolean, parent: string | undefined, config: AdditionalProps): any;
export declare class ValidationService {
private readonly models;
private readonly config;
constructor(models: TsoaRoute.Models, config: AdditionalProps);
ValidateParam(property: TsoaRoute.PropertySchema, rawValue: any, name: string | undefined, fieldErrors: FieldErrors, isBodyParam: boolean, parent?: string): any;
hasCorrectJsType(value: any, type: 'object' | 'boolean' | 'number' | 'string', isBodyParam: boolean): boolean;
validateNestedObjectLiteral(name: string, value: any, fieldErrors: FieldErrors, isBodyParam: boolean, nestedProperties: {
[name: string]: TsoaRoute.PropertySchema;
} | undefined, additionalProperties: TsoaRoute.PropertySchema | boolean | undefined, parent: string): any;
validateInt(name: string, value: any, fieldErrors: FieldErrors, isBodyParam: boolean, validators?: IntegerValidator, parent?: string): number | undefined;
validateFloat(name: string, value: any, fieldErrors: FieldErrors, isBodyParam: boolean, validators?: FloatValidator, parent?: string): number | undefined;
validateEnum(name: string, value: unknown, fieldErrors: FieldErrors, members?: Array<string | number | boolean | null>, parent?: string): unknown;
validateDate(name: string, value: any, fieldErrors: FieldErrors, isBodyParam: boolean, validators?: DateValidator, parent?: string): Date | undefined;
validateDateTime(name: string, value: any, fieldErrors: FieldErrors, isBodyParam: boolean, validators?: DateTimeValidator, parent?: string): Date | undefined;
validateString(name: string, value: any, fieldErrors: FieldErrors, validators?: StringValidator, parent?: string): string | undefined;
validateBool(name: string, value: any, fieldErrors: FieldErrors, isBodyParam: boolean, validators?: BooleanValidator, parent?: string): any;
validateUndefined(name: string, value: any, fieldErrors: FieldErrors, parent?: string): undefined;
validateArray(name: string, value: any[], fieldErrors: FieldErrors, isBodyParam: boolean, schema?: TsoaRoute.PropertySchema, validators?: ArrayValidator, parent?: string): any[] | undefined;
validateBuffer(_name: string, value: string): Buffer<ArrayBuffer>;
validateUnion(name: string, value: any, fieldErrors: FieldErrors, isBodyParam: boolean, property: TsoaRoute.PropertySchema, parent?: string): any;
validateIntersection(name: string, value: any, fieldErrors: FieldErrors, isBodyParam: boolean, subSchemas: TsoaRoute.PropertySchema[] | undefined, parent?: string): any;
private toModelLike;
/**
* combine all schemas once, ignoring order ie
* input: [[value1], [value2]] should be [[value1, value2]]
* not [[value1, value2],[value2, value1]]
* and
* input: [[value1, value2], [value3, value4], [value5, value6]] should be [
* [value1, value3, value5],
* [value1, value3, value6],
* [value1, value4, value5],
* [value1, value4, value6],
* [value2, value3, value5],
* [value2, value3, value6],
* [value2, value4, value5],
* [value2, value4, value6],
* ]
* @param modelSchemass
*/
private selfIntersectionCombinations;
private getAllCombinations;
private combineProperties;
private getExcessPropertiesFor;
validateModel(input: {
name: string;
value: any;
modelDefinition: TsoaRoute.ModelSchema;
fieldErrors: FieldErrors;
isBodyParam: boolean;
parent?: string;
}): any;
}
export interface IntegerValidator {
isInt?: {
errorMsg?: string;
};
isLong?: {
errorMsg?: string;
};
minimum?: {
value: number;
errorMsg?: string;
};
maximum?: {
value: number;
errorMsg?: string;
};
}
export interface FloatValidator {
isFloat?: {
errorMsg?: string;
};
isDouble?: {
errorMsg?: string;
};
minimum?: {
value: number;
errorMsg?: string;
};
maximum?: {
value: number;
errorMsg?: string;
};
}
export interface DateValidator {
isDate?: {
errorMsg?: string;
};
minDate?: {
value: string;
errorMsg?: string;
};
maxDate?: {
value: string;
errorMsg?: string;
};
}
export interface DateTimeValidator {
isDateTime?: {
errorMsg?: string;
};
minDate?: {
value: string;
errorMsg?: string;
};
maxDate?: {
value: string;
errorMsg?: string;
};
}
export interface StringValidator {
isString?: {
errorMsg?: string;
};
minLength?: {
value: number;
errorMsg?: string;
};
maxLength?: {
value: number;
errorMsg?: string;
};
pattern?: {
value: string;
errorMsg?: string;
};
title?: {
value: string;
errorMsg?: string;
};
}
export interface BooleanValidator {
isBoolean?: {
errorMsg?: string;
};
}
export interface ArrayValidator {
isArray?: {
errorMsg?: string;
};
minItems?: {
value: number;
errorMsg?: string;
};
maxItems?: {
value: number;
errorMsg?: string;
};
uniqueItems?: {
errorMsg?: string;
};
}
export type Validator = IntegerValidator | FloatValidator | DateValidator | DateTimeValidator | StringValidator | BooleanValidator | ArrayValidator;
export interface FieldErrors {
[name: string]: {
message: string;
value?: any;
};
}
export interface Exception extends Error {
status: number;
}
export declare class ValidateError extends Error implements Exception {
fields: FieldErrors;
message: string;
status: number;
name: string;
constructor(fields: FieldErrors, message: string);
}