UNPKG

1.02 kBJavaScriptView Raw
1'use strict';
2
3var fs = require('fs');
4var spawnSync = require('child_process').spawnSync || require('spawn-sync');
5var HttpResponse = require('http-response-object');
6require('concat-stream');
7require('then-request');
8var JSON = require('./lib/json-buffer');
9
10Function('', fs.readFileSync(require.resolve('./lib/worker.js'), 'utf8'));
11
12module.exports = doRequest;
13function doRequest(method, url, options) {
14 var req = JSON.stringify({
15 method: method,
16 url: url,
17 options: options
18 });
19 var res = spawnSync('node', [require.resolve('./lib/worker.js')], {input: req});
20 if (res.status !== 0) {
21 process.stderr.write(res.stderr);
22 process.exit(res.status);
23 }
24 if (res.error) {
25 throw res.err;
26 }
27 var response = JSON.parse(res.stdout);
28 if (response.success) {
29 return new HttpResponse(response.response.statusCode, response.response.headers, response.response.body);
30 } else {
31 throw new Error(response.error.message || response.error || response);
32 }
33}