Feat: Create custom header changer (#694)
* Add custom header adder * Make custom headers work in apip * remove unnecesarry console.logs * Remove add-cookie button remains * getFile and remove unnecesarry ifs * Add warning and copy to code function
This commit is contained in:
+43
-22
@@ -1,48 +1,69 @@
|
||||
export async function fetchApi(
|
||||
url: string,
|
||||
init?: {
|
||||
headers?: Record<string,string> | Headers;
|
||||
[x: string]: string | Record<string,string> | undefined | FormData | Headers;
|
||||
},
|
||||
headers?: Record<string, string> | Headers;
|
||||
[x: string]:
|
||||
| string
|
||||
| Record<string, string>
|
||||
| undefined
|
||||
| FormData
|
||||
| Headers;
|
||||
}
|
||||
) {
|
||||
let defaultHeaders: {
|
||||
'User-Agent'?: string,
|
||||
'Cookie'?: string,
|
||||
} = {};
|
||||
let defaultHeaders: Record<string, string> = {};
|
||||
try {
|
||||
const getHeaders = (await import('../index.js')).getHeaders;
|
||||
const { getHeaders } = await import("../index.js");
|
||||
defaultHeaders = getHeaders();
|
||||
}catch{
|
||||
} catch {
|
||||
// nothing to do
|
||||
}
|
||||
|
||||
if(init?.headers) {
|
||||
if(init.headers instanceof Headers){
|
||||
if(!init.headers.get('User-Agent') && defaultHeaders['User-Agent']){
|
||||
init.headers.set('User-Agent', defaultHeaders['User-Agent']);
|
||||
if (init?.headers) {
|
||||
if (init.headers instanceof Headers) {
|
||||
for (const [name, value] of Object.entries(defaultHeaders)) {
|
||||
if (!init.headers.get(name)) init.headers.set(name, value);
|
||||
}
|
||||
if(defaultHeaders.Cookie) {
|
||||
init.headers.set('Cookie', defaultHeaders.Cookie);
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
init.headers = {
|
||||
...defaultHeaders,
|
||||
...init.headers,
|
||||
};
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
init = {
|
||||
...init,
|
||||
headers: defaultHeaders
|
||||
}
|
||||
headers: defaultHeaders,
|
||||
};
|
||||
}
|
||||
|
||||
console.log(url, init);
|
||||
return await fetch(url, init);
|
||||
}
|
||||
|
||||
export const fetchFile = async function (url: string, init?: RequestInit) {
|
||||
if (!init) init = {};
|
||||
let defaultHeaders: Record<string, string> = {};
|
||||
try {
|
||||
const { getHeaders } = await import("../index.js");
|
||||
defaultHeaders = getHeaders();
|
||||
} catch {
|
||||
// nothing to do
|
||||
}
|
||||
if (init?.headers) {
|
||||
if (init.headers instanceof Headers) {
|
||||
for (const [name, value] of Object.entries(defaultHeaders)) {
|
||||
if (!init.headers.get(name)) init.headers.set(name, value);
|
||||
}
|
||||
} else {
|
||||
init.headers = {
|
||||
...defaultHeaders,
|
||||
...init.headers,
|
||||
};
|
||||
}
|
||||
} else {
|
||||
init = {
|
||||
...init,
|
||||
headers: defaultHeaders,
|
||||
};
|
||||
}
|
||||
try {
|
||||
const res = await fetch(url, init);
|
||||
if (!res.ok) return undefined;
|
||||
|
||||
Reference in New Issue
Block a user