import isNumber from '@tinkoff/utils/is/number' ; import type { MiddlewareCreator } from '../types' ; export interface Options { logger ? : ( name : string ) => { error : ( data : any ) => void ; } ; } export const error = ( { logger } = { } ) : MiddlewareCreator => { return ( papi ) => { const log = logger ?. ( papi . path ) ; return ( err , req , res , next ) => { if ( res . headersSent ) { return ; } log ?. error ( { error : err , event : 'papiError' , path : papi . path , method : papi . method , } ) ; res . status ( isNumber ( err . status ) ? err . status : 500 ) ; res . json ( { resultCode : 'INTERNAL_ERROR' , errorMessage : 'internal error' , } ) ; } ; } ; } ;