@johntad/m-pesa
Version:
A TypeScript SDK for integrating M-Pesa mobile payment services into applications, enabling seamless money transfers and transactions.
75 lines (74 loc) • 2.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ApiError = exports.RegisterUrlError = exports.B2CError = exports.StkPushError = exports.AuthenticationError = exports.MPesaError = void 0;
class MPesaError extends Error {
constructor(message, name = 'MPesaError') {
super(message);
this.name = name;
Object.setPrototypeOf(this, new.target.prototype); // Restore prototype chain
}
}
exports.MPesaError = MPesaError;
class AuthenticationError extends MPesaError {
constructor(message, code) {
super(message, 'AuthenticationError');
this.code = code;
}
}
exports.AuthenticationError = AuthenticationError;
class StkPushError extends MPesaError {
constructor(message, data) {
super(message, 'StkPushError');
this.data = data;
}
/**
* Returns a formatted error message including details from the response.
* @returns A detailed error message.
*/
getDetails() {
return `STK Push Error: ${this.data.ResponseDescription} (Code: ${this.data.ResponseCode})`;
}
}
exports.StkPushError = StkPushError;
/**
* Represents an error from the B2C Pay Out API.
*/
class B2CError extends MPesaError {
constructor(message, data) {
super(message, 'B2CError');
this.data = data;
}
/**
* Returns a formatted error message including details from the response.
* @returns A detailed error message.
*/
getDetails() {
return `B2C Error: ${this.data.errorMessage} (Code: ${this.data.errorCode})`;
}
}
exports.B2CError = B2CError;
/**
* Represents an error from the Register URL API.
*/
class RegisterUrlError extends MPesaError {
constructor(message, data) {
super(message, 'RegisterUrlError');
this.data = {
responseCode: data.responseCode,
responseMessage: data.responseMessage,
customerMessage: data.customerMessage,
timestamp: data.timestamp,
};
}
/**
* Returns a formatted error message including details from the response.
* @returns A detailed error message.
*/
getDetails() {
return `Register URL Error: ${this.data.responseMessage} (Code: ${this.data.responseCode})`;
}
}
exports.RegisterUrlError = RegisterUrlError;
class ApiError extends MPesaError {
}
exports.ApiError = ApiError;