import * as Request from 'request'; export class AttachmentService { url: string; constructor(url: string) { this.url = url; } download(): Promise { return new Promise((resolve, reject) => { Request({ uri: this.url, encoding: null }, (error, response, body) => { if (error || response.statusCode !== 200) { return reject(error) } return resolve({ buffer: body, size: response.headers['content-length'] }) }) }) } }