@exyconn/common 2.3.3 → 2.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -2122,7 +2122,9 @@ __export(client_exports, {
2122
2122
  camelToKebab: () => camelToKebab,
2123
2123
  capitalize: () => capitalize,
2124
2124
  capitalizeWords: () => capitalizeWords,
2125
+ clearCustomHeaders: () => clearCustomHeaders,
2125
2126
  clientLogger: () => clientLogger,
2127
+ configureHttp: () => configureHttp,
2126
2128
  contactFormSchema: () => contactFormSchema,
2127
2129
  copyToClipboard: () => copyToClipboard,
2128
2130
  createClientLogger: () => createClientLogger,
@@ -2157,8 +2159,12 @@ __export(client_exports, {
2157
2159
  generateSlug: () => generateSlug,
2158
2160
  generateSnakeSlug: () => generateSnakeSlug,
2159
2161
  generateUrlSlug: () => generateUrlSlug,
2162
+ getApiBaseUrl: () => getApiBaseUrl,
2163
+ getApiPrefix: () => getApiPrefix,
2160
2164
  getContrastColor: () => getContrastColor,
2165
+ getCustomHeaders: () => getCustomHeaders,
2161
2166
  getErrorMessage: () => getErrorMessage,
2167
+ getHttpConfig: () => getHttpConfig,
2162
2168
  getNextPage: () => getNextPage,
2163
2169
  getPrevPage: () => getPrevPage,
2164
2170
  getRequest: () => getRequest,
@@ -2193,9 +2199,15 @@ __export(client_exports, {
2193
2199
  putRequest: () => putRequest,
2194
2200
  registerFormSchema: () => registerFormSchema,
2195
2201
  removeCssVars: () => removeCssVars,
2202
+ removeCustomHeader: () => removeCustomHeader,
2203
+ resetHttpConfig: () => resetHttpConfig,
2196
2204
  resolveThemeMode: () => resolveThemeMode,
2197
2205
  safeJsonParse: () => safeJsonParse,
2198
2206
  saveThemeMode: () => saveThemeMode,
2207
+ setApiBaseUrl: () => setApiBaseUrl,
2208
+ setApiPrefix: () => setApiPrefix,
2209
+ setCustomHeader: () => setCustomHeader,
2210
+ setCustomHeaders: () => setCustomHeaders,
2199
2211
  simpleMetaParseResponse: () => simpleMetaParseResponse,
2200
2212
  simpleParseDualDataResponse: () => simpleParseDualDataResponse,
2201
2213
  simpleParseResponse: () => simpleParseResponse,
@@ -2608,17 +2620,97 @@ var simpleParseDualDataResponse = (response) => {
2608
2620
  };
2609
2621
 
2610
2622
  // src/client/http/http.ts
2611
- var isDevelopment2 = typeof window !== "undefined" && window.location.hostname === "localhost";
2612
- var API_BASE_URL = isDevelopment2 ? "http://localhost:4002" : "https://service-api.exyconn.com";
2613
- var API_PREFIX = "/v1/api";
2614
- var axiosInstance = axios.create({
2615
- baseURL: API_BASE_URL,
2623
+ var defaultConfig2 = {
2624
+ baseUrl: typeof window !== "undefined" && window.location.hostname === "localhost" ? "http://localhost:4002" : "https://service-api.exyconn.com",
2625
+ apiPrefix: "/v1/api",
2616
2626
  timeout: 3e4,
2617
- // 30 seconds
2627
+ defaultHeaders: {}
2628
+ };
2629
+ var currentConfig = { ...defaultConfig2 };
2630
+ var axiosInstance = axios.create({
2631
+ baseURL: defaultConfig2.baseUrl,
2632
+ timeout: defaultConfig2.timeout,
2618
2633
  headers: {
2619
2634
  "Content-Type": "application/json"
2620
2635
  }
2621
2636
  });
2637
+ var getApiBaseUrl = () => {
2638
+ return currentConfig.baseUrl || defaultConfig2.baseUrl;
2639
+ };
2640
+ var setApiBaseUrl = (baseUrl) => {
2641
+ currentConfig.baseUrl = baseUrl;
2642
+ axiosInstance.defaults.baseURL = baseUrl;
2643
+ logger2.info(`API Base URL updated to: ${baseUrl}`);
2644
+ };
2645
+ var getApiPrefix = () => {
2646
+ return currentConfig.apiPrefix || defaultConfig2.apiPrefix;
2647
+ };
2648
+ var setApiPrefix = (prefix) => {
2649
+ currentConfig.apiPrefix = prefix;
2650
+ logger2.info(`API Prefix updated to: ${prefix}`);
2651
+ };
2652
+ var getCustomHeaders = () => {
2653
+ return { ...currentConfig.defaultHeaders };
2654
+ };
2655
+ var setCustomHeader = (key, value) => {
2656
+ if (!currentConfig.defaultHeaders) {
2657
+ currentConfig.defaultHeaders = {};
2658
+ }
2659
+ currentConfig.defaultHeaders[key] = value;
2660
+ axiosInstance.defaults.headers.common[key] = value;
2661
+ logger2.info(`Custom header added: ${key}`);
2662
+ };
2663
+ var removeCustomHeader = (key) => {
2664
+ if (currentConfig.defaultHeaders) {
2665
+ delete currentConfig.defaultHeaders[key];
2666
+ }
2667
+ delete axiosInstance.defaults.headers.common[key];
2668
+ logger2.info(`Custom header removed: ${key}`);
2669
+ };
2670
+ var setCustomHeaders = (headers) => {
2671
+ currentConfig.defaultHeaders = { ...currentConfig.defaultHeaders, ...headers };
2672
+ Object.entries(headers).forEach(([key, value]) => {
2673
+ axiosInstance.defaults.headers.common[key] = value;
2674
+ });
2675
+ logger2.info(`Multiple custom headers added: ${Object.keys(headers).join(", ")}`);
2676
+ };
2677
+ var clearCustomHeaders = () => {
2678
+ if (currentConfig.defaultHeaders) {
2679
+ Object.keys(currentConfig.defaultHeaders).forEach((key) => {
2680
+ delete axiosInstance.defaults.headers.common[key];
2681
+ });
2682
+ }
2683
+ currentConfig.defaultHeaders = {};
2684
+ logger2.info("All custom headers cleared");
2685
+ };
2686
+ var configureHttp = (config) => {
2687
+ if (config.baseUrl) {
2688
+ setApiBaseUrl(config.baseUrl);
2689
+ }
2690
+ if (config.apiPrefix) {
2691
+ setApiPrefix(config.apiPrefix);
2692
+ }
2693
+ if (config.timeout !== void 0) {
2694
+ currentConfig.timeout = config.timeout;
2695
+ axiosInstance.defaults.timeout = config.timeout;
2696
+ }
2697
+ if (config.defaultHeaders) {
2698
+ setCustomHeaders(config.defaultHeaders);
2699
+ }
2700
+ logger2.info("HTTP client configured successfully");
2701
+ };
2702
+ var getHttpConfig = () => {
2703
+ return { ...currentConfig };
2704
+ };
2705
+ var resetHttpConfig = () => {
2706
+ currentConfig = { ...defaultConfig2 };
2707
+ axiosInstance.defaults.baseURL = defaultConfig2.baseUrl;
2708
+ axiosInstance.defaults.timeout = defaultConfig2.timeout;
2709
+ clearCustomHeaders();
2710
+ logger2.info("HTTP configuration reset to defaults");
2711
+ };
2712
+ var API_BASE_URL = getApiBaseUrl();
2713
+ var API_PREFIX = getApiPrefix();
2622
2714
  axiosInstance.interceptors.request.use(
2623
2715
  (config) => {
2624
2716
  try {
@@ -2651,7 +2743,10 @@ axiosInstance.interceptors.response.use(
2651
2743
  var buildHeaders = (customHeaders) => {
2652
2744
  const headers = {
2653
2745
  "Content-Type": "application/json",
2746
+ ...currentConfig.defaultHeaders,
2747
+ // Add global custom headers
2654
2748
  ...customHeaders
2749
+ // Request-specific headers override global ones
2655
2750
  };
2656
2751
  return headers;
2657
2752
  };