exotec-error-server
Version:
Serveur de simulation d'erreurs HTTP pour tests Exotec
72 lines • 2.81 kB
JavaScript
;
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