UNPKG

whistle

Version:

HTTP, HTTP2, HTTPS, Websocket debugging proxy

35 lines (33 loc) 974 B
var rules = require('../../../../lib/rules/util').rules; var util = require('../util'); module.exports = function(req, res) { var exportRules = req.query.rules; try { exportRules = exportRules && JSON.parse(exportRules); } catch(e) { exportRules = null; } var result = {}; var list = ['Default']; if (!exportRules || exportRules.Default) { var defaultRules = rules.getDefault() || ''; result.Default = defaultRules; } rules.list().forEach(function(file) { if (!exportRules || exportRules[file.name]) { result[file.name] = file.data; list.push(file.name); } }); result[''] = list; var filename = req.query.filename; if (filename && typeof filename === 'string') { if (!/\.(txt|json)/i.test(filename)) { filename += '.txt'; } } else { filename = 'rules_' + util.formatDate() + '.txt'; } res.attachment(filename); util.sendGzipText(req, res, null, JSON.stringify(result, null, ' ')); };