JezK
Edit File: razorpay-4c4a3d31.js.map
{"file":"razorpay-4c4a3d31.js","mappings":"AAAA;;;AAGqC;AAOrC;;;;AAKA;;;;;;2CAMyC,UAAE;qCACR,UAAE;;AAGrC;;AAGA;;AAGA;;;AAGA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;6BAyBuB,UAAE;;;;;AAMzB;;;;","names":[],"sources":["src/functions/razorpay.ts"],"sourcesContent":["/**\n * WordPress dependencies.\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies.\n */\nimport { RazorpayConstructor } from '../types';\n\n/**\n * Razorpay Checkout JS SDK URL.\n */\nexport const RAZORPAY_CHECKOUT_SCRIPT_URL = 'https://checkout.razorpay.com/v1/checkout.js';\n\n/**\n * UI metadata for Razorpay `payment_method_types` ids — Razorpay's API returns only the id,\n * so this is the source of truth for icons/labels shown in checkout and on dashboard rows.\n * Keep keys in sync with GET /processors/:id/payment_method_types.\n */\nexport const RAZORPAY_METHOD_META: Record<string, { icon: string; label: () => string }> = {\n card: { icon: 'razorpay', label: () => __('Credit Card', 'surecart') },\n upi: { icon: 'upi', label: () => __('UPI', 'surecart') },\n};\n\n/** Localized label for a Razorpay method id. Returns `undefined` for unknown ids. */\nexport const getRazorpayMethodLabel = (type?: string | null): string | undefined => (type ? RAZORPAY_METHOD_META[type]?.label() : undefined);\n\n/** `sc-icon` name for a Razorpay method id. Falls back to the branded razorpay icon. */\nexport const getRazorpayMethodIcon = (type?: string | null): string => (type && RAZORPAY_METHOD_META[type]?.icon) || 'razorpay';\n\n/**\n * Cached Razorpay instance and load promise for singleton pattern.\n */\nlet razorpayInstance: RazorpayConstructor | null = null;\nlet loadPromise: Promise<RazorpayConstructor> | null = null;\n\n/**\n * Load Razorpay SDK script.\n * Uses singleton pattern to avoid loading the script multiple times.\n *\n * @returns Promise that resolves to the Razorpay constructor.\n */\nexport const loadRazorpay = (): Promise<RazorpayConstructor> => {\n if (razorpayInstance) {\n return Promise.resolve(razorpayInstance);\n }\n\n if (loadPromise) {\n return loadPromise;\n }\n\n loadPromise = new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = RAZORPAY_CHECKOUT_SCRIPT_URL;\n script.async = true;\n script.onload = () => {\n razorpayInstance = (window as any).Razorpay;\n resolve(razorpayInstance);\n };\n script.onerror = () => {\n loadPromise = null; // Reset so it can be retried.\n reject(new Error(__('Failed to load Razorpay script.', 'surecart')));\n };\n document.head.appendChild(script);\n });\n\n return loadPromise;\n};\n"],"version":3}