manux-cli
Version:
CLI para configuração de plataformas headless de e-commerce
32 lines (30 loc) • 1.08 kB
text/typescript
export function handleEscape(terminal: any) {
terminal.clear();
terminal.grabInput(true) ;
// Tratamento de sinais para Ctrl+C
process.on('SIGINT', () => {
terminal.clear();
terminal('\n\nSaindo...\n');
process.exit(0);
});
terminal.on('key', async (name: string) => {
if (name === 'ESCAPE') {
terminal.yellow('\n⚠️ Deseja realmente sair? (s/N): ');
const response = await terminal.inputField().promise;
if (response?.toLowerCase() === 's' || response?.toLowerCase() === 'sim' || response?.toLowerCase() === 'y' || response?.toLowerCase() === 'yes' || response === '') {
terminal.grabInput(false);
process.exit(1);
}
}
});
}
export const createSlug = (name: string): string => {
return name
.toLowerCase()
.normalize('NFD')
.replace(/[\u0300-\u036f]/g, '') // Remove acentos
.replace(/[^a-z0-9\s-]/g, '') // Remove caracteres especiais
.replace(/\s+/g, '-') // Substitui espaços por hífens
.replace(/-+/g, '-') // Remove hífens duplicados
.trim();
};