НА
Size: a a a
НА
В
CM
CM
НА
CM
НА
F
F
DE
static compose (middlewares) {
if (!Array.isArray(middlewares)) {
throw new Error('Middlewares must be an array')
}
if (middlewares.length === 0) {
return Composer.safePassThru()
}
if (middlewares.length === 1) {
return Composer.unwrap(middlewares[0])
}
return (ctx, next) => {
let index = -1
return execute(0, ctx)
function execute (i, context) {
if (!(context instanceof Context)) {
return Promise.reject(new Error('next(ctx) called with invalid context'))
}
if (i <= index) {
return Promise.reject(new Error('next() called multiple times'))
}
index = i
const handler = middlewares[i] ? Composer.unwrap(middlewares[i]) : next
if (!handler) {
return Promise.resolve()
}
try {
return Promise.resolve(
handler(context, (ctx = context) => execute(i + 1, ctx))
)
} catch (err) {
return Promise.reject(err)
}
}
}
}
S
static compose (middlewares) {
if (!Array.isArray(middlewares)) {
throw new Error('Middlewares must be an array')
}
if (middlewares.length === 0) {
return Composer.safePassThru()
}
if (middlewares.length === 1) {
return Composer.unwrap(middlewares[0])
}
return (ctx, next) => {
let index = -1
return execute(0, ctx)
function execute (i, context) {
if (!(context instanceof Context)) {
return Promise.reject(new Error('next(ctx) called with invalid context'))
}
if (i <= index) {
return Promise.reject(new Error('next() called multiple times'))
}
index = i
const handler = middlewares[i] ? Composer.unwrap(middlewares[i]) : next
if (!handler) {
return Promise.resolve()
}
try {
return Promise.resolve(
handler(context, (ctx = context) => execute(i + 1, ctx))
)
} catch (err) {
return Promise.reject(err)
}
}
}
}
F
B