typia
Version:
Superfast runtime validators with only one line
36 lines (35 loc) • 1.59 kB
TypeScript
import { OpenApi, OpenApiV3 } from "@samchon/openapi";
export interface IJsonSchemaApplication<Version extends "3.0" | "3.1" = "3.1", App extends any = object> {
version: Version;
components: IJsonSchemaApplication.IComponents<IJsonSchemaApplication.Schema<Version>>;
functions: IJsonSchemaApplication.IFunction<IJsonSchemaApplication.Schema<Version>>[];
__application?: App | undefined;
}
export declare namespace IJsonSchemaApplication {
type Schema<Version extends "3.0" | "3.1"> = Version extends "3.1" ? OpenApi.IJsonSchema : OpenApiV3.IJsonSchema;
interface IComponents<Schema extends OpenApi.IJsonSchema | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema> {
schemas?: Record<string, Schema>;
}
interface IFunction<Schema extends OpenApi.IJsonSchema | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema> {
async: boolean;
name: string;
parameters: IParameter<Schema>[];
output: IOutput<Schema> | undefined;
summary?: string | undefined;
description?: string | undefined;
deprecated?: boolean;
tags?: string[];
}
interface IParameter<Schema extends OpenApi.IJsonSchema | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema> {
name: string;
required: boolean;
schema: Schema;
title?: string | undefined;
description?: string | undefined;
}
interface IOutput<Schema extends OpenApi.IJsonSchema | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema> {
schema: Schema;
required: boolean;
description?: string | undefined;
}
}