]>
Commit | Line | Data |
---|---|---|
1 | import * as Promise from 'bluebird' | |
2 | import { createWriteStream } from 'fs' | |
3 | import * as request from 'request' | |
4 | ||
5 | function doRequest (requestOptions: request.CoreOptions & request.UriOptions) { | |
6 | return new Promise<{ response: request.RequestResponse, body: any }>((res, rej) => { | |
7 | request(requestOptions, (err, response, body) => err ? rej(err) : res({ response, body })) | |
8 | }) | |
9 | } | |
10 | ||
11 | function doRequestAndSaveToFile (requestOptions: request.CoreOptions & request.UriOptions, destPath: string) { | |
12 | return new Promise<request.RequestResponse>((res, rej) => { | |
13 | request(requestOptions) | |
14 | .on('response', response => res(response as request.RequestResponse)) | |
15 | .on('error', err => rej(err)) | |
16 | .pipe(createWriteStream(destPath)) | |
17 | }) | |
18 | } | |
19 | ||
20 | // --------------------------------------------------------------------------- | |
21 | ||
22 | export { | |
23 | doRequest, | |
24 | doRequestAndSaveToFile | |
25 | } |