arvox-backend
Version:
Un framework backend moderne et modulaire basé sur Hono, TypeScript et l'architecture hexagonale avec authentification Better Auth + Drizzle intégrée
257 lines • 6.12 kB
TypeScript
/**
* Configuration avancée pour OpenAPI/Swagger
*/
export interface OpenAPIConfig {
title?: string;
description?: string;
version?: string;
contact?: {
name?: string;
email?: string;
url?: string;
};
license?: {
name: string;
url?: string;
};
servers?: Array<{
url: string;
description?: string;
}>;
tags?: Array<{
name: string;
description?: string;
externalDocs?: {
description?: string;
url: string;
};
}>;
security?: Array<{
[key: string]: string[];
}>;
components?: {
securitySchemes?: {
[key: string]: {
type: string;
scheme?: string;
bearerFormat?: string;
description?: string;
in?: string;
name?: string;
};
};
};
}
/**
* Configuration par défaut pour OpenAPI
*/
export declare const defaultOpenAPIConfig: OpenAPIConfig;
/**
* Schémas de réponse communs pour OpenAPI
*/
export declare const commonSchemas: {
SuccessResponse: {
type: string;
properties: {
success: {
type: string;
example: boolean;
};
data: {
type: string;
description: string;
};
};
required: string[];
};
ErrorResponse: {
type: string;
properties: {
success: {
type: string;
example: boolean;
};
error: {
type: string;
description: string;
example: string;
};
};
required: string[];
};
ValidationErrorResponse: {
type: string;
properties: {
success: {
type: string;
example: boolean;
};
error: {
type: string;
example: string;
};
details: {
type: string;
items: {
type: string;
properties: {
field: {
type: string;
example: string;
};
message: {
type: string;
example: string;
};
};
};
};
};
required: string[];
};
PaginationMeta: {
type: string;
properties: {
total: {
type: string;
description: string;
example: number;
};
page: {
type: string;
description: string;
example: number;
};
limit: {
type: string;
description: string;
example: number;
};
totalPages: {
type: string;
description: string;
example: number;
};
hasNext: {
type: string;
description: string;
example: boolean;
};
hasPrev: {
type: string;
description: string;
example: boolean;
};
};
required: string[];
};
PaginatedResponse: {
type: string;
properties: {
success: {
type: string;
example: boolean;
};
data: {
type: string;
properties: {
items: {
type: string;
description: string;
};
pagination: {
$ref: string;
};
};
};
};
required: string[];
};
BaseEntity: {
type: string;
properties: {
id: {
type: string;
format: string;
description: string;
example: string;
};
createdAt: {
type: string;
format: string;
description: string;
example: string;
};
updatedAt: {
type: string;
format: string;
description: string;
example: string;
};
};
required: string[];
};
};
/**
* Paramètres de requête communs
*/
export declare const commonParameters: {
pageParam: {
name: string;
in: string;
description: string;
required: boolean;
schema: {
type: string;
minimum: number;
default: number;
example: number;
};
};
limitParam: {
name: string;
in: string;
description: string;
required: boolean;
schema: {
type: string;
minimum: number;
maximum: number;
default: number;
example: number;
};
};
searchParam: {
name: string;
in: string;
description: string;
required: boolean;
schema: {
type: string;
minLength: number;
example: string;
};
};
sortParam: {
name: string;
in: string;
description: string;
required: boolean;
schema: {
type: string;
example: string;
};
};
idParam: {
name: string;
in: string;
description: string;
required: boolean;
schema: {
type: string;
format: string;
example: string;
};
};
};
//# sourceMappingURL=openapi-config.d.ts.map