Files
hoppscotch/packages/hoppscotch-common/src/modules/interceptors.ts

47 lines
1.3 KiB
TypeScript

import { InterceptorService } from "~/services/interceptor.service"
import { HoppModule } from "."
import { getService } from "./dioc"
import { platform } from "~/platform"
import { watch } from "vue"
import { applySetting } from "~/newstore/settings"
import { useSettingStatic } from "~/composables/settings"
export default <HoppModule>{
onVueAppInit() {
const interceptorService = getService(InterceptorService)
for (const interceptorDef of platform.interceptors.interceptors) {
if (interceptorDef.type === "standalone") {
interceptorService.registerInterceptor(interceptorDef.interceptor)
} else {
const service = getService(interceptorDef.service)
interceptorService.registerInterceptor(service)
}
}
interceptorService.currentInterceptorID.value =
platform.interceptors.default
watch(interceptorService.currentInterceptorID, (id) => {
applySetting(
"CURRENT_INTERCEPTOR_ID",
id ?? platform.interceptors.default
)
})
const [setting] = useSettingStatic("CURRENT_INTERCEPTOR_ID")
watch(
setting,
() => {
interceptorService.currentInterceptorID.value =
setting.value ?? platform.interceptors.default
},
{
immediate: true,
}
)
},
}