mirror of
https://github.com/BobbyWibowo/lolisafe.git
synced 2024-12-15 00:46:22 +00:00
32 lines
929 B
JavaScript
32 lines
929 B
JavaScript
|
// TODO: Currently consulting with author of hyper-express
|
||
|
// about the behavior of Response.get()/.getHeader() not matching ExpressJS
|
||
|
// https://github.com/kartikk221/hyper-express/discussions/97
|
||
|
// This middleware is a workaround, hopefully only temporarily
|
||
|
|
||
|
class ExpressCompat {
|
||
|
#getHeader (res, name) {
|
||
|
// Always return first value in array if it only has a single value
|
||
|
const values = res._getHeader(name)
|
||
|
if (Array.isArray(values) && values.length === 1) {
|
||
|
return values[0]
|
||
|
} else {
|
||
|
return values
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#middleware (req, res, next) {
|
||
|
// Alias Response.get() and Response.getHeader() with a function that is more aligned with ExpressJS
|
||
|
res._get = res.get
|
||
|
res._getHeader = res.getHeader
|
||
|
res.get = res.getHeader = name => this.#getHeader(res, name)
|
||
|
|
||
|
return next()
|
||
|
}
|
||
|
|
||
|
get middleware () {
|
||
|
return this.#middleware.bind(this)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = ExpressCompat
|