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