@@ -15,7 +15,7 @@ import {
1515 runResponseInterceptors ,
1616 runErrorInterceptors ,
1717} from './features/interceptors.js'
18- import { clearCache } from './features/cache.js'
18+ import { clearCache , invalidateCache } from './features/cache.js'
1919
2020function createInstance ( initialDefaults : HurlDefaults = { } ) : HurlInstance {
2121 let defaults : HurlDefaults = { ...initialDefaults }
@@ -119,11 +119,17 @@ function createInstance(initialDefaults: HurlDefaults = {}): HurlInstance {
119119 } ,
120120
121121 create ( newDefaults ?: HurlDefaults ) {
122- return createInstance ( { ...defaults , ...newDefaults } )
122+ const child = createInstance ( { ...defaults , ...newDefaults } )
123+ return child
123124 } ,
124125
125126 extend ( newDefaults ?: HurlDefaults ) {
126- return createInstance ( { ...defaults , ...newDefaults } )
127+ const child = createInstance ( { ...defaults , ...newDefaults } )
128+ // Inherit parent interceptors into the child instance
129+ requestInterceptors . getAll ( ) . forEach ( fn => child . interceptors . request . use ( fn ) )
130+ responseInterceptors . getAll ( ) . forEach ( fn => child . interceptors . response . use ( fn ) )
131+ errorInterceptors . getAll ( ) . forEach ( fn => child . interceptors . error . use ( fn ) )
132+ return child
127133 } ,
128134 }
129135
@@ -133,7 +139,7 @@ function createInstance(initialDefaults: HurlDefaults = {}): HurlInstance {
133139const hurl = createInstance ( )
134140
135141export default hurl
136- export { HurlError , createInstance , clearCache }
142+ export { HurlError , createInstance , clearCache , invalidateCache }
137143export type {
138144 HurlRequestOptions ,
139145 HurlDefaults ,
0 commit comments