Skip to content

Commit 3b098ad

Browse files
committed
fixed cli hints
1 parent aad2fb4 commit 3b098ad

5 files changed

Lines changed: 171 additions & 37 deletions

File tree

.npmignore

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,12 @@ test/
88
__tests__/
99
tsconfig.json
1010
.vscode/
11-
.DS_Store
11+
.DS_Store
12+
cli.ts
13+
index.ts
14+
struttura_progetto.txt
15+
tsconfig.json
16+
node_modules/
17+
.github/
18+
.gitignore
19+
_STASHED/

README.md

Lines changed: 76 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
> Colori, contesto, stack trace, log file, livelli e supporto a `.env`.
55
> Basato su [`console-log-colors`](https://www.npmjs.com/package/console-log-colors) e ottimizzato per ambienti CLI/DevOps.
66
7+
[![@codecorn/corn-logger](https://img.shields.io/badge/CODECORN-CORNLOGGER-yellow?style=for-the-badge&logo=vercel)](https://www.npmjs.com/package/@codecorn/corn-logger)
8+
79
[![Downloads](https://img.shields.io/npm/dt/@codecorn/corn-logger?color=blue&label=npm%20downloads)](https://www.npmjs.com/package/@codecorn/corn-logger)
810
[![npm version](https://img.shields.io/npm/v/@codecorn/corn-logger?color=brightgreen&logo=npm)](https://www.npmjs.com/package/@codecorn/corn-logger)
911
[![GitHub stars](https://img.shields.io/github/stars/CodeCornTech/corn-logger?style=social)](https://github.com/CodeCornTech/corn-logger)
@@ -126,6 +128,7 @@ corn-logger/
126128
├── src/ # Codice sorgente TS
127129
├── types/ # Tipi definiti
128130
├── index.ts # Entry point
131+
├── index.ts # Cli script
129132
├── .env # (opzionale)
130133
├── .npmignore
131134
├── package.json
@@ -138,14 +141,86 @@ corn-logger/
138141

139142
## 🛠 Integrazione CLI (facoltativa)
140143

141-
Puoi usare il logger anche da terminale:
144+
Puoi usare il logger anche direttamente da terminale in diversi modi:
145+
146+
### ✅ 1. Esecuzione diretta con `npx`
142147

143148
```bash
144149
npx cornlog --context "SYSTEM" --level info --message "Avvio completato"
145150
```
146151

147152
---
148153

154+
### ✅ 2. Esecuzione tramite `npm run`
155+
156+
Usa lo script definito nel tuo `package.json`:
157+
158+
```bash
159+
npm run cli -- -c SYSTEM -l info -m "Avvio completato"
160+
```
161+
162+
> Attenzione al doppio `--`: serve per passare argomenti al comando CLI.
163+
164+
---
165+
166+
### ✅ 3. Esecuzione via `npm link` (globale)
167+
168+
Se hai eseguito:
169+
170+
```bash
171+
npm run build
172+
npm link
173+
```
174+
175+
Puoi usare direttamente il comando globale ovunque nel sistema:
176+
177+
```bash
178+
cornlog -c SYSTEM -l info -m "Avvio completato"
179+
```
180+
181+
---
182+
183+
### 🎯 Altri esempi CLI
184+
185+
```bash
186+
cornlog -c DB -l warn -m "Query lenta" -s "postgres"
187+
cornlog -c API -l error -m "Token non valido" -s "AuthMiddleware"
188+
cornlog -c JOB -l debug -m "Task schedulato" -s "cron-runner"
189+
cornlog -c INIT -l info -m "Configurazione caricata"
190+
```
191+
192+
> I log verranno colorati e stampati a terminale. Se `LOG_STORE=true` nel tuo `.env`, verranno anche salvati in `logs/YYYY-MM-DD.log`.
193+
194+
---
195+
196+
## 📖 Guida rapida CLI (`--help`)
197+
198+
Per vedere tutte le opzioni disponibili della CLI, puoi usare:
199+
200+
```bash
201+
cornlog --help
202+
```
203+
204+
Output:
205+
206+
```txt
207+
Usage: cornlog [options]
208+
209+
🧠 Logger CLI CodeCorn - log colorato e opzionale su file
210+
211+
Options:
212+
-c, --context <context> Contesto del log (es: SYSTEM, DB, API) [obbligatorio]
213+
-l, --level <level> Livello log: info | warn | error | debug [obbligatorio]
214+
-m, --message <message> Messaggio da loggare [obbligatorio]
215+
-s, --sub <subContext> Sotto-contesto opzionale
216+
-V, --version Mostra versione
217+
-h, --help Mostra questo aiuto
218+
```
219+
220+
> ⚠️ Tutte le opzioni marcate come _obbligatorie_ devono essere specificate, altrimenti la CLI restituirà un errore.
221+
222+
---
223+
149224
## 🧪 Test
150225

151226
```bash

cli.ts

Lines changed: 43 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,35 @@
11
#!/usr/bin/env node
2-
import { logInfo, logError, logWarn, logDebug } from './index'; // ⚠️ Usa path corretto se transpili in `dist/`
32
import { program } from 'commander';
3+
import { logInfo, logError, logWarn, logDebug } from './index.js'; // ⚠️ Usa path corretto se transpili in `dist/`
44

5-
program.name('cornlog').description('🧠 Logger CLI CodeCorn - log colorato e opzionale su file').version('1.0.2');
5+
program
6+
.name('cornlog')
7+
.description('🧠 Logger CLI CodeCorn - log colorato e opzionale su file')
8+
.version('1.0.3')
9+
.requiredOption('-c, --context <context>', 'Contesto del log (es: SYSTEM, DB, API)')
10+
.requiredOption('-l, --level <level>', 'Livello log: info | warn | error | debug')
11+
.requiredOption('-m, --message <message>', 'Messaggio da loggare')
12+
.option('-s, --sub <subContext>', 'Sotto-contesto opzionale');
613

7-
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').parse();
14+
program.on('--help', () => {
15+
console.log('');
16+
console.log('📌 Esempi:');
17+
console.log('');
18+
console.log(' ✅ Log semplice');
19+
console.log(' $ cornlog -c SYSTEM -l info -m "Avvio completato"');
20+
console.log('');
21+
console.log(' ✅ Log con sub-context');
22+
console.log(' $ cornlog -c DB -l error -m "Connessione fallita" -s DBConnect');
23+
console.log('');
24+
console.log(' ✅ Usabile anche con npm run:');
25+
console.log(' $ npm run cli -- -c API -l warn -m "Endpoint lento"');
26+
console.log('');
27+
console.log(' ✅ Salvataggio su file');
28+
console.log(' Abilita via .env: LOG_STORE=true');
29+
console.log('');
30+
});
31+
32+
program.parse();
833

934
const opts = program.opts();
1035

@@ -14,19 +39,19 @@ const msg = opts.message;
1439
const sub = opts.sub || null;
1540

1641
switch (lvl) {
17-
case 'info':
18-
logInfo(ctx, msg, sub);
19-
break;
20-
case 'warn':
21-
logWarn(ctx, msg, sub);
22-
break;
23-
case 'error':
24-
logError(ctx, new Error(msg), sub);
25-
break;
26-
case 'debug':
27-
logDebug(ctx, msg, sub);
28-
break;
29-
default:
30-
console.error(`❌ Livello non valido: ${lvl}`);
31-
process.exit(1);
42+
case 'info':
43+
logInfo(ctx, msg, sub);
44+
break;
45+
case 'warn':
46+
logWarn(ctx, msg, sub);
47+
break;
48+
case 'error':
49+
logError(ctx, new Error(msg), sub);
50+
break;
51+
case 'debug':
52+
logDebug(ctx, msg, sub);
53+
break;
54+
default:
55+
console.error(`❌ Livello non valido: ${lvl}`);
56+
process.exit(1);
3257
}

package.json

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,20 @@
11
{
22
"name": "@codecorn/corn-logger",
3-
"version": "1.0.2",
4-
"description": "ANSI-friendly TypeScript logger with console-log-colors and optional file storage. Designed for Node.js apps and CLI tools.",
3+
"version": "1.0.3",
4+
"description": "🧠 Logger CodeCorn CLI + Console + File Logger - colorato e strutturato",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",
7-
"files": [
8-
"dist",
9-
"README.md",
10-
"LICENSE"
11-
],
12-
"scripts": {
13-
"build": "tsc && chmod +x dist/cli.js && npm link",
14-
"dev": "tsx src/consoleHelpers.ts",
15-
"cli": "tsx cli.ts",
16-
"test": "echo \"TODO: Aggiungi i test\" && exit 0",
17-
"prepare": "npm run build"
18-
},
197
"bin": {
208
"cornlog": "dist/cli.js"
219
},
10+
"scripts": {
11+
"build": "tsc && chmod +x dist/cli.js && npm link",
12+
"dev": "tsc --watch",
13+
"lint": "tsc --noEmit",
14+
"cli": "npx tsx cli.ts",
15+
"prepare": "npm run build",
16+
"tree": "tree -I 'node_modules|dist|.git|.DS_Store|*.zip|_STASHED|logs' -a -L 5 > struttura_progetto.txt"
17+
},
2218
"repository": {
2319
"type": "git",
2420
"url": "git+https://github.com/CodeCornTech/corn-logger.git"
@@ -34,23 +30,32 @@
3430
"file",
3531
"ansi",
3632
"debug",
37-
"codecorn"
33+
"codecorn",
34+
"console-log",
35+
"file-logger",
36+
"cli"
3837
],
3938
"author": "Federico Girolami <f.girolami@codecorn.it>",
4039
"license": "MIT",
4140
"bugs": {
4241
"url": "https://github.com/CodeCornTech/corn-logger/issues"
4342
},
4443
"homepage": "https://github.com/CodeCornTech/corn-logger#readme",
44+
"files": [
45+
"dist",
46+
"README.md",
47+
"LICENSE"
48+
],
4549
"devDependencies": {
4650
"@types/node": "^24.2.0",
4751
"eslint": "^8.56.0",
4852
"ts-node": "^10.9.1",
49-
"typescript": "^5.9.2"
53+
"typescript": "^5.9.2",
54+
"tsx": "^4.8.0"
5055
},
5156
"dependencies": {
5257
"commander": "^14.0.0",
5358
"console-log-colors": "^0.5.0",
5459
"dotenv": "^17.2.1"
5560
}
56-
}
61+
}

struttura_progetto.txt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
.
2+
├── .env
3+
├── .gitattributes
4+
├── .github
5+
│   └── workflows
6+
│   └── test.yml
7+
├── .gitignore
8+
├── .npmignore
9+
├── cli.ts
10+
├── index.ts
11+
├── LICENSE
12+
├── package.json
13+
├── README.md
14+
├── src
15+
│   └── consoleHelpers.ts
16+
├── struttura_progetto.txt
17+
├── tsconfig.json
18+
└── types
19+
└── consoleHelpers.d.ts
20+
21+
5 directories, 14 files

0 commit comments

Comments
 (0)