12345678910111213141516171819202122232425262728 |
- 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, next) {
- 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()
- }
- }
- }
|