UNPKG

984 BPlain TextView Raw
1import {HttpVerb, Response} from 'then-request';
2import GenericResponse = require('http-response-object');
3import {URL} from 'url';
4import {Req, Res} from './messages';
5import {FormData, getFormDataEntries} from './FormData';
6import {Options, MessageOptions} from './Options';
7const init = require('sync-rpc');
8const remote = init(require.resolve('./worker'));
9
10export {HttpVerb, Response, Options};
11export {FormData};
12export default function request(
13 method: HttpVerb,
14 url: string | URL,
15 options?: Options
16): Response {
17 const {form, ...o} = options || {form: undefined};
18 const opts: MessageOptions = o;
19 if (form) {
20 opts.form = getFormDataEntries(form);
21 }
22 const req: Req = {
23 m: method,
24 u: url && typeof url === 'object' ? url.href : (url as string),
25 o: opts,
26 };
27 const res: Res = remote(req);
28 return new GenericResponse(res.s, res.h, res.b, res.u);
29}
30module.exports = request;
31module.exports.default = request;
32module.exports.FormData = FormData;