forked from fastify/fastify-swagger
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.d.ts
70 lines (60 loc) · 1.54 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import { FastifyPlugin } from 'fastify';
import * as SwaggerSchema from 'swagger-schema-official';
declare module 'fastify' {
interface FastifyInstance {
swagger: (
opts?: {
yaml?: boolean;
}
) => SwaggerSchema.Spec;
swaggerCSP: {
script: string[];
style: string[];
}
}
interface FastifySchema {
hide?: boolean;
tags?: string[];
description?: string;
summary?: string;
consumes?: string[];
security?: Array<{ [securityLabel: string]: string[] }>;
}
}
export const fastifySwagger: FastifyPlugin<SwaggerOptions>;
export type SwaggerOptions = (FastifyStaticSwaggerOptions | FastifyDynamicSwaggerOptions);
export interface FastifySwaggerOptions {
mode?: 'static' | 'dynamic';
/**
* Overwrite the swagger url end-point
* @default /documentation
*/
routePrefix?: string;
/**
* To expose the documentation api
* @default false
*/
exposeRoute?: boolean;
}
export interface FastifyDynamicSwaggerOptions extends FastifySwaggerOptions {
mode?: 'dynamic';
swagger?: Partial<SwaggerSchema.Spec>;
hiddenTag?: string;
/**
* Overwrite the route schema
*/
transform?: Function;
}
export interface StaticPathSpec {
path: string;
postProcessor?: (spec: SwaggerSchema.Spec) => SwaggerSchema.Spec;
baseDir: string;
}
export interface StaticDocumentSpec {
document: string;
}
export interface FastifyStaticSwaggerOptions extends FastifySwaggerOptions {
mode: 'static';
specification: StaticPathSpec | StaticDocumentSpec;
}
export default fastifySwagger;