Sviluppo e rilascio
← Torna alla home · Guida all’utilizzo
Prerequisiti
- Node.js 20
nats-servernel PATH per i test d’integrazione (brew install nats-server). Se manca, i test d’integrazione si saltano con un avviso (mai errore).
Comandi
npm install # dipendenze
npm run build # bundle esbuild → dist/extension.js
npm run watch # build in watch
npm test # unit + integrazione (nats-server locale, porta random)
npx tsc --noEmit # typecheck (esbuild non typecheckka)
npx @vscode/vsce package --no-dependencies # .vsix locale
Premi F5 in VS Code per aprire l’Extension Host e provare l’estensione.
Architettura
src/core/— logica pura, senza importvscode(testabile con Node):contexts.ts— parser dei context CLI +redactedLabel()(mai credenziali in chiaro).client.ts— wrappernats.js: connect, stato connessione (connectionState), publish, request, subscribe, JetStream (list/purge/delete).payload.ts— render payload (JSON/testo/binario), riga di log, match subject, validazione subject.headers.ts— parsing headerk=v/k: v.
src/extension.ts— glue UI: tree, comandi, status bar, Output channel.test/run.ts— unit + integrazione (spawna unnats-serverusa-e-getta).
Gate (prima di ogni commit)
npx tsc --noEmit e npm test devono essere verdi — sono gli stessi check della CI.
La logica nuova va nel core con relativo test.
CI/CD
.github/workflows/ci.yml (guidato dai tag):
| Job | Quando | Cosa fa |
|---|---|---|
test |
push/PR | install nats-server + npm test |
type-check |
push/PR | tsc --noEmit |
build |
dopo test+type-check | bundle + controllo dimensione |
package |
tag v* |
.vsix allegato alla release GitHub |
publish-marketplace |
tag v* |
vsce publish con secrets.VSCE_TOKEN (env marketplace) |
Rilascio
- Bump
versioninpackage.json+ nuova sezione inCHANGELOG.md(Keep a Changelog, in italiano). - Commit, poi tag annotato:
git tag -a vX.Y.Z -m "Release X.Y.Z"(laversiondeve coincidere col tag). git push origin main && git push origin vX.Y.Z→ parte package + publish.
Prerequisiti Marketplace: publisher allannava95 e secret VSCE_TOKEN (PAT Azure DevOps con
scope Marketplace → Manage). Verifica con npx @vscode/vsce verify-pat allannava95.
Documentazione
Il sito che stai leggendo è servito da docs/ (Jekyll) e ri-deployato a ogni push su main
da .github/workflows/pages.yml. Ogni modifica funzionale va riflessa in docs/ nello stesso commit.