UNPKG

@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
"use strict"; 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;