Comparing version 1.0.1 to 1.0.2
# Changelog | ||
## 1.0.2 (Sep 14, 2019) | ||
- Update to work with `axios` 0.19.0 | ||
- Fix npm audit vulerabilities | ||
## 1.0.1 (Feb 10, 2017) | ||
@@ -4,0 +8,0 @@ - Split casssette API in two functions so users can mount and unmount cassettes at different parts of their codebase |
16
index.js
@@ -1,10 +0,10 @@ | ||
var RequestMiddleware = require('./lib/RequestMiddleware'); | ||
var ResponseMiddleware = require('./lib/ResponseMiddleware'); | ||
const RequestMiddleware = require('./lib/RequestMiddleware'); | ||
const ResponseMiddleware = require('./lib/ResponseMiddleware'); | ||
var cassettes = {} | ||
const cassettes = {} | ||
function mountCassette(cassettePath) { | ||
var axios = require('axios'); | ||
const axios = require('axios'); | ||
var responseInterceptor = axios.interceptors.response.use( | ||
let responseInterceptor = axios.interceptors.response.use( | ||
ResponseMiddleware.success(cassettePath), | ||
@@ -14,3 +14,3 @@ ResponseMiddleware.failure | ||
var requestInterceptor = axios.interceptors.request.use( | ||
let requestInterceptor = axios.interceptors.request.use( | ||
RequestMiddleware.success(cassettePath), | ||
@@ -28,4 +28,4 @@ RequestMiddleware.failure | ||
function ejectCassette(cassettePath) { | ||
var interceptors = cassettes[cassettePath]; | ||
var axios = interceptors.axios; | ||
let interceptors = cassettes[cassettePath]; | ||
let axios = interceptors.axios; | ||
@@ -32,0 +32,0 @@ axios.interceptors.response.eject(interceptors.responseInterceptor); |
@@ -1,3 +0,3 @@ | ||
var md5 = require('md5') | ||
var _ = require('lodash') | ||
const md5 = require('md5') | ||
const _ = require('lodash') | ||
@@ -8,15 +8,28 @@ function key(axiosConfig) { | ||
let url = axiosConfig.url | ||
let method = axiosConfig.method | ||
let data = axiosConfig.data | ||
let headers = axiosConfig.headers | ||
var baseConfig = { | ||
url: axiosConfig.url, | ||
method: axiosConfig.method, | ||
data: axiosConfig.data, | ||
headers: _.omit(axiosConfig.headers, [ | ||
'Content-Length', 'content-length' | ||
]) | ||
if (_.isString(data)) { | ||
data = JSON.parse(data) | ||
} | ||
return md5(JSON.stringify(baseConfig)) | ||
if (headers.common) { | ||
headers = _.assign( | ||
{}, | ||
headers.common, | ||
headers[axiosConfig.method], | ||
_.omit(headers, [ | ||
'common', 'delete', 'get', 'head', 'post', 'put', 'patch' | ||
]) | ||
) | ||
} | ||
headers = _.omit(headers, [ | ||
'Content-Length', 'content-length' | ||
]) | ||
return md5(JSON.stringify({ url, method, data, headers })) | ||
} | ||
module.exports = key |
@@ -1,5 +0,5 @@ | ||
var fs = require('fs-promise') | ||
var _ = require('lodash') | ||
var mkdirp = require('mkdirp') | ||
var getDirName = require('path').dirname | ||
const fs = require('fs-promise') | ||
const _ = require('lodash') | ||
const mkdirp = require('mkdirp') | ||
const getDirName = require('path').dirname | ||
@@ -11,3 +11,3 @@ function loadAt(filePath, jsonPath) { | ||
var value = _.get(json, jsonPath) | ||
let value = _.get(json, jsonPath) | ||
if (!_.isUndefined(value)) | ||
@@ -27,3 +27,3 @@ return value | ||
}).catch(function(error) { | ||
var json = {} | ||
let json = {} | ||
_.set(json, jsonPath, value) | ||
@@ -30,0 +30,0 @@ return fs.writeJson(filePath, json) |
@@ -1,6 +0,6 @@ | ||
var digest = require('./digest') | ||
var jsonDB = require('./jsonDb') | ||
const digest = require('./digest') | ||
const jsonDB = require('./jsonDb') | ||
function loadFixture(cassettePath, axiosConfig) { | ||
var requestKey = digest(axiosConfig) | ||
let requestKey = digest(axiosConfig) | ||
return jsonDB.loadAt(cassettePath, requestKey) | ||
@@ -17,3 +17,3 @@ } | ||
var headers = axiosConfig.headers | ||
let headers = axiosConfig.headers | ||
if (!headers['User-Agent'] && !headers['user-agent']) { | ||
@@ -29,5 +29,7 @@ headers['User-Agent'] = 'axios-vcr' | ||
return loadFixture(cassettePath, axiosConfig).then(function(cassette) { | ||
axiosConfig.adapter = function(resolve, _reject, _cfg) { | ||
cassette.originalResponseData.fixture = true | ||
return resolve(cassette.originalResponseData) | ||
axiosConfig.adapter = function() { | ||
return new Promise(function(resolve) { | ||
cassette.originalResponseData.fixture = true | ||
return resolve(cassette.originalResponseData) | ||
}); | ||
} | ||
@@ -34,0 +36,0 @@ return axiosConfig |
@@ -1,6 +0,6 @@ | ||
var jsonDB = require('./jsonDb') | ||
var digest = require('./digest') | ||
const jsonDB = require('./jsonDb') | ||
const digest = require('./digest') | ||
function serialize(response) { | ||
var meta = { | ||
let meta = { | ||
url: response.config.url, | ||
@@ -27,4 +27,4 @@ method: response.config.method, | ||
function storeFixture(cassettePath, response) { | ||
var requestKey = digest(response.config) | ||
var fixture = serialize(response) | ||
let requestKey = digest(response.config) | ||
let fixture = serialize(response) | ||
return jsonDB.writeAt(cassettePath, requestKey, fixture) | ||
@@ -31,0 +31,0 @@ } |
{ | ||
"name": "axios-vcr", | ||
"version": "1.0.1", | ||
"version": "1.0.2", | ||
"description": "axios-vcr is a set of middlewares for axios that allow you to record and replay requests.", | ||
@@ -18,5 +18,5 @@ "main": "index.js", | ||
"files": [ | ||
"index.js", | ||
"lib" | ||
], | ||
"index.js", | ||
"lib" | ||
], | ||
"keywords": [ | ||
@@ -32,4 +32,4 @@ "axios", | ||
"devDependencies": { | ||
"axios": "^0.11.1", | ||
"mocha": "^2.5.3", | ||
"axios": "^0.19.0", | ||
"mocha": "^6.2.0", | ||
"rimraf": "^2.5.2" | ||
@@ -36,0 +36,0 @@ }, |
@@ -23,6 +23,6 @@ # axios-vcr | ||
## Usage | ||
Using axios-vcr is very simple. All you need to do is to provide a cassette path and wrap your axios code in a `VCR.use` call. | ||
Using axios-vcr is very simple. All you need to do is to provide a cassette path and wrap your axios code with `axiosVCR.mountCassette` and `axiosVCR.ejectCassette`. | ||
```javascript | ||
var axiosVCR = require('axios-vcr'); | ||
const axiosVCR = require('axios-vcr'); | ||
@@ -36,3 +36,3 @@ axiosVCR.mountCassette('./test/fixtures/cats.json') | ||
VCR.ejectCassette('https://reddit.com/r/cats.json') | ||
axiosVCR.ejectCassette('https://reddit.com/r/cats.json') | ||
}) | ||
@@ -39,0 +39,0 @@ ``` |
9466
164