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
JavaScript
;
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