swagger-doc-preview
Version:
A quickly start tool for rendering swagger doc, supporting history and auto refresh.
27 lines (23 loc) • 770 B
JavaScript
import deepMerge from 'deepmerge'
import SwaggerUI from 'swagger-ui'
import SwaggerEditor from 'swagger-editor'
import 'swagger-ui/dist/swagger-ui.css'
const defaults = {
presets: [
SwaggerUI.presets.apis
],
plugins: []
}
export default function SwaggerUIBundle(options) {
let mergedOptions = deepMerge(defaults, options)
mergedOptions.presets = defaults.presets.concat(options.presets || [])
mergedOptions.plugins = defaults.plugins.concat(options.plugins || [])
if (options.showErrors) {
mergedOptions.plugins = mergedOptions.plugins.concat([
SwaggerEditor.plugins.ValidateBasePlugin,
SwaggerEditor.plugins.ValidateSemanticPlugin,
SwaggerEditor.plugins.ValidateJsonSchemaPlugin
])
}
return SwaggerUI(mergedOptions)
}