You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
const url = require('url') const path = require('path') const launch = require('launch-editor')
module.exports = (specifiedEditor, srcRoot, onErrorCallback) => { if (typeof specifiedEditor === 'function') { onErrorCallback = specifiedEditor specifiedEditor = undefined }
if (typeof srcRoot === 'function') { onErrorCallback = srcRoot srcRoot = undefined }
srcRoot = srcRoot || process.cwd()
return function launchEditorMiddleware (req, res) { const { file } = url.parse(req.url, true).query || {} if (!file) { res.statusCode = 500 res.end(`launch-editor-middleware: required query param "file" is missing.`) } else { launch(path.resolve(srcRoot, file), specifiedEditor, onErrorCallback) res.end() } } }
|