UNPKG

@rebilly/framepay-react

Version:

A React wrapper for Rebilly's FramePay offering out-of-the-box support for Redux and other common React features

63 lines (56 loc) 1.76 kB
export const ERROR_CODES = { elementMountError: 'element-mount-error', initializeError: 'initialize-error', remoteScriptError: 'remote-script-error', } as ErrorCodes; export const defaultErrorMessages = { [ERROR_CODES.remoteScriptError]: "Can't load the FramePay remote script", [ERROR_CODES.elementMountError]: "Can't mount the element component", [ERROR_CODES.initializeError]: ` FramePay initialize error\r\n See https://github.com/Rebilly/framepay-react/tree/alpha#the-framepay-context-framepayprovider\r\n See https://www.rebilly.com/docs/dev-docs/framepay-global-reference/#framepay.initialize`, } as DefaultErrorMessages; class ErrorBuilder { make({ code, details, trace, }: { readonly code: FramePayErrorCode; readonly details: string; // eslint-disable-next-line @typescript-eslint/no-explicit-any readonly trace: any; }): { readonly code: FramePayErrorCode; readonly details: string; readonly message: DefaultErrorMessage; // eslint-disable-next-line @typescript-eslint/no-explicit-any readonly trace: any; } { return { code, details, message: defaultErrorMessages[code], trace: trace || null, }; } } const handler = new ErrorBuilder(); const FramePayError = ({ code, details = '', trace = '', }: { readonly code: FramePayErrorCode; readonly details?: string; // eslint-disable-next-line @typescript-eslint/no-explicit-any readonly trace?: any; }) => handler.make({ code, details, trace, }); FramePayError.codes = ERROR_CODES; export default FramePayError;