packages/apps-tools/lib/net/request.ts (27 lines of code) (raw):
import {Config} from '../../@types/types';
export function generateRequestParams(
config: Config,
url: string,
options?: {method?: string; headers?: Record<string, string>; body?: FormData},
): Request {
return new Request(url, {
method: options?.method ?? 'GET',
headers: {
Accept: 'application/json',
Authorization: `Bearer ${config.token}`,
'User-Agent':
options?.headers?.['User-Agent'] ??
[`Nodejs/${process.versions.node}`, `YouTrackCLI/${require('../../package.json').version}`].join(' '),
...options?.headers,
},
body: options?.body,
});
}
export async function prepareErrorMessage(res: Response) {
const data = (await res.json()) as Record<string, string>;
let errorDescription = res.statusText;
if ('error_description' in data) {
errorDescription = data.error_description;
}
return `[${res.status}] ${errorDescription}`;
}