import { Middleware } from '@reduxjs/toolkit'; export enum MiddlewareNames { PreOrderValidationMiddleware = 'preOrderValidationMiddleware', RedirectionMiddleware = 'redirectionMiddleware', SetPreOrderMiddleware = 'setPreOrderMiddleware', DeliveryOptionMiddleware = 'deliveryOptionMiddleware', SetAddressMiddleware = 'setAddressMiddleware', ShippingOptionMiddleware = 'shippingOptionMiddleware', DataSourceShippingOptionMiddleware = 'dataSourceShippingOptionMiddleware', AttributeBasedShippingOptionMiddleware = 'attributeBasedShippingOptionMiddleware', PaymentOptionMiddleware = 'paymentOptionMiddleware', PaymentOptionResetMiddleware = 'paymentOptionResetMiddleware', InstallmentOptionMiddleware = 'installmentOptionMiddleware', ShippingStepMiddleware = 'shippingStepMiddleware' } export const overrideMiddleware = ( originalMiddlewares: Middleware[], overrides: Record ): Middleware[] => { return originalMiddlewares.map((middleware) => { const middlewareKey = middleware.name || middleware.toString(); return overrides[middlewareKey] || middleware; }); };