import { CustomError } from "ts-custom-error" ; export interface ITkeyError extends CustomError { name : string ; code : number ; message : string ; toString ( ) : string ; } export type ErrorCodes = { [ key ] : string ; } ; export abstract class TkeyError extends CustomError implements ITkeyError { code : number ; message : string ; public constructor ( code ? , message ? ) { super ( message ) ; this . code = code ; this . message = message || "" ; Object . defineProperty ( this , "name" , { value : "TkeyError" } ) ; } toJSON ( ) { return { name : this . name , code : this . code , message : this . message , } ; } toString ( ) { return JSON . stringify ( this . toJSON ( ) ) ; } }