[Snow Team] core-infra: auto-commit work
This commit is contained in:
@@ -207,3 +207,42 @@ function formatResponseDateTime(value) {
|
||||
|
||||
return `${tokens.year}-${tokens.month}-${tokens.day} ${tokens.hour}:${tokens.minute}:${tokens.second}`
|
||||
}
|
||||
|
||||
type RouteHandlerOptions = {
|
||||
successMessage?: string
|
||||
errorMessage?: string
|
||||
scope?: string
|
||||
}
|
||||
|
||||
type RouteFileHandlerOptions = {
|
||||
errorMessage?: string
|
||||
scope?: string
|
||||
}
|
||||
|
||||
export function createRouteHandler(
|
||||
action: (req: any, res: any) => unknown | Promise<unknown>,
|
||||
{ successMessage = 'ok', errorMessage, scope }: RouteHandlerOptions = {},
|
||||
) {
|
||||
return async (req, res) => {
|
||||
try {
|
||||
const data = await action(req, res)
|
||||
res.json(buildSuccessPayload(data, successMessage))
|
||||
} catch (error) {
|
||||
sendRouteError(res, error, errorMessage, scope)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export function createRouteFileHandler(
|
||||
action: (req: any, res: any) => string | Promise<string>,
|
||||
{ errorMessage, scope }: RouteFileHandlerOptions = {},
|
||||
) {
|
||||
return async (req, res) => {
|
||||
try {
|
||||
const filePath = await action(req, res)
|
||||
res.sendFile(filePath)
|
||||
} catch (error) {
|
||||
sendRouteError(res, error, errorMessage, scope)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user