UNPKG

mockit-cli

Version:

Mock any API in seconds. Config-driven. CLI-powered. No backend required.

46 lines (45 loc) 1.83 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createServer = createServer; const polka_1 = __importDefault(require("polka")); function registerRoutes(app, routes, isRandomize) { routes.forEach(({ path, method, response, delay }) => { const httpMethod = method.toLowerCase(); app[httpMethod](path, (req, res) => { const outcome = isRandomize ? (Math.random() < 0.5 ? 'success' : 'error') : 'success'; const status = response[outcome].status; const responseBody = response[outcome]; const log = `[${status}] ${method.toUpperCase()} ${path}${delay ? ` (delay: ${delay}ms)` : ''}`; console.log(log); if (delay) { setTimeout(() => { res.writeHead(status, { 'Content-Type': 'application/json' }); res.end(JSON.stringify(responseBody)); }, delay); } else { res.writeHead(status, { 'Content-Type': 'application/json' }); res.end(JSON.stringify(responseBody)); } }); }); } function createServer({ host, port }, config, isRandomize) { const app = (0, polka_1.default)(); return new Promise((resolve, reject) => { registerRoutes(app, config, isRandomize); app.listen(port, host, (err) => { if (err) { console.error(`❌ Failed to start server:`, err.message); reject(err); } else { console.log(`✅ Mock server running at http://${host}:${port}`); resolve(); } }); }); }