diff --git a/docs/node-server/overview.md b/docs/node-server/overview.md index d67ca6c3..b495adab 100644 --- a/docs/node-server/overview.md +++ b/docs/node-server/overview.md @@ -122,3 +122,20 @@ registerExpressAPI(app, { apiNamespace: 'polly_js' }); ``` + +### recordingSizeLimit + +_Type_: `String` +_Default_: `'50mb'` + +A recording size can not exceed 50mb by default. If your application exceeds this limit, bump this value to a reasonable limit. + +```js +new Server({ + recordingSizeLimit: '50mb' +}); + +registerExpressAPI(app, { + recordingSizeLimit: '50mb' +}); +``` \ No newline at end of file diff --git a/packages/@pollyjs/cli/bin/cli.js b/packages/@pollyjs/cli/bin/cli.js index bdd48e0a..5c5c369c 100755 --- a/packages/@pollyjs/cli/bin/cli.js +++ b/packages/@pollyjs/cli/bin/cli.js @@ -25,6 +25,11 @@ cli 'recordings directory', Polly.Defaults.recordingsDir ) + .option( + '-s, --recording-size-limit ', + 'recording size limit', + Polly.Defaults.recordingSizeLimit + ) .option('-q, --quiet', 'disable the logging') .action(function(options) { new Polly.Server(options).listen(); diff --git a/packages/@pollyjs/ember/README.md b/packages/@pollyjs/ember/README.md index c92388a9..f315bc9d 100644 --- a/packages/@pollyjs/ember/README.md +++ b/packages/@pollyjs/ember/README.md @@ -38,7 +38,8 @@ module.exports = function(defaults) { // Server Configuration Options server: { apiNamespace: 'polly', - recordingsDir: 'recordings' + recordingsDir: 'recordings', + recordingSizeLimit: '50mb' } } }); diff --git a/packages/@pollyjs/node-server/src/config.js b/packages/@pollyjs/node-server/src/config.js index ab3901e5..47df54ae 100644 --- a/packages/@pollyjs/node-server/src/config.js +++ b/packages/@pollyjs/node-server/src/config.js @@ -1,6 +1,7 @@ export default { port: 3000, quiet: false, + recordingSizeLimit: '50mb', recordingsDir: 'recordings', apiNamespace: 'polly' }; diff --git a/packages/@pollyjs/node-server/src/express/register-api.js b/packages/@pollyjs/node-server/src/express/register-api.js index 0cf43c4d..5fab38de 100644 --- a/packages/@pollyjs/node-server/src/express/register-api.js +++ b/packages/@pollyjs/node-server/src/express/register-api.js @@ -34,12 +34,16 @@ export default function registerAPI(app, config) { } }); - router.post('/:recording', bodyParser.json(), function(req, res) { - const { recording } = req.params; - const { status, body } = api.saveRecording(recording, req.body); - - res.status(status).send(body); - }); + router.post( + '/:recording', + bodyParser.json({ limit: config.recordingSizeLimit }), + function(req, res) { + const { recording } = req.params; + const { status, body } = api.saveRecording(recording, req.body); + + res.status(status).send(body); + } + ); router.delete('/:recording', function(req, res) { const { recording } = req.params;