Path: blob/master/node_modules/axios/lib/defaults.js
2591 views
'use strict';12var utils = require('./utils');3var normalizeHeaderName = require('./helpers/normalizeHeaderName');4var enhanceError = require('./core/enhanceError');56var DEFAULT_CONTENT_TYPE = {7'Content-Type': 'application/x-www-form-urlencoded'8};910function setContentTypeIfUnset(headers, value) {11if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {12headers['Content-Type'] = value;13}14}1516function getDefaultAdapter() {17var adapter;18if (typeof XMLHttpRequest !== 'undefined') {19// For browsers use XHR adapter20adapter = require('./adapters/xhr');21} else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {22// For node use HTTP adapter23adapter = require('./adapters/http');24}25return adapter;26}2728function stringifySafely(rawValue, parser, encoder) {29if (utils.isString(rawValue)) {30try {31(parser || JSON.parse)(rawValue);32return utils.trim(rawValue);33} catch (e) {34if (e.name !== 'SyntaxError') {35throw e;36}37}38}3940return (encoder || JSON.stringify)(rawValue);41}4243var defaults = {4445transitional: {46silentJSONParsing: true,47forcedJSONParsing: true,48clarifyTimeoutError: false49},5051adapter: getDefaultAdapter(),5253transformRequest: [function transformRequest(data, headers) {54normalizeHeaderName(headers, 'Accept');55normalizeHeaderName(headers, 'Content-Type');5657if (utils.isFormData(data) ||58utils.isArrayBuffer(data) ||59utils.isBuffer(data) ||60utils.isStream(data) ||61utils.isFile(data) ||62utils.isBlob(data)63) {64return data;65}66if (utils.isArrayBufferView(data)) {67return data.buffer;68}69if (utils.isURLSearchParams(data)) {70setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');71return data.toString();72}73if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {74setContentTypeIfUnset(headers, 'application/json');75return stringifySafely(data);76}77return data;78}],7980transformResponse: [function transformResponse(data) {81var transitional = this.transitional || defaults.transitional;82var silentJSONParsing = transitional && transitional.silentJSONParsing;83var forcedJSONParsing = transitional && transitional.forcedJSONParsing;84var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';8586if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {87try {88return JSON.parse(data);89} catch (e) {90if (strictJSONParsing) {91if (e.name === 'SyntaxError') {92throw enhanceError(e, this, 'E_JSON_PARSE');93}94throw e;95}96}97}9899return data;100}],101102/**103* A timeout in milliseconds to abort a request. If set to 0 (default) a104* timeout is not created.105*/106timeout: 0,107108xsrfCookieName: 'XSRF-TOKEN',109xsrfHeaderName: 'X-XSRF-TOKEN',110111maxContentLength: -1,112maxBodyLength: -1,113114validateStatus: function validateStatus(status) {115return status >= 200 && status < 300;116},117118headers: {119common: {120'Accept': 'application/json, text/plain, */*'121}122}123};124125utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {126defaults.headers[method] = {};127});128129utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {130defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);131});132133module.exports = defaults;134135136