-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcli.ts
More file actions
53 lines (46 loc) · 1.89 KB
/
cli.ts
File metadata and controls
53 lines (46 loc) · 1.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/usr/bin/env node
import { program } from 'commander';
import { logInfo, logError, logWarn, logDebug } from './index.js'; // ⚠️ Usa path corretto se transpili in `dist/`
const { version } = require('../package.json'); // ✅ prende la versione dinamicamente
program.name('cornlog').description('🧠 Logger CLI CodeCorn - log colorato e opzionale su file').version(version); // 🔁 dinamico
program.requiredOption('-c, --context <context>', 'Contesto del log (es: SYSTEM, DB, API)').requiredOption('-l, --level <level>', 'Livello log: info | warn | error | debug').requiredOption('-m, --message <message>', 'Messaggio da loggare').option('-s, --sub <subContext>', 'Sotto-contesto opzionale');
program.on('--help', () => {
console.log('');
console.log('📌 Esempi:');
console.log('');
console.log(' ✅ Log semplice');
console.log(' $ cornlog -c SYSTEM -l info -m "Avvio completato"');
console.log('');
console.log(' ✅ Log con sub-context');
console.log(' $ cornlog -c DB -l error -m "Connessione fallita" -s DBConnect');
console.log('');
console.log(' ✅ Usabile anche con npm run:');
console.log(' $ npm run cli -- -c API -l warn -m "Endpoint lento"');
console.log('');
console.log(' ✅ Salvataggio su file');
console.log(' Abilita via .env: LOG_STORE=true');
console.log('');
});
program.parse();
const opts = program.opts();
const ctx = opts.context;
const lvl = opts.level.toLowerCase();
const msg = opts.message;
const sub = opts.sub || null;
switch (lvl) {
case 'info':
logInfo(ctx, msg, sub);
break;
case 'warn':
logWarn(ctx, msg, sub);
break;
case 'error':
logError(ctx, new Error(msg), sub);
break;
case 'debug':
logDebug(ctx, msg, sub);
break;
default:
console.error(`❌ Livello non valido: ${lvl}`);
process.exit(1);
}