@syldel/micro-clack
v1.0.0
Published
Minimal interactive CLI prompts, zero dependencies
Maintainers
Readme
@syldel/micro-clack
Minimal interactive CLI prompts library, zero dependencies.
Provides text input, confirm prompts, select menus with scroll, and spinner with colors.
🚀 Features
- Text input (
promptText) - Yes/No confirm (
promptConfirm) - Select menu with scroll (
promptSelect) - Spinner with ANSI colors (
Spinner) - Pure TypeScript, zero dependencies
- Works on Node 18+ and TypeScript 5+
🛠 Usage
import { promptText, promptConfirm, promptSelect, Spinner } from '@syldel/micro-clack';
(async () => {
// Text
const name = await promptText('Enter your name', {
validate: (value) => value.length > 0 || 'Name cannot be empty'
});
// Confirm
const proceed = await promptConfirm('Do you want to continue?');
if (!proceed) process.exit();
// Select
const fruits = await promptSelect<{ id: number; code: string }>('Select a fruit', [
{ label: 'Apple', value: { id: 1, code: 'APL' } },
{ label: 'Banana', value: { id: 2, code: 'BNA' } },
{ label: 'Cherry', value: { id: 3, code: 'CHR' } },
]);
// Spinner
const spinner = new Spinner();
spinner.start('Processing');
await new Promise(r => setTimeout(r, 2000));
spinner.stop('Done!');
// Colors
console.log(colors.redText('❌ Error: Something went wrong!'));
console.log(colors.color('Hello World', colors.code.blue));
})();👨💻 Développement
Installation des dépendances
npm installCompilation
Génère le dossier dist/ contenant les fichiers JavaScript et les déclarations de types (.d.ts).
npm run buildQualité du code
Le projet utilise ESLint pour la logique et Prettier pour le formatage.
npx eslint .🔗 Utilisation en local (Development Workflow)
Pour utiliser ce package dans tes autres projets sans le publier sur NPM :
Dans le dossier
micro-clack:npm linkDans ton projet (ex:
my-nest-project) :npm link @syldel/micro-clack
📦 Publication
Le projet utilise des Granular Access Tokens pour la publication afin de contourner la double authentification (2FA) manuelle tout en maintenant une sécurité maximale.
Configuration du Token
- Générer un token sur NPM avec les permissions
Read and Write. - Restreindre l'accès au package
@syldel/micro-clackuniquement. - Utiliser l'option
Bypass 2FApour permettre l'automatisation.
Commande de publication rapide
Si tu n'utilises pas de fichier .npmrc, tu peux publier en passant le token directement :
npm publish --access public --//registry.npmjs.org/:_authToken=TON_TOKEN_ICIConfiguration de la publication
Créez un fichier .npmrc à la racine (ignoré par Git) pour l'authentification :
//registry.npmjs.org/:_authToken=npm_votre_token_iciPublier une nouvelle version
La commande suivante automatise le build, l'incrémentation de version et l'envoi vers NPM :
npm run releasePousse le commit ET le tag sur GitHub
git push origin main --follow-tags