Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
akupiec
GitHub Repository: akupiec/mad-proxy
Path: blob/master/src/middlewares/mockSaver.js
115 views
1
const fs = require('fs');
2
const path = require('path');
3
const utils = require('./utils/utils');
4
const LOGGER = require('../config/logger');
5
6
7
function mkdirSync(filePath) {
8
const dirName = path.dirname(filePath);
9
if (fs.existsSync(dirName)) {
10
return;
11
}
12
mkdirSync(dirName);
13
fs.mkdirSync(dirName);
14
}
15
16
module.exports = function (proxyConfig) {
17
return function mockSaver(req, res, next) {
18
if(req.mock.mockExists || !proxyConfig.cache.enabled) {
19
next();
20
return;
21
}
22
res.bodyStream.on('finish', () => {
23
mkdirSync(req.mock.filePath);
24
const buffer = utils.encodeBuffer(res, res.bodyStream.body);
25
let fileName = req.mock.filePath + utils.getExtension(res);
26
fs.writeFileSync(fileName, buffer);
27
LOGGER.debug(`Saved : ${fileName} | Bytes: ${buffer.length}`);
28
});
29
next();
30
};
31
};
32
33