etc
This commit is contained in:
parent
df10328d55
commit
46031a5fd2
12
package.json
12
package.json
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "axp-server",
|
"name": "axp-server",
|
||||||
"version": "1.4.12",
|
"version": "1.4.13",
|
||||||
"description": "My helper library",
|
"description": "My helper library",
|
||||||
"author": "AntoXa PRO <info@antoxa.pro>",
|
"author": "AntoXa PRO <info@antoxa.pro>",
|
||||||
"homepage": "https://antoxahub.ru/antoxa/axp-server",
|
"homepage": "https://antoxahub.ru/antoxa/axp-server",
|
||||||
@ -20,16 +20,16 @@
|
|||||||
"prepare": "npm run build"
|
"prepare": "npm run build"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axp-ts": "^1.9.6",
|
"axp-ts": "^1.9.10",
|
||||||
"dotenv": "^16.3.1",
|
"dotenv": "^16.3.1",
|
||||||
"express": "^4.18.2",
|
"express": "^4.18.2",
|
||||||
"mongoose": "^6.11.2"
|
"mongoose": "^6.12.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@rollup/plugin-typescript": "^11.1.2",
|
"@rollup/plugin-typescript": "^11.1.3",
|
||||||
"@types/express": "^4.17.17",
|
"@types/express": "^4.17.17",
|
||||||
"prettier": "^2.8.8",
|
"prettier": "^2.8.8",
|
||||||
"rollup": "^3.26.2",
|
"rollup": "^3.29.2",
|
||||||
"tslib": "^2.6.0"
|
"tslib": "^2.6.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,7 @@ import { api404Handler, resultHandler } from './core/handlers'
|
|||||||
export default async (
|
export default async (
|
||||||
modules: (typeof AppModule)[] = []
|
modules: (typeof AppModule)[] = []
|
||||||
): Promise<Express> => {
|
): Promise<Express> => {
|
||||||
|
|
||||||
// Express.
|
// Express.
|
||||||
const app = express()
|
const app = express()
|
||||||
const apiRouter = Router()
|
const apiRouter = Router()
|
||||||
|
@ -3,6 +3,7 @@ import { DataResultEntity } from 'axp-ts'
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Базовый контроллер.
|
* Базовый контроллер.
|
||||||
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
export class BaseController {
|
export class BaseController {
|
||||||
/**
|
/**
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { TNotificationItem } from 'axp-ts'
|
import { NotificationItem, TNotificationItem } from 'axp-ts'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Тип - Http ошибка.
|
* Тип - Http ошибка.
|
||||||
@ -13,15 +13,17 @@ export type THttpError = {
|
|||||||
* Http ошибка.
|
* Http ошибка.
|
||||||
*/
|
*/
|
||||||
export class HttpError implements THttpError {
|
export class HttpError implements THttpError {
|
||||||
status: number = 500
|
status: number
|
||||||
message: string = 'Server Error'
|
message: string
|
||||||
errors: TNotificationItem[] = []
|
errors: TNotificationItem[] = []
|
||||||
|
|
||||||
constructor(args?: { text?: string; code?: string; statusCode?: number }) {
|
constructor(args?: { text?: string; code?: string; statusCode?: number }) {
|
||||||
this.status = args?.statusCode || 500
|
this.status = args?.statusCode || 500
|
||||||
this.message = this.getStatusMessage(this.status)
|
this.message = this.getStatusMessage(this.status)
|
||||||
if (args?.text) {
|
if (args?.text) {
|
||||||
this.errors.push({ code: args.code || 'error', text: args.text })
|
this.errors.push(
|
||||||
|
new NotificationItem({ code: args.code || 'error', text: args.text })
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
import { Request, Response, NextFunction } from 'express'
|
import type { Request, Response, NextFunction } from 'express'
|
||||||
|
import type { IFormModel } from 'axp-ts'
|
||||||
|
|
||||||
import { z } from 'zod'
|
import { z } from 'zod'
|
||||||
import { DataResultEntity } from 'axp-ts'
|
import { DataResultEntity } from 'axp-ts'
|
||||||
|
|
||||||
@ -9,9 +11,9 @@ import { HttpError } from './errors'
|
|||||||
*/
|
*/
|
||||||
export const resultHandler = (
|
export const resultHandler = (
|
||||||
result: any,
|
result: any,
|
||||||
{ }: Request,
|
{}: Request,
|
||||||
res: Response,
|
res: Response,
|
||||||
{ }: NextFunction
|
{}: NextFunction
|
||||||
) => {
|
) => {
|
||||||
const dR = new DataResultEntity()
|
const dR = new DataResultEntity()
|
||||||
|
|
||||||
@ -46,8 +48,8 @@ export const resultHandler = (
|
|||||||
* Обработчик 404 ошибки.
|
* Обработчик 404 ошибки.
|
||||||
*/
|
*/
|
||||||
export const api404Handler = (
|
export const api404Handler = (
|
||||||
{ }: Request,
|
{}: Request,
|
||||||
{ }: Response,
|
{}: Response,
|
||||||
next: NextFunction
|
next: NextFunction
|
||||||
) => {
|
) => {
|
||||||
next(
|
next(
|
||||||
@ -75,10 +77,6 @@ export const zodMiddle =
|
|||||||
(schemas: TZodMiddleArgs) =>
|
(schemas: TZodMiddleArgs) =>
|
||||||
(req: Request, {}: Response, next: NextFunction) => {
|
(req: Request, {}: Response, next: NextFunction) => {
|
||||||
try {
|
try {
|
||||||
// req.params._id = ''
|
|
||||||
// req.body.email = 'test'
|
|
||||||
// console.log(req.body)
|
|
||||||
|
|
||||||
if (schemas.query) req.query = schemas.query.parse(req.query)
|
if (schemas.query) req.query = schemas.query.parse(req.query)
|
||||||
if (schemas.params) req.params = schemas.params.parse(req.params)
|
if (schemas.params) req.params = schemas.params.parse(req.params)
|
||||||
if (schemas.body) req.body = schemas.body.parse(req.body)
|
if (schemas.body) req.body = schemas.body.parse(req.body)
|
||||||
@ -96,3 +94,16 @@ export const zodMiddle =
|
|||||||
next(httpError)
|
next(httpError)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const validFormMiddle =
|
||||||
|
(model: IFormModel<any>) =>
|
||||||
|
(req: Request, {}: Response, next: NextFunction) => {
|
||||||
|
if (model.isValid()) {
|
||||||
|
req.body = model.obj
|
||||||
|
next()
|
||||||
|
} else {
|
||||||
|
const httpError = new HttpError({ statusCode: 400 })
|
||||||
|
httpError.errors = model.errors
|
||||||
|
next(httpError)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user