mirror of
https://github.com/go-gitea/gitea.git
synced 2026-04-14 08:28:07 +02:00
This is the first step (the hardest part): * repo file list last commit message lazy load * admin server status monitor * watch/unwatch (normal page, watchers page) * star/unstar (normal page, watchers page) * project view, delete column * workflow dispatch, switch the branch * commit page: load branches and tags referencing this commit The legacy "data-redirect" attribute is removed, it only makes the page reload (sometimes using an incorrect link). Also did cleanup for some devtest pages.
34 lines
1.5 KiB
TypeScript
34 lines
1.5 KiB
TypeScript
import {isObject} from '../utils.ts';
|
|
import type {RequestOpts} from '../types.ts';
|
|
|
|
// fetch wrapper, use below method name functions and the `data` option to pass in data
|
|
// which will automatically set an appropriate headers. For JSON content, only object
|
|
// and array types are currently supported.
|
|
export function request(url: string, {method = 'GET', data, headers = {}, ...other}: RequestOpts = {}): Promise<Response> {
|
|
let body: string | FormData | URLSearchParams | undefined;
|
|
let contentType: string | undefined;
|
|
if (data instanceof FormData || data instanceof URLSearchParams) {
|
|
body = data;
|
|
} else if (isObject(data) || Array.isArray(data)) {
|
|
contentType = 'application/json';
|
|
body = JSON.stringify(data);
|
|
}
|
|
|
|
headers = new Headers(headers);
|
|
if (!headers.has('content-type') && contentType) {
|
|
headers.set('content-type', contentType);
|
|
}
|
|
return fetch(url, { // eslint-disable-line no-restricted-globals
|
|
method,
|
|
headers,
|
|
...other,
|
|
...(body && {body}),
|
|
});
|
|
}
|
|
|
|
export const GET = (url: string, opts?: RequestOpts) => request(url, {method: 'GET', ...opts});
|
|
export const POST = (url: string, opts?: RequestOpts) => request(url, {method: 'POST', ...opts});
|
|
export const PATCH = (url: string, opts?: RequestOpts) => request(url, {method: 'PATCH', ...opts});
|
|
export const PUT = (url: string, opts?: RequestOpts) => request(url, {method: 'PUT', ...opts});
|
|
export const DELETE = (url: string, opts?: RequestOpts) => request(url, {method: 'DELETE', ...opts});
|