fix(core): update
This commit is contained in:
		@@ -3,4 +3,5 @@ import * as https from 'https';
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
export interface ISmartRequestOptions extends https.RequestOptions {
 | 
					export interface ISmartRequestOptions extends https.RequestOptions {
 | 
				
			||||||
  requestBody?: any;
 | 
					  requestBody?: any;
 | 
				
			||||||
 | 
					  autoJsonParse?: boolean;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,7 +9,8 @@ export interface IExtendedIncomingMessage extends IncomingMessage {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const buildUtf8Response = (
 | 
					const buildUtf8Response = (
 | 
				
			||||||
  incomingMessageArg: IncomingMessage
 | 
					  incomingMessageArg: IncomingMessage,
 | 
				
			||||||
 | 
					  autoJsonParse = true
 | 
				
			||||||
): Promise<IExtendedIncomingMessage> => {
 | 
					): Promise<IExtendedIncomingMessage> => {
 | 
				
			||||||
  let done = plugins.smartpromise.defer<IExtendedIncomingMessage>();
 | 
					  let done = plugins.smartpromise.defer<IExtendedIncomingMessage>();
 | 
				
			||||||
  // Continuously update stream with data
 | 
					  // Continuously update stream with data
 | 
				
			||||||
@@ -19,9 +20,13 @@ const buildUtf8Response = (
 | 
				
			|||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  incomingMessageArg.on('end', function() {
 | 
					  incomingMessageArg.on('end', function() {
 | 
				
			||||||
    try {
 | 
					    if (autoJsonParse) {
 | 
				
			||||||
      (incomingMessageArg as IExtendedIncomingMessage).body = JSON.parse(body);
 | 
					      try {
 | 
				
			||||||
    } catch (err) {
 | 
					        (incomingMessageArg as IExtendedIncomingMessage).body = JSON.parse(body);
 | 
				
			||||||
 | 
					      } catch (err) {
 | 
				
			||||||
 | 
					        (incomingMessageArg as IExtendedIncomingMessage).body = body;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
      (incomingMessageArg as IExtendedIncomingMessage).body = body;
 | 
					      (incomingMessageArg as IExtendedIncomingMessage).body = body;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    done.resolve(incomingMessageArg as IExtendedIncomingMessage);
 | 
					    done.resolve(incomingMessageArg as IExtendedIncomingMessage);
 | 
				
			||||||
@@ -57,6 +62,16 @@ export let request = async (
 | 
				
			|||||||
): Promise<IExtendedIncomingMessage> => {
 | 
					): Promise<IExtendedIncomingMessage> => {
 | 
				
			||||||
  let done = plugins.smartpromise.defer<any>();
 | 
					  let done = plugins.smartpromise.defer<any>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // merge options
 | 
				
			||||||
 | 
					  const defaultOptions: interfaces.ISmartRequestOptions = {
 | 
				
			||||||
 | 
					    autoJsonParse: true
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  optionsArg = {
 | 
				
			||||||
 | 
					    ...defaultOptions,
 | 
				
			||||||
 | 
					    ...optionsArg
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // parse url
 | 
					  // parse url
 | 
				
			||||||
  let parsedUrl: plugins.url.Url;
 | 
					  let parsedUrl: plugins.url.Url;
 | 
				
			||||||
  parsedUrl = plugins.url.parse(domainArg);
 | 
					  parsedUrl = plugins.url.parse(domainArg);
 | 
				
			||||||
@@ -114,7 +129,7 @@ export let request = async (
 | 
				
			|||||||
    if (streamArg) {
 | 
					    if (streamArg) {
 | 
				
			||||||
      done.resolve(response);
 | 
					      done.resolve(response);
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      const builtResponse = await buildUtf8Response(response);
 | 
					      const builtResponse = await buildUtf8Response(response, optionsArg.autoJsonParse);
 | 
				
			||||||
      done.resolve(builtResponse);
 | 
					      done.resolve(builtResponse);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user