UNPKG

net-textarea

Version:

A Node.js CLI tool designed for easy text editing over the network. Runs directly with npx, no installation required.

65 lines (64 loc) 1.76 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const express_1 = __importDefault(require("express")); const listening_on_1 = require("listening-on"); let app = (0, express_1.default)(); app.use(express_1.default.urlencoded({ extended: false })); let text = ''; app.post('/', (req, res) => { text = req.body.text || ''; res.redirect('/'); }); app.get('/text', (req, res) => { res.end(text); }); app.get('/', (req, res) => { res.header('Content-Type', 'text/html'); res.write(/* html */ `<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Clipboard</title> <style> body { margin: 0; } #main { display: flex; height: calc(100vh - 2rem); } textarea { margin: auto; width: calc(100% - 2rem); height: calc(100% - 2rem); } </style> </head> <body> <form method="post" action="/"> <div id="main"> <textarea id="text" name="text"></textarea> </div> <div style="display: flex"> <div style="margin: auto"> <input type="button" value="Refresh" onclick="location.reload()"> <input type="submit" value="Save" /> </div> </div> </form> <script> text.value = ${JSON.stringify(text)} </script> </body> </html>`); res.end(); }); let port = +process.argv[2] || 8123; app.listen(port, () => { (0, listening_on_1.print)(port); });