refactor: monorepo+pnpm (removed husky)
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
import { decodeB64StringToArrayBuffer } from "../utils/b64"
|
||||
import { settingsStore } from "~/newstore/settings"
|
||||
|
||||
export const hasExtensionInstalled = () =>
|
||||
typeof window.__POSTWOMAN_EXTENSION_HOOK__ !== "undefined"
|
||||
|
||||
export const hasChromeExtensionInstalled = () =>
|
||||
hasExtensionInstalled() &&
|
||||
/Chrome/i.test(navigator.userAgent) &&
|
||||
/Google/i.test(navigator.vendor)
|
||||
|
||||
export const hasFirefoxExtensionInstalled = () =>
|
||||
hasExtensionInstalled() && /Firefox/i.test(navigator.userAgent)
|
||||
|
||||
export const cancelRunningExtensionRequest = () => {
|
||||
if (
|
||||
hasExtensionInstalled() &&
|
||||
window.__POSTWOMAN_EXTENSION_HOOK__.cancelRunningRequest
|
||||
) {
|
||||
window.__POSTWOMAN_EXTENSION_HOOK__.cancelRunningRequest()
|
||||
}
|
||||
}
|
||||
|
||||
const extensionWithProxy = async (req) => {
|
||||
const backupTimeDataStart = new Date().getTime()
|
||||
|
||||
const res = await window.__POSTWOMAN_EXTENSION_HOOK__.sendRequest({
|
||||
method: "post",
|
||||
url: settingsStore.value.PROXY_URL || "https://proxy.hoppscotch.io/",
|
||||
data: {
|
||||
...req,
|
||||
wantsBinary: true,
|
||||
},
|
||||
})
|
||||
|
||||
const backupTimeDataEnd = new Date().getTime()
|
||||
|
||||
const parsedData = JSON.parse(res.data)
|
||||
|
||||
if (!parsedData.success) {
|
||||
throw new Error(parsedData.data.message || "Proxy Error")
|
||||
}
|
||||
|
||||
if (parsedData.isBinary) {
|
||||
parsedData.data = decodeB64StringToArrayBuffer(parsedData.data)
|
||||
}
|
||||
|
||||
if (!(res && res.config && res.config.timeData)) {
|
||||
res.config = {
|
||||
timeData: {
|
||||
startTime: backupTimeDataStart,
|
||||
endTime: backupTimeDataEnd,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
parsedData.config = res.config
|
||||
|
||||
return parsedData
|
||||
}
|
||||
|
||||
const extensionWithoutProxy = async (req) => {
|
||||
const backupTimeDataStart = new Date().getTime()
|
||||
|
||||
const res = await window.__POSTWOMAN_EXTENSION_HOOK__.sendRequest({
|
||||
...req,
|
||||
wantsBinary: true,
|
||||
})
|
||||
|
||||
const backupTimeDataEnd = new Date().getTime()
|
||||
|
||||
if (!(res && res.config && res.config.timeData)) {
|
||||
res.config = {
|
||||
timeData: {
|
||||
startTime: backupTimeDataStart,
|
||||
endTime: backupTimeDataEnd,
|
||||
},
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
const extensionStrategy = (req) => {
|
||||
if (settingsStore.value.PROXY_ENABLED) {
|
||||
return extensionWithProxy(req)
|
||||
}
|
||||
return extensionWithoutProxy(req)
|
||||
}
|
||||
|
||||
export default extensionStrategy
|
||||
Reference in New Issue
Block a user