58 lines
1.5 KiB
TypeScript
58 lines
1.5 KiB
TypeScript
/**
|
|
* @typedef MedusaErrorType
|
|
*
|
|
*/
|
|
export const MedusaErrorTypes = {
|
|
/** Errors stemming from the database */
|
|
DB_ERROR: "database_error",
|
|
DUPLICATE_ERROR: "duplicate_error",
|
|
INVALID_ARGUMENT: "invalid_argument",
|
|
INVALID_DATA: "invalid_data",
|
|
UNAUTHORIZED: "unauthorized",
|
|
NOT_FOUND: "not_found",
|
|
NOT_ALLOWED: "not_allowed",
|
|
UNEXPECTED_STATE: "unexpected_state",
|
|
CONFLICT: "conflict",
|
|
PAYMENT_AUTHORIZATION_ERROR: "payment_authorization_error",
|
|
}
|
|
|
|
export const MedusaErrorCodes = {
|
|
INSUFFICIENT_INVENTORY: "insufficient_inventory",
|
|
CART_INCOMPATIBLE_STATE: "cart_incompatible_state",
|
|
}
|
|
|
|
/**
|
|
* Standardized error to be used across Medusa project.
|
|
* @extends Error
|
|
*/
|
|
class MedusaError extends Error {
|
|
public type: string
|
|
public message: string
|
|
public code?: string
|
|
public date: Date
|
|
public static Types = MedusaErrorTypes
|
|
public static Codes = MedusaErrorCodes
|
|
|
|
/**
|
|
* Creates a standardized error to be used across Medusa project.
|
|
* @param {string} type - type of error
|
|
* @param {string} message - message to go along with error
|
|
* @param {string} code - code of error
|
|
* @param {Array} params - params
|
|
*/
|
|
constructor(type: string, message: string, code?: string, ...params: any) {
|
|
super(...params)
|
|
|
|
if (Error.captureStackTrace) {
|
|
Error.captureStackTrace(this, MedusaError)
|
|
}
|
|
|
|
this.type = type
|
|
this.code = code
|
|
this.message = message
|
|
this.date = new Date()
|
|
}
|
|
}
|
|
|
|
export default MedusaError
|