use electron net for update checks

This commit is contained in:
Joao Moreno
2017-03-03 11:37:20 +01:00
parent 76008aacd5
commit 67906686e8
3 changed files with 35 additions and 2 deletions

View File

@@ -17,6 +17,10 @@ import { createGunzip } from 'zlib';
export type Agent = any;
export interface IRawRequestFunction {
(options: http.RequestOptions, callback?: (res: http.IncomingMessage) => void): http.ClientRequest;
}
export interface IRequestOptions {
type?: string;
url?: string;
@@ -28,6 +32,7 @@ export interface IRequestOptions {
agent?: Agent;
followRedirects?: number;
strictSSL?: boolean;
getRawRequest?(options: IRequestOptions): IRawRequestFunction;
}
export interface IRequestContext {
@@ -44,12 +49,18 @@ export interface IRequestFunction {
(options: IRequestOptions): TPromise<IRequestContext>;
}
function getNodeRequest(options: IRequestOptions): IRawRequestFunction {
const endpoint = parseUrl(options.url);
return endpoint.protocol === 'https:' ? https.request : http.request;
}
export function request(options: IRequestOptions): TPromise<IRequestContext> {
let req: http.ClientRequest;
return new TPromise<IRequestContext>((c, e) => {
const endpoint = parseUrl(options.url);
const rawRequest = endpoint.protocol === 'https:' ? https.request : http.request;
const getRawRequest = options.getRawRequest || getNodeRequest;
const rawRequest = getRawRequest(options);
const opts: https.RequestOptions = {
hostname: endpoint.hostname,
port: endpoint.port ? parseInt(endpoint.port) : (endpoint.protocol === 'https:' ? 443 : 80),