mirror of
https://github.com/eleith/emailjs.git
synced 2024-07-04 19:58:51 +00:00
58 lines
1.0 KiB
TypeScript
58 lines
1.0 KiB
TypeScript
/**
|
|
* @readonly
|
|
* @enum
|
|
*/
|
|
export const SMTPErrorStates = {
|
|
COULDNOTCONNECT: 1,
|
|
BADRESPONSE: 2,
|
|
AUTHFAILED: 3,
|
|
TIMEDOUT: 4,
|
|
ERROR: 5,
|
|
NOCONNECTION: 6,
|
|
AUTHNOTSUPPORTED: 7,
|
|
CONNECTIONCLOSED: 8,
|
|
CONNECTIONENDED: 9,
|
|
CONNECTIONAUTH: 10,
|
|
} as const;
|
|
|
|
export class SMTPError extends Error {
|
|
public code: number | null = null;
|
|
public smtp: unknown = null;
|
|
public previous: Error | null = null;
|
|
|
|
/**
|
|
* @protected
|
|
* @param {string} message error message
|
|
*/
|
|
protected constructor(message: string) {
|
|
super(message);
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param {string} message error message
|
|
* @param {number} code smtp error state
|
|
* @param {Error | null} error previous error
|
|
* @param {unknown} smtp arbitrary data
|
|
* @returns {SMTPError} error
|
|
*/
|
|
public static create(
|
|
message: string,
|
|
code: number,
|
|
error?: Error | null,
|
|
smtp?: unknown
|
|
) {
|
|
const msg = error?.message ? `${message} (${error.message})` : message;
|
|
const err = new SMTPError(msg);
|
|
|
|
err.code = code;
|
|
err.smtp = smtp;
|
|
|
|
if (error) {
|
|
err.previous = error;
|
|
}
|
|
|
|
return err;
|
|
}
|
|
}
|