[feat] now localhost goes plain fetch
This commit is contained in:
@@ -288,146 +288,69 @@ export async function loadData() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const knownHostes = ["localhost","172.0.0.1"]
|
||||||
|
|
||||||
export async function globalFetch(url:string, arg:{body?:any,headers?:{[key:string]:string}, rawResponse?:boolean, method?:"POST"|"GET"}) {
|
export async function globalFetch(url:string, arg:{body?:any,headers?:{[key:string]:string}, rawResponse?:boolean, method?:"POST"|"GET"}) {
|
||||||
const db = get(DataBase)
|
try {
|
||||||
const method = arg.method ?? "POST"
|
const db = get(DataBase)
|
||||||
|
const method = arg.method ?? "POST"
|
||||||
function addFetchLog(response:any, success:boolean){
|
|
||||||
try{
|
function addFetchLog(response:any, success:boolean){
|
||||||
fetchLog.unshift({
|
try{
|
||||||
body: JSON.stringify(arg.body, null, 2),
|
fetchLog.unshift({
|
||||||
header: JSON.stringify(arg.headers ?? {}, null, 2),
|
body: JSON.stringify(arg.body, null, 2),
|
||||||
response: JSON.stringify(response, null, 2),
|
header: JSON.stringify(arg.headers ?? {}, null, 2),
|
||||||
success: success,
|
response: JSON.stringify(response, null, 2),
|
||||||
date: (new Date()).toLocaleTimeString(),
|
success: success,
|
||||||
url: url
|
date: (new Date()).toLocaleTimeString(),
|
||||||
})
|
url: url
|
||||||
}
|
})
|
||||||
catch{
|
|
||||||
fetchLog.unshift({
|
|
||||||
body: JSON.stringify(arg.body, null, 2),
|
|
||||||
header: JSON.stringify(arg.headers ?? {}, null, 2),
|
|
||||||
response: `${response}`,
|
|
||||||
success: success,
|
|
||||||
date: (new Date()).toLocaleTimeString(),
|
|
||||||
url: url
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(db.requestmet === 'proxy'){
|
|
||||||
try {
|
|
||||||
let headers = arg.headers ?? {}
|
|
||||||
if(!headers["Content-Type"]){
|
|
||||||
headers["Content-Type"] = `application/json`
|
|
||||||
}
|
}
|
||||||
const furl = new URL(db.requestproxy)
|
catch{
|
||||||
furl.pathname = url
|
fetchLog.unshift({
|
||||||
|
body: JSON.stringify(arg.body, null, 2),
|
||||||
const da = await fetch(furl, {
|
header: JSON.stringify(arg.headers ?? {}, null, 2),
|
||||||
body: JSON.stringify(arg.body),
|
response: `${response}`,
|
||||||
headers: arg.headers,
|
success: success,
|
||||||
method: method
|
date: (new Date()).toLocaleTimeString(),
|
||||||
})
|
url: url
|
||||||
|
})
|
||||||
if(arg.rawResponse){
|
|
||||||
addFetchLog("Uint8Array Response", da.ok)
|
|
||||||
return {
|
|
||||||
ok: da.ok,
|
|
||||||
data: new Uint8Array(await da.arrayBuffer())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
const dat = await da.json()
|
|
||||||
addFetchLog(dat, da.ok)
|
|
||||||
return {
|
|
||||||
ok: da.ok,
|
|
||||||
data: dat
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (error) {
|
|
||||||
return {
|
|
||||||
ok: false,
|
|
||||||
data: `${error}`,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if(db.requestmet === 'plain'){
|
const urlHost = (new URL(url)).hostname
|
||||||
try {
|
let forcePlainFetch = knownHostes.includes(urlHost)
|
||||||
let headers = arg.headers ?? {}
|
|
||||||
if(!headers["Content-Type"]){
|
if(db.requestmet === 'plain' || forcePlainFetch){
|
||||||
headers["Content-Type"] = `application/json`
|
|
||||||
}
|
|
||||||
const furl = new URL(url)
|
|
||||||
|
|
||||||
const da = await fetch(furl, {
|
|
||||||
body: JSON.stringify(arg.body),
|
|
||||||
headers: arg.headers,
|
|
||||||
method: method
|
|
||||||
})
|
|
||||||
|
|
||||||
if(arg.rawResponse){
|
|
||||||
addFetchLog("Uint8Array Response", da.ok)
|
|
||||||
return {
|
|
||||||
ok: da.ok,
|
|
||||||
data: new Uint8Array(await da.arrayBuffer())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
const dat = await da.json()
|
|
||||||
addFetchLog(dat, da.ok)
|
|
||||||
return {
|
|
||||||
ok: da.ok,
|
|
||||||
data: dat
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (error) {
|
|
||||||
return {
|
|
||||||
ok: false,
|
|
||||||
data: `${error}`,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if(isTauri){
|
|
||||||
if(db.requester === 'new'){
|
|
||||||
try {
|
try {
|
||||||
let preHeader = arg.headers ?? {}
|
let headers = arg.headers ?? {}
|
||||||
preHeader["Content-Type"] = `application/json`
|
if(!headers["Content-Type"]){
|
||||||
const body = JSON.stringify(arg.body)
|
headers["Content-Type"] = `application/json`
|
||||||
const header = JSON.stringify(preHeader)
|
}
|
||||||
const res:string = await invoke('native_request', {url:url, body:body, header:header, method: method})
|
const furl = new URL(url)
|
||||||
const d:{
|
|
||||||
success: boolean
|
const da = await fetch(furl, {
|
||||||
body:string
|
body: JSON.stringify(arg.body),
|
||||||
} = JSON.parse(res)
|
headers: arg.headers,
|
||||||
|
method: method
|
||||||
if(!d.success){
|
})
|
||||||
addFetchLog(Buffer.from(d.body, 'base64').toString('utf-8'), false)
|
|
||||||
|
if(arg.rawResponse){
|
||||||
|
addFetchLog("Uint8Array Response", da.ok)
|
||||||
return {
|
return {
|
||||||
ok:false,
|
ok: da.ok,
|
||||||
data: Buffer.from(d.body, 'base64').toString('utf-8')
|
data: new Uint8Array(await da.arrayBuffer())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
if(arg.rawResponse){
|
const dat = await da.json()
|
||||||
addFetchLog("Uint8Array Response", true)
|
addFetchLog(dat, da.ok)
|
||||||
return {
|
return {
|
||||||
ok:true,
|
ok: da.ok,
|
||||||
data: new Uint8Array(Buffer.from(d.body, 'base64'))
|
data: dat
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else{
|
}
|
||||||
addFetchLog(JSON.parse(Buffer.from(d.body, 'base64').toString('utf-8')), true)
|
|
||||||
return {
|
|
||||||
ok:true,
|
|
||||||
data: JSON.parse(Buffer.from(d.body, 'base64').toString('utf-8'))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
return {
|
return {
|
||||||
ok: false,
|
ok: false,
|
||||||
@@ -435,77 +358,164 @@ export async function globalFetch(url:string, arg:{body?:any,headers?:{[key:stri
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(db.requestmet === 'proxy'){
|
||||||
const body = Body.json(arg.body)
|
try {
|
||||||
const headers = arg.headers ?? {}
|
let headers = arg.headers ?? {}
|
||||||
const d = await TauriFetch(url, {
|
if(!headers["Content-Type"]){
|
||||||
body: body,
|
headers["Content-Type"] = `application/json`
|
||||||
method: method,
|
}
|
||||||
headers: headers,
|
const furl = new URL(db.requestproxy)
|
||||||
timeout: {
|
furl.pathname = url
|
||||||
secs: db.timeOut,
|
|
||||||
nanos: 0
|
const da = await fetch(furl, {
|
||||||
},
|
body: JSON.stringify(arg.body),
|
||||||
responseType: arg.rawResponse ? ResponseType.Binary : ResponseType.JSON
|
headers: arg.headers,
|
||||||
})
|
method: method
|
||||||
if(arg.rawResponse){
|
})
|
||||||
addFetchLog("Uint8Array Response", d.ok)
|
|
||||||
return {
|
if(arg.rawResponse){
|
||||||
ok: d.ok,
|
addFetchLog("Uint8Array Response", da.ok)
|
||||||
data: new Uint8Array(d.data as number[]),
|
return {
|
||||||
|
ok: da.ok,
|
||||||
|
data: new Uint8Array(await da.arrayBuffer())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
const dat = await da.json()
|
||||||
|
addFetchLog(dat, da.ok)
|
||||||
|
return {
|
||||||
|
ok: da.ok,
|
||||||
|
data: dat
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
return {
|
||||||
|
ok: false,
|
||||||
|
data: `${error}`,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(isTauri){
|
||||||
|
if(db.requester === 'new'){
|
||||||
|
try {
|
||||||
|
let preHeader = arg.headers ?? {}
|
||||||
|
preHeader["Content-Type"] = `application/json`
|
||||||
|
const body = JSON.stringify(arg.body)
|
||||||
|
const header = JSON.stringify(preHeader)
|
||||||
|
const res:string = await invoke('native_request', {url:url, body:body, header:header, method: method})
|
||||||
|
const d:{
|
||||||
|
success: boolean
|
||||||
|
body:string
|
||||||
|
} = JSON.parse(res)
|
||||||
|
|
||||||
|
if(!d.success){
|
||||||
|
addFetchLog(Buffer.from(d.body, 'base64').toString('utf-8'), false)
|
||||||
|
return {
|
||||||
|
ok:false,
|
||||||
|
data: Buffer.from(d.body, 'base64').toString('utf-8')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if(arg.rawResponse){
|
||||||
|
addFetchLog("Uint8Array Response", true)
|
||||||
|
return {
|
||||||
|
ok:true,
|
||||||
|
data: new Uint8Array(Buffer.from(d.body, 'base64'))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
addFetchLog(JSON.parse(Buffer.from(d.body, 'base64').toString('utf-8')), true)
|
||||||
|
return {
|
||||||
|
ok:true,
|
||||||
|
data: JSON.parse(Buffer.from(d.body, 'base64').toString('utf-8'))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
return {
|
||||||
|
ok: false,
|
||||||
|
data: `${error}`,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const body = Body.json(arg.body)
|
||||||
|
const headers = arg.headers ?? {}
|
||||||
|
const d = await TauriFetch(url, {
|
||||||
|
body: body,
|
||||||
|
method: method,
|
||||||
|
headers: headers,
|
||||||
|
timeout: {
|
||||||
|
secs: db.timeOut,
|
||||||
|
nanos: 0
|
||||||
|
},
|
||||||
|
responseType: arg.rawResponse ? ResponseType.Binary : ResponseType.JSON
|
||||||
|
})
|
||||||
|
if(arg.rawResponse){
|
||||||
|
addFetchLog("Uint8Array Response", d.ok)
|
||||||
|
return {
|
||||||
|
ok: d.ok,
|
||||||
|
data: new Uint8Array(d.data as number[]),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
addFetchLog(d.data, d.ok)
|
||||||
|
return {
|
||||||
|
ok: d.ok,
|
||||||
|
data: d.data,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
addFetchLog(d.data, d.ok)
|
try {
|
||||||
return {
|
let headers = arg.headers ?? {}
|
||||||
ok: d.ok,
|
if(!headers["Content-Type"]){
|
||||||
data: d.data,
|
headers["Content-Type"] = `application/json`
|
||||||
}
|
}
|
||||||
}
|
if(arg.rawResponse){
|
||||||
}
|
const furl = `/proxy?url=${encodeURIComponent(url)}`
|
||||||
else{
|
|
||||||
try {
|
const da = await fetch(furl, {
|
||||||
let headers = arg.headers ?? {}
|
body: JSON.stringify(arg.body),
|
||||||
if(!headers["Content-Type"]){
|
headers: arg.headers,
|
||||||
headers["Content-Type"] = `application/json`
|
method: method
|
||||||
}
|
})
|
||||||
if(arg.rawResponse){
|
|
||||||
const furl = `/proxy?url=${encodeURIComponent(url)}`
|
addFetchLog("Uint8Array Response", da.ok)
|
||||||
|
return {
|
||||||
const da = await fetch(furl, {
|
ok: da.ok,
|
||||||
body: JSON.stringify(arg.body),
|
data: new Uint8Array(await da.arrayBuffer())
|
||||||
headers: arg.headers,
|
}
|
||||||
method: method
|
}
|
||||||
})
|
else{
|
||||||
|
const furl = `/proxy?url=${encodeURIComponent(url)}`
|
||||||
addFetchLog("Uint8Array Response", da.ok)
|
|
||||||
|
const da = await fetch(furl, {
|
||||||
|
body: JSON.stringify(arg.body),
|
||||||
|
headers: arg.headers,
|
||||||
|
method: method
|
||||||
|
})
|
||||||
|
|
||||||
|
const dat = await da.json()
|
||||||
|
addFetchLog(dat, da.ok)
|
||||||
|
return {
|
||||||
|
ok: da.ok,
|
||||||
|
data: dat
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error)
|
||||||
return {
|
return {
|
||||||
ok: da.ok,
|
ok:false,
|
||||||
data: new Uint8Array(await da.arrayBuffer())
|
data: `${error}`
|
||||||
}
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
const furl = `/proxy?url=${encodeURIComponent(url)}`
|
|
||||||
|
|
||||||
const da = await fetch(furl, {
|
|
||||||
body: JSON.stringify(arg.body),
|
|
||||||
headers: arg.headers,
|
|
||||||
method: method
|
|
||||||
})
|
|
||||||
|
|
||||||
const dat = await da.json()
|
|
||||||
addFetchLog(dat, da.ok)
|
|
||||||
return {
|
|
||||||
ok: da.ok,
|
|
||||||
data: dat
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (error) {
|
}
|
||||||
console.log(error)
|
} catch (error) {
|
||||||
return {
|
return {
|
||||||
ok:false,
|
ok:false,
|
||||||
data: `${error}`
|
data: `${error}`
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user