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.
		
		
		
		
			
				
					29 lines
				
				783 B
			
		
		
			
		
	
	
					29 lines
				
				783 B
			| 
								 
											4 years ago
										 
									 | 
							
								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()
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 |