You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					32 lines
				
				744 B
			
		
		
			
		
	
	
					32 lines
				
				744 B
			| 
											3 years ago
										 | 'use strict' | ||
|  | 
 | ||
|  | const fp = require('fastify-plugin') | ||
|  | 
 | ||
|  | function fastifySwagger (fastify, opts, next) { | ||
|  |   // by default the mode is dynamic, as plugin initially was developed
 | ||
|  |   opts.mode = opts.mode || 'dynamic' | ||
|  | 
 | ||
|  |   switch (opts.mode) { | ||
|  |     case 'static': { | ||
|  |       const setup = require('./lib/mode/static') | ||
|  |       setup(fastify, opts, next) | ||
|  |       break | ||
|  |     } | ||
|  |     case 'dynamic': { | ||
|  |       const setup = require('./lib/mode/dynamic') | ||
|  |       setup(fastify, opts, next) | ||
|  |       break | ||
|  |     } | ||
|  |     default: { | ||
|  |       return next(new Error("unsupported mode, should be one of ['static', 'dynamic']")) | ||
|  |     } | ||
|  |   } | ||
|  | 
 | ||
|  |   fastify.decorate('swaggerCSP', require('./static/csp.json')) | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = fp(fastifySwagger, { | ||
|  |   fastify: '>=3.x', | ||
|  |   name: 'fastify-swagger' | ||
|  | }) |