40 lines
904 B
JavaScript
40 lines
904 B
JavaScript
'use strict'
|
|
|
|
const { addHook } = require('../util/add-hook')
|
|
const { resolveSwaggerFunction } = require('../util/resolve-swagger-function')
|
|
|
|
module.exports = function (fastify, opts, done) {
|
|
opts = Object.assign({}, {
|
|
exposeRoute: false,
|
|
hiddenTag: 'X-HIDDEN',
|
|
hideUntagged: false,
|
|
stripBasePath: true,
|
|
openapi: null,
|
|
swagger: {},
|
|
transform: null,
|
|
transformObject: null,
|
|
decorator: 'swagger',
|
|
refResolver: {
|
|
buildLocalReference (json, _baseUri, _fragment, i) {
|
|
if (!json.title && json.$id) {
|
|
json.title = json.$id
|
|
}
|
|
return `def-${i}`
|
|
}
|
|
},
|
|
convertConstToEnum: true
|
|
}, opts)
|
|
|
|
const { routes, Ref } = addHook(fastify, opts)
|
|
|
|
const cache = {
|
|
object: null,
|
|
string: null
|
|
}
|
|
|
|
const swagger = resolveSwaggerFunction(opts, cache, routes, Ref)
|
|
fastify.decorate(opts.decorator, swagger)
|
|
|
|
done()
|
|
}
|