63 lines
1.3 KiB
JavaScript
63 lines
1.3 KiB
JavaScript
'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,
|
|
}
|