MCPcopy
hub / github.com/fastify/fastify / hookRunnerGenerator

Function hookRunnerGenerator

lib/hooks.js:230–266  ·  view source on GitHub ↗
(iterator)

Source from the content-addressed store, hash-verified

228}
229
230function hookRunnerGenerator (iterator) {
231 return function hookRunner (functions, request, reply, cb) {
232 let i = 0
233
234 function next (err) {
235 if (err || i === functions.length) {
236 cb(err, request, reply)
237 return
238 }
239
240 let result
241 try {
242 result = iterator(functions[i++], request, reply, next)
243 } catch (error) {
244 cb(error, request, reply)
245 return
246 }
247 if (result && typeof result.then === 'function') {
248 result.then(handleResolve, handleReject)
249 }
250 }
251
252 function handleResolve () {
253 next()
254 }
255
256 function handleReject (err) {
257 if (!err) {
258 err = new FST_ERR_SEND_UNDEFINED_ERR()
259 }
260
261 cb(err, request, reply)
262 }
263
264 next()
265 }
266}
267
268function onResponseHookIterator (fn, request, reply, next) {
269 return fn(request, reply, next)

Callers 2

hooks.jsFile · 0.85

Calls 1

nextFunction · 0.85

Tested by

no test coverage detected