UNPKG

utquidem

Version:

The meta-framework suite designed from scratch for frontend-focused modern web development.

30 lines (26 loc) 854 B
import { Middleware } from 'koa'; import { signale as logger, LAUNCH_EDITOR_ENDPOINT } from '@modern-js/utils'; // try vscode first const specifiedEditor = 'code'; export const lanuchEditorMiddleware = (): Middleware => { const handleError = (filename: string, errorMessage: string) => { logger.error(`Launch ${filename} in editor failed.\n${errorMessage}`); }; return (ctx, next) => { if (ctx.url.startsWith(LAUNCH_EDITOR_ENDPOINT)) { const filename = ctx.query.filename; if (!filename) { ctx.status = 500; ctx.res.end( `launch-editor-middleware: required query param "filename" is missing.`, ); } else { require('launch-editor')(filename, specifiedEditor, handleError); ctx.status = 200; ctx.res.end(); } } else { return next(); } }; };