Files
hoppscotch/functions/strategies/FirefoxStrategy.js
2020-02-24 13:44:50 -05:00

47 lines
1.3 KiB
JavaScript

const firefoxWithProxy = (req, { state }) =>
new Promise((resolve, reject) => {
const eventListener = event => {
window.removeEventListener('firefoxExtSendRequestComplete', event)
if (event.detail.error) {
reject(JSON.parse(event.detail.error))
} else {
resolve(JSON.parse(event.detail.response).data)
}
}
window.addEventListener('firefoxExtSendRequestComplete', eventListener)
window.firefoxExtSendRequest({
method: 'post',
url: state.postwoman.settings.PROXY_URL || 'https://postwoman.apollotv.xyz/',
data: req,
})
})
const firefoxWithoutProxy = (req, _store) =>
new Promise((resolve, reject) => {
const eventListener = ({ detail }) => {
window.removeEventListener('firefoxExtSendRequestComplete', eventListener)
if (detail.error) {
reject(JSON.parse(detail.error))
} else {
resolve(JSON.parse(detail.response))
}
}
window.addEventListener('firefoxExtSendRequestComplete', eventListener)
window.firefoxExtSendRequest(req)
})
const firefoxStrategy = (req, store) => {
if (store.state.postwoman.settings.PROXY_ENABLED) {
return firefoxWithProxy(req, store)
}
return firefoxWithoutProxy(req, store)
}
export default firefoxStrategy