UNPKG

exotec-error-server

Version:

Serveur de simulation d'erreurs HTTP pour tests Exotec

72 lines 2.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.startServer = startServer; const catchAnswer_1 = require("./catchAnswer"); function startServer(config) { return new Promise((resolve, reject) => { const { errorMode, port, host = '0.0.0.0' } = config; console.log(`🚀 Configuration du serveur: - Mode: ${errorMode === 0 ? 'Normal (pas d\'erreur)' : `Erreur ${errorMode}`} - Port: ${port} - Host: ${host} - Date: ${new Date().toISOString()}`); // Validation if (errorMode !== 0 && ![502, 503, 504].includes(errorMode)) { console.warn(`⚠️ Mode d'erreur ${errorMode} non standard. Modes recommandés: 0 (normal), 502, 503, 504`); } try { (0, catchAnswer_1.setServerErrorMode)(errorMode); const server = (0, catchAnswer_1.getServerToCatchAnswer)(); server.listen(port, host, () => { console.log(`✅ Serveur en écoute sur http://${host}:${port}`); console.log(`💥 Mode ${errorMode === 0 ? 'normal' : `d'erreur ${errorMode}`} activé`); const instance = { server, stop: () => { return new Promise((resolveStop) => { server.close(() => { console.log('✅ Serveur arrêté'); resolveStop(); }); }); }, getConfig: () => ({ errorMode, port, host }) }; resolve(instance); }); server.on('error', (err) => { console.error('❌ Erreur du serveur:', err.message); reject(err); }); } catch (error) { reject(error); } }); } // Pour exécution CLI if (require.main === module) { const errorMode = process.argv[2] ? parseInt(process.argv[2]) : 0; const port = process.argv[3] ? parseInt(process.argv[3]) : 3000; const host = process.argv[4] || '0.0.0.0'; startServer({ errorMode, port, host }) .then((instance) => { console.log('🎉 Serveur démarré avec succès'); // Gestion des signaux d'arrêt process.on('SIGINT', async () => { console.log('\n🛑 Arrêt du serveur...'); await instance.stop(); process.exit(0); }); process.on('SIGTERM', async () => { console.log('\n🛑 Signal SIGTERM reçu...'); await instance.stop(); process.exit(0); }); }) .catch((error) => { console.error('❌ Erreur:', error); process.exit(1); }); } //# sourceMappingURL=server-launcher.js.map