UNPKG

pesapal-node-sdk

Version:

Node.js SDK for integrating with Pesapal payment gateway. Provides a simple interface for processing payments, checking status, and handling callbacks.

57 lines 2.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PesapalConfigError = exports.paymentService = exports.initializePesapal = exports.isInitialized = exports.getPesapalService = exports.initialize = exports._resetSingleton = void 0; const pesapal_1 = require("./pesapal"); Object.defineProperty(exports, "PesapalConfigError", { enumerable: true, get: function () { return pesapal_1.PesapalConfigError; } }); // Singleton instance let _pesapalInstance = null; // For testing purposes const _resetSingleton = () => { _pesapalInstance = null; _defaultInstance = null; }; exports._resetSingleton = _resetSingleton; /** * Initialize the Pesapal SDK singleton with configuration * @param config Optional configuration overrides * @returns PaymentService singleton instance * @throws PesapalConfigError if configuration is invalid */ const initialize = (config) => { _pesapalInstance = (0, pesapal_1.initializePesapal)(config); return _pesapalInstance; }; exports.initialize = initialize; /** * Get the initialized Pesapal service instance * @returns PaymentService instance * @throws Error if not initialized */ const getPesapalService = () => { if (!_pesapalInstance) { throw new Error('Pesapal SDK not initialized. Call initialize() first.'); } return _pesapalInstance; }; exports.getPesapalService = getPesapalService; /** * Check if Pesapal SDK has been initialized * @returns boolean indicating if SDK is initialized */ const isInitialized = () => { return _pesapalInstance !== null; }; exports.isInitialized = isInitialized; // Backward compatibility exports exports.initializePesapal = pesapal_1.initializePesapal; // Default instance for backward compatibility (lazy-loaded) let _defaultInstance = null; exports.paymentService = new Proxy({}, { get(target, prop) { if (!_defaultInstance) { _defaultInstance = _pesapalInstance || (0, pesapal_1.initializePesapal)(); } return _defaultInstance[prop]; } }); //# sourceMappingURL=index.js.map