* Implemented lazy loading thumbnail * Display assets as date-time grouping * Update Readme * Modify GitHub action to run from the latest update
60 lines
1.5 KiB
TypeScript
60 lines
1.5 KiB
TypeScript
import { serverEndpoint } from './constants';
|
|
|
|
type ISend = {
|
|
method: string,
|
|
path: string,
|
|
data?: any,
|
|
token: string
|
|
customHeaders?: Record<string, string>,
|
|
}
|
|
|
|
type IOption = {
|
|
method: string,
|
|
headers: Record<string, string>,
|
|
body: any
|
|
|
|
}
|
|
|
|
async function send({ method, path, data, token, customHeaders }: ISend) {
|
|
const opts: IOption = { method, headers: {} } as IOption;
|
|
|
|
if (data) {
|
|
opts.headers['Content-Type'] = 'application/json';
|
|
opts.body = JSON.stringify(data);
|
|
}
|
|
|
|
if (customHeaders) {
|
|
console.log(customHeaders);
|
|
// opts.headers[customHeader.$1]
|
|
}
|
|
|
|
if (token) {
|
|
opts.headers['Authorization'] = `Bearer ${token}`;
|
|
}
|
|
|
|
return fetch(`${serverEndpoint}/${path}`, opts)
|
|
.then((r) => r.text())
|
|
.then((json) => {
|
|
try {
|
|
return JSON.parse(json);
|
|
} catch (err) {
|
|
return json;
|
|
}
|
|
});
|
|
}
|
|
|
|
export function getRequest(path: string, token: string, customHeaders?: Record<string, string>) {
|
|
return send({ method: 'GET', path, token, customHeaders });
|
|
}
|
|
|
|
export function delRequest(path: string, token: string, customHeaders?: Record<string, string>) {
|
|
return send({ method: 'DELETE', path, token, customHeaders });
|
|
}
|
|
|
|
export function postRequest(path: string, data: any, token: string, customHeaders?: Record<string, string>) {
|
|
return send({ method: 'POST', path, data, token, customHeaders });
|
|
}
|
|
|
|
export function putRequest(path: string, data: any, token: string, customHeaders?: Record<string, string>) {
|
|
return send({ method: 'PUT', path, data, token, customHeaders });
|
|
} |