function NetworkSource(source, sources) {
    var _this3;
    _classCallCheck(this, NetworkSource);
    _this3 = _callSuper$8(this, NetworkSource, [source, sources]);
    _this3.response_type = ''; // use to set explicit XHR type

    // Add extra URL params, and warn on duplicates
    var _URLs$addParamsToURL = addParamsToURL(source.url, source.url_params),
      _URLs$addParamsToURL2 = _slicedToArray(_URLs$addParamsToURL, 2),
      url = _URLs$addParamsToURL2[0],
      dupes = _URLs$addParamsToURL2[1];
    _this3.url = url;
    dupes.forEach(function (_ref3) {
      var _ref4 = _slicedToArray(_ref3, 2),
        param = _ref4[0],
        value = _ref4[1];
      log({
        level: 'warn',
        once: true
      }, "Data source '".concat(_this3.name, "': parameter '").concat(param, "' already present in URL '").concat(source.url, "', ") + "skipping value '".concat(param, "=").concat(value, "' specified in 'url_params'"));
    });

    // Optional HTTP request headers to send
    if (source.request_headers && _typeof(source.request_headers) === 'object') {
      _this3.request_headers = source.request_headers;
    }
    return _this3;
  }
Generic network loading source - abstract class **