51 lines
1.3 KiB
JavaScript
51 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;
|