refactor(medusa): Migrate middlewares to ts (#1469)
This commit is contained in:
1 parent
d98cd85d23
commit
63bf684e66
9 files changed
+49
-32
No files matched your search
+4
-4
@@ -1,12 +1,12 @@
|
|||||||
import passport from "passport"
|
import passport from "passport"
|
||||||
|
import { Request, Response, NextFunction, RequestHandler } from "express"
|
||||||
|
|
||||||
export default () => {
|
export default (): RequestHandler => {
|
||||||
// Always go to next
|
return (req: Request, res: Response, next: NextFunction): void => {
|
||||||
return (req, res, next) => {
|
|
||||||
passport.authenticate(
|
passport.authenticate(
|
||||||
["jwt", "bearer"],
|
["jwt", "bearer"],
|
||||||
{ session: false },
|
{ session: false },
|
||||||
(err, user, info) => {
|
(err, user) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return next(err)
|
return next(err)
|
||||||
}
|
}
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
import passport from "passport"
|
|
||||||
|
|
||||||
export default () => {
|
|
||||||
return (req, res, next) => {
|
|
||||||
passport.authenticate(["jwt", "bearer"], { session: false })(req, res, next)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
import passport from "passport"
|
||||||
|
import { Request, Response, NextFunction, RequestHandler } from "express"
|
||||||
|
|
||||||
|
export default (): RequestHandler => {
|
||||||
|
return (req: Request, res: Response, next: NextFunction): void => {
|
||||||
|
passport.authenticate(["jwt", "bearer"], { session: false })(req, res, next)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
export default (fn) =>
|
|
||||||
(...args) =>
|
|
||||||
fn(...args).catch(args[2])
|
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
import { NextFunction, Request, RequestHandler, Response } from "express"
|
||||||
|
|
||||||
|
type handler = (req: Request, res: Response) => Promise<void>
|
||||||
|
|
||||||
|
export default (fn: handler): RequestHandler => {
|
||||||
|
return (req: Request, res: Response, next: NextFunction) => {
|
||||||
|
return fn(req, res).catch(next)
|
||||||
|
}
|
||||||
|
}
|
||||||
+4
-2
@@ -1,4 +1,6 @@
|
|||||||
import { MedusaError } from "medusa-core-utils"
|
import { MedusaError } from "medusa-core-utils"
|
||||||
|
import { NextFunction, Request, Response } from "express"
|
||||||
|
import { Logger } from "../../types/global"
|
||||||
|
|
||||||
const QUERY_RUNNER_RELEASED = "QueryRunnerAlreadyReleasedError"
|
const QUERY_RUNNER_RELEASED = "QueryRunnerAlreadyReleasedError"
|
||||||
const TRANSACTION_STARTED = "TransactionAlreadyStartedError"
|
const TRANSACTION_STARTED = "TransactionAlreadyStartedError"
|
||||||
@@ -9,8 +11,8 @@ const INVALID_REQUEST_ERROR = "invalid_request_error"
|
|||||||
const INVALID_STATE_ERROR = "invalid_state_error"
|
const INVALID_STATE_ERROR = "invalid_state_error"
|
||||||
|
|
||||||
export default () => {
|
export default () => {
|
||||||
return (err, req, res, next) => {
|
return (err: MedusaError, req: Request, res: Response, next: NextFunction) => {
|
||||||
const logger = req.scope.resolve("logger")
|
const logger: Logger = req.scope.resolve("logger")
|
||||||
logger.error(err)
|
logger.error(err)
|
||||||
|
|
||||||
const errorType = err.type || err.name
|
const errorType = err.type || err.name
|
||||||
File renamed without changes.
@@ -1,16 +0,0 @@
|
|||||||
export default () => {
|
|
||||||
return (req, res, next) => {
|
|
||||||
const clean = Object.entries(req.query).reduce((acc, [key, val]) => {
|
|
||||||
if (Array.isArray(val) && val.length === 1) {
|
|
||||||
acc[key] = val[0].split(",")
|
|
||||||
} else {
|
|
||||||
acc[key] = val
|
|
||||||
}
|
|
||||||
return acc
|
|
||||||
}, {})
|
|
||||||
|
|
||||||
req.query = clean
|
|
||||||
|
|
||||||
next()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
import { NextFunction, Request, Response } from "express"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Normalize an input query, especially from array like query params to an array type
|
||||||
|
* e.g: /admin/orders/?fields[]=id,status,cart_id becomes { fields: ["id", "status", "cart_id"] }
|
||||||
|
*/
|
||||||
|
export default (): ((
|
||||||
|
req: Request,
|
||||||
|
res: Response,
|
||||||
|
next: NextFunction
|
||||||
|
) => void) => {
|
||||||
|
return (req: Request, res: Response, next: NextFunction): void => {
|
||||||
|
req.query = Object.entries(req.query).reduce((acc, [key, val]) => {
|
||||||
|
if (Array.isArray(val) && val.length === 1) {
|
||||||
|
acc[key] = (val as string[])[0].split(",")
|
||||||
|
} else {
|
||||||
|
acc[key] = val
|
||||||
|
}
|
||||||
|
return acc
|
||||||
|
}, {})
|
||||||
|
|
||||||
|
next()
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in new issue
Block a user