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.
		
		
		
		
		
			
		
			
				
					44 lines
				
				1.4 KiB
			
		
		
			
		
	
	
					44 lines
				
				1.4 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								'use strict'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const { kFourOhFourContext, kReplySerializerDefault } = require('./symbols.js')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Objects that holds the context of every request
							 | 
						||
| 
								 | 
							
								// Every route holds an instance of this object.
							 | 
						||
| 
								 | 
							
								function Context (schema, handler, Reply, Request, contentTypeParser, config, errorHandler, bodyLimit, logLevel, logSerializers, attachValidation, replySerializer, schemaErrorFormatter) {
							 | 
						||
| 
								 | 
							
								  this.schema = schema
							 | 
						||
| 
								 | 
							
								  this.handler = handler
							 | 
						||
| 
								 | 
							
								  this.Reply = Reply
							 | 
						||
| 
								 | 
							
								  this.Request = Request
							 | 
						||
| 
								 | 
							
								  this.contentTypeParser = contentTypeParser
							 | 
						||
| 
								 | 
							
								  this.onRequest = null
							 | 
						||
| 
								 | 
							
								  this.onSend = null
							 | 
						||
| 
								 | 
							
								  this.onError = null
							 | 
						||
| 
								 | 
							
								  this.onTimeout = null
							 | 
						||
| 
								 | 
							
								  this.preHandler = null
							 | 
						||
| 
								 | 
							
								  this.onResponse = null
							 | 
						||
| 
								 | 
							
								  this.config = config
							 | 
						||
| 
								 | 
							
								  this.errorHandler = errorHandler
							 | 
						||
| 
								 | 
							
								  this._middie = null
							 | 
						||
| 
								 | 
							
								  this._parserOptions = { limit: bodyLimit || null }
							 | 
						||
| 
								 | 
							
								  this.logLevel = logLevel
							 | 
						||
| 
								 | 
							
								  this.logSerializers = logSerializers
							 | 
						||
| 
								 | 
							
								  this[kFourOhFourContext] = null
							 | 
						||
| 
								 | 
							
								  this.attachValidation = attachValidation
							 | 
						||
| 
								 | 
							
								  this[kReplySerializerDefault] = replySerializer
							 | 
						||
| 
								 | 
							
								  this.schemaErrorFormatter = schemaErrorFormatter || defaultSchemaErrorFormatter
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function defaultSchemaErrorFormatter (errors, dataVar) {
							 | 
						||
| 
								 | 
							
								  let text = ''
							 | 
						||
| 
								 | 
							
								  const separator = ', '
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // eslint-disable-next-line no-var
							 | 
						||
| 
								 | 
							
								  for (var i = 0; i !== errors.length; ++i) {
							 | 
						||
| 
								 | 
							
								    const e = errors[i]
							 | 
						||
| 
								 | 
							
								    text += dataVar + (e.dataPath || '') + ' ' + e.message + separator
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  return new Error(text.slice(0, -separator.length))
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = Context
							 |