♻️ Refactor

This commit is contained in:
Liyas Thomas
2020-01-19 12:37:19 +05:30
parent d9feffa630
commit 5458debe35
6 changed files with 53 additions and 51 deletions

View File

@@ -69,8 +69,8 @@ _Customized themes are synced with local session storage_
- Instant loading with [Service Workers](https://developers.google.com/web/fundamentals/primers/service-workers) - Instant loading with [Service Workers](https://developers.google.com/web/fundamentals/primers/service-workers)
- Offline support - Offline support
- Low RAM/memory and CPU usage - Low RAM/memory and CPU usage
- [Add to Home Screen](https://developers.google.com/web/fundamentals/app-install-banners) (button in footer) - Add to Home Screen
- [Desktop PWA](https://developers.google.com/web/progressive-web-apps/desktop) support (button in footer) - Desktop PWA
- ([full features](https://developers.google.com/web/progressive-web-apps)) - ([full features](https://developers.google.com/web/progressive-web-apps))
🚀 **Request**: Retrieve response from endpoint instantly. 🚀 **Request**: Retrieve response from endpoint instantly.

View File

@@ -7,9 +7,8 @@ const DEFAULT_THEME = "twilight";
import ace from "ace-builds"; import ace from "ace-builds";
import * as gql from "graphql"; import * as gql from "graphql";
import "ace-builds/webpack-resolver"; import "ace-builds/webpack-resolver";
import debounce from '../../functions/utils/debounce'; import debounce from "../../functions/utils/debounce";
export default { export default {
props: { props: {
@@ -71,9 +70,7 @@ export default {
editor.on("change", () => { editor.on("change", () => {
const content = editor.getValue(); const content = editor.getValue();
this.$emit("input", content); this.$emit("input", content);
this.parseContents(content);
this.parseContents(content)
this.cacheValue = content; this.cacheValue = content;
}); });
@@ -91,16 +88,18 @@ export default {
} }
}, },
parseContents: debounce(function (content) { parseContents: debounce(function(content) {
try { try {
gql.parse(content); gql.parse(content);
} catch (e) { } catch (e) {
this.editor.session.setAnnotations([{ this.editor.session.setAnnotations([
row: e.locations[0].line - 1, {
column: e.locations[0].column - 1, row: e.locations[0].line - 1,
text: e.message, column: e.locations[0].column - 1,
type: "error" text: e.message,
}]); type: "error"
}
]);
} }
}, 2000) }, 2000)
}, },

View File

@@ -1,13 +1,12 @@
import axios from "axios"; import axios from "axios";
const axiosWithProxy = async (req, store) => { const axiosWithProxy = async (req, { state }) => {
const { data } = await axios.post( const { data } = await axios.post(
store.state.postwoman.settings.PROXY_URL || state.postwoman.settings.PROXY_URL || "https://postwoman.apollotv.xyz/",
"https://postwoman.apollotv.xyz/",
req req
); );
return data; return data;
} };
const axiosWithoutProxy = async (req, _store) => { const axiosWithoutProxy = async (req, _store) => {
const res = await axios(req); const res = await axios(req);
@@ -19,6 +18,6 @@ const axiosStrategy = (req, store) => {
return axiosWithProxy(req, store); return axiosWithProxy(req, store);
} }
return axiosWithoutProxy(req, store); return axiosWithoutProxy(req, store);
} };
export default axiosStrategy; export default axiosStrategy;

View File

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

View File

@@ -619,8 +619,7 @@ export default {
showExtensions: false, showExtensions: false,
showShortcuts: false, showShortcuts: false,
showSupport: false, showSupport: false,
firefoxExtInstalled: firefoxExtInstalled: window.firefoxExtSendRequest,
window.firefoxExtSendRequest !== undefined ? true : false,
chromeExtInstalled: false chromeExtInstalled: false
}; };
}, },

View File

@@ -820,7 +820,7 @@ export default {
}); });
} catch (error) { } catch (error) {
this.$nuxt.$loading.finish(); this.$nuxt.$loading.finish();
this.schemaString = `${error}. ${check_console_details}`; this.schemaString = `${error}. ${this.$t("check_console_details")}`;
this.$toast.error(`${error} ${this.$t("f12_details")}`, { this.$toast.error(`${error} ${this.$t("f12_details")}`, {
icon: "error" icon: "error"
}); });