From a1d5e7d3c5a7fb51acd61be98deccbd574e5f300 Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Tue, 13 Jun 2017 11:53:37 -0400 Subject: [PATCH] Instantiate appropriate HttpImpl * src/dapi/DataApiFactory.js (fromType): Instantiate NodeHttpImpl when XMLHttpRequest is undefined. --- src/dapi/DataApiFactory.js | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/dapi/DataApiFactory.js b/src/dapi/DataApiFactory.js index af39742..650e52d 100644 --- a/src/dapi/DataApiFactory.js +++ b/src/dapi/DataApiFactory.js @@ -19,14 +19,14 @@ * along with this program. If not, see . */ -var Class = require( 'easejs' ).Class, - - HttpDataApi = require( './http/HttpDataApi' ), - XhrHttpImpl = require( './http/XhrHttpImpl' ), - JsonResponse = require( './format/JsonResponse' ), - RestrictedDataApi = require( './RestrictedDataApi' ), - StaticAdditionDataApi = require( './StaticAdditionDataApi' ), - BucketDataApi = require( './BucketDataApi' ); +const Class = require( 'easejs' ).Class; +const HttpDataApi = require( './http/HttpDataApi' ); +const XhrHttpImpl = require( './http/XhrHttpImpl' ); +const NodeHttpImpl = require( './http/NodeHttpImpl' ); +const JsonResponse = require( './format/JsonResponse' ); +const RestrictedDataApi = require( './RestrictedDataApi' ); +const StaticAdditionDataApi = require( './StaticAdditionDataApi' ); +const BucketDataApi = require( './BucketDataApi' ); /** @@ -58,10 +58,20 @@ module.exports = Class( 'DataApiFactory', switch ( type ) { case 'rest': + const impl = ( typeof XMLHttpRequest !== 'undefined' ) + ? XhrHttpImpl( XMLHttpRequest ) + : NodeHttpImpl( + { + http: require( 'http' ), + https: require( 'https' ), + }, + require( 'url' ) + ); + api = HttpDataApi.use( JsonResponse )( source, method.toUpperCase(), - XhrHttpImpl( XMLHttpRequest ) + impl ); break;