'use strict' const _ = require('lodash') const remapper = require('../util/remap') const handlers = require('../handlers/source-maps') const { SourceMapConsumer } = require('source-map') function create (req, res) { const sourceMap = _.mapKeys(req.body, (val, key) => _.camelCase(key)) if (!sourceMap.content && req.file) { sourceMap.content = req.file.buffer.toString('utf8') } console.log(sourceMap) handlers.create(sourceMap).then(() => { res.render('index') }) } function getOne (req, res, next) { next() } function listAll (req, res, next) { handlers.listAll().then((sourceMaps) => { res.locals.sourceMaps = sourceMaps res.json(sourceMaps) }).catch(next) } function remap (req, res, next) { const body = _.mapKeys(req.body, (val, key) => _.camelCase(key)) const promise = body.content ? Promise.resolve(body) : handlers.get(body) promise .then((sourceMap) => new SourceMapConsumer(sourceMap.content)) .then((consumer) => { const remapped = remapper(body.stack, consumer) consumer.destroy() if (req.accepts([ 'json', 'html' ]) === 'json') { res.json(remapped) } else { res.locals.stack = remapped res.render('remap-result') } }) .catch(next) } module.exports = { remap, create, getOne, listAll, }