UNPKG

autumn-js

Version:

Autumn JS Library

43 lines (42 loc) 1.14 kB
"use server"; import { decryptData } from "../../../utils/encryptUtils"; import { handleAuthProvider } from "./handleAuthProvider"; import { getAuthPlugin } from "./authPlugin"; const noCustomerIdError = () => { return { data: null, error: { message: "Customer ID is required", code: "no_customer_id" } }; }; const withAuth = ({ fn, withCustomerData = false, requireCustomer = true }) => { return async (args, request) => { let customerId = null; let customerData = args.customerData || void 0; const authConfig = getAuthPlugin(); if (authConfig?.provider) { let result = await handleAuthProvider({ authPlugin: authConfig, withCustomerData }); customerId = result?.customerId; customerData = result?.customerData || void 0; } else { let encryptedCustomerId = args.encryptedCustomerId; customerId = encryptedCustomerId ? decryptData(encryptedCustomerId) : null; } if (!customerId && requireCustomer) { return noCustomerIdError(); } return fn({ ...args, customerId, customerData }); }; }; export { withAuth };