Source: contentful.js

'use strict';

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = createClient;

var _createHttpClient = require('./create-http-client');

var _createHttpClient2 = _interopRequireDefault(_createHttpClient);

var _createCdaApi = require('./create-cda-api');

var _createCdaApi2 = _interopRequireDefault(_createCdaApi);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

/**
 * Create a client instance
 * @func
 * @name createClient
 * @memberof contentful
 * @param {Object} params - Client initialization parameters
 * @prop {string} params.space - Space ID
 * @prop {string} params.accessToken - Contentful CDA Access Token
 * @prop {boolean=} params.insecure - Requests will be made over http instead of the default https (default: true)
 * @prop {string=} params.host - API host (default: cda.contentful.com)
 * @prop {Object=} params.agent - Optional Node.js HTTP agent for proxying (see <a href="https://nodejs.org/api/http.html#http_class_http_agent">Node.js docs</a> and <a href="https://www.npmjs.com/package/https-proxy-agent">https-proxy-agent</a>)
 * @prop {Object=} params.headers - Optional additional headers
 * @returns {CDAClient.ClientAPI}
 * @example
 * const client = contentful.createClient({
 *  accessToken: 'myAccessToken',
 *  space: 'mySpaceId'
 * })
 */
/**
 * Contentful CDA SDK. Allows you to create instances of a client with access
 * to the Contentful Content Delivery API.
 * @namespace contentful
 */

function createClient(axios, params) {
  if (!params.accessToken) {
    throw new TypeError('Expected parameter accessToken');
  }

  if (!params.space) {
    throw new TypeError('Expected parameter space');
  }

  // Use resolveLinks param if specified, otherwise default to true
  var resolveLinks = !!('resolveLinks' in params ? params.resolveLinks : true);

  return (0, _createCdaApi2.default)((0, _createHttpClient2.default)(axios, params), resolveLinks);
}