@intrig/core 0.0.14-4 → 0.0.14-6

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.
Files changed (2) hide show
  1. package/main.js +30 -5
  2. package/package.json +1 -1
package/main.js CHANGED
@@ -7078,10 +7078,7 @@ function packageJson_template_packageJsonTemplate(_path) {
7078
7078
 
7079
7079
  function provider_template_providerTemplate(_path, apisToSync) {
7080
7080
  const axiosConfigs = apisToSync.map((a)=>`
7081
- ${a.id}: axios.create({
7082
- ...(configs.defaults ?? {}),
7083
- ...(configs['${a.id}'] ?? {}),
7084
- }),
7081
+ ${a.id}: createAxiosInstance(configs.defaults, configs['${a.id}']),
7085
7082
  `).join("\n");
7086
7083
  const ts = typescript(external_path_namespaceObject.resolve(_path, "src", "intrig-provider.tsx"));
7087
7084
  return ts`
@@ -7112,8 +7109,10 @@ import {
7112
7109
  import axios, {
7113
7110
  Axios,
7114
7111
  AxiosProgressEvent,
7115
- AxiosRequestConfig,
7112
+ AxiosRequestConfig,
7113
+ AxiosResponse,
7116
7114
  CreateAxiosDefaults,
7115
+ InternalAxiosRequestConfig,
7117
7116
  isAxiosError,
7118
7117
  } from 'axios';
7119
7118
  import { ZodSchema } from 'zod';
@@ -7142,6 +7141,10 @@ function requestReducer(
7142
7141
 
7143
7142
  export interface DefaultConfigs extends CreateAxiosDefaults {
7144
7143
  debounceDelay?: number;
7144
+ requestInterceptor?: (
7145
+ config: InternalAxiosRequestConfig,
7146
+ ) => Promise<InternalAxiosRequestConfig>;
7147
+ responseInterceptor?: (config: AxiosResponse<any>) => Promise<AxiosResponse<any>>;
7145
7148
  }
7146
7149
 
7147
7150
  export interface IntrigProviderProps {
@@ -7149,6 +7152,28 @@ export interface IntrigProviderProps {
7149
7152
  children: React.ReactNode;
7150
7153
  }
7151
7154
 
7155
+ function createAxiosInstance(defaultConfig?: DefaultConfigs, config?: DefaultConfigs) {
7156
+ const axiosInstance = axios.create({
7157
+ ...defaultConfig ?? {},
7158
+ ...config ?? {},
7159
+ });
7160
+ async function requestInterceptor(cfg: InternalAxiosRequestConfig) {
7161
+ let intermediate = await defaultConfig?.requestInterceptor?.(cfg) ?? cfg;
7162
+ return config?.requestInterceptor?.(intermediate) ?? intermediate;
7163
+ }
7164
+
7165
+ async function responseInterceptor(cfg: AxiosResponse<any>) {
7166
+ let intermediate = await defaultConfig?.responseInterceptor?.(cfg) ?? cfg;
7167
+ return config?.responseInterceptor?.(intermediate) ?? intermediate;
7168
+ }
7169
+
7170
+ axiosInstance.interceptors.request.use(requestInterceptor)
7171
+ axiosInstance.interceptors.response.use(responseInterceptor, (error) => {
7172
+ return Promise.reject(error);
7173
+ })
7174
+ return axiosInstance;
7175
+ }
7176
+
7152
7177
  /**
7153
7178
  * IntrigProvider is a context provider component that sets up global state management
7154
7179
  * and provides Axios instances for API requests.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intrig/core",
3
- "version": "0.0.14-4",
3
+ "version": "0.0.14-6",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "bin": {