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:
Marcin Majewski
2024-01-20 04:05:57 +01:00
committed by GitHub
parent a0ba46aaa6
commit ba718784a5
9 changed files with 973 additions and 91 deletions
+43 -22
View File
@@ -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;