UNPKG

@codingwithmanny/iyzipay-js

Version:
46 lines 1.65 kB
// Imports // ================================= import { apiTest, cardStorage, payment, submerchant } from "../requests"; import * as constants from "../utils/constants"; // Client Setup // ================================= /** * Base setup for client * @param config * @returns */ export const baseClient = (config) => { // Check if sandbox const isSandbox = config.apiKey.includes('sandbox') || config.secretKey.includes('sandbox'); // Handle if config uri is not set const parsedConfig = Object.assign({}, config); if (!parsedConfig.uri) { parsedConfig.uri = isSandbox ? `${constants.apiUrl.SANDBOX}` : `${constants.apiUrl.PRODUCTION}`; } // Create client const client = Object.assign(Object.assign(Object.assign({}, constants), parsedConfig), { isSandbox }); // Allow extending the client function extend(base) { return (extendFn) => { const extended = extendFn(base); for (const key in client) delete extended[key]; const combined = Object.assign(Object.assign({}, base), extended); return Object.assign(combined, { extend: extend(combined) }); }; } // Return extending return Object.assign(client, { extend: extend(client) }); }; /** * Main createClient * @param config * @returns */ export default function createClient(config) { const base = baseClient(config); return Object.assign(Object.assign({}, base), { apiTest: apiTest(base), payment: payment(base), submerchant: submerchant(base), cardStorage: cardStorage(base) }); } //# sourceMappingURL=index.js.map