Capp — Opdrachtregelinterface

Capp is de ingebouwde CLI-bibliotheek van Finch waarmee je rijke consoletoepassingen kunt bouwen met tabellen, kleuren en interactieve invoer.

CappManager en CappController

import 'package:finch/finch_capp.dart';

class AppCommand extends CappController {
  @override
  String get name => 'app:info';

  @override
  String get description => 'App-informatie weergeven';

  @override
  Future<void> handle() async {
    console.info('App-naam: Finch');
    console.success('Status: actief');
    console.warning('Modus: ontwikkeling');
  }
}

Tabeluitvoer

@override
Future<void> handle() async {
  var headers = ['Naam', 'E-mail', 'Rol'];
  var rows = [
    ['Ali Ahmadi', '[email protected]', 'admin'],
    ['Sara Mohammadi', '[email protected]', 'user'],
  ];
  console.table(headers, rows);
}

Kleurenreferentie

Methode Kleur Gebruik
console.info(msg) Blauw Informatieve berichten
console.success(msg) Groen Geslaagde bewerkingen
console.warning(msg) Geel Waarschuwingen
console.error(msg) Rood Fouten
console.line(msg) Standaard Gewone tekst

Gebruikersinvoer

@override
Future<void> handle() async {
  // String lezen
  var name = await console.readString('Voer naam in:');

  // Integer lezen
  var age = await console.readInt('Voer leeftijd in:', def: 18);

  // Boolean lezen
  var confirm = await console.readBool('Weet je het zeker?', def: false);

  // Selecteren uit een lijst
  var env = await console.select(
    'Kies een omgeving:',
    options: ['development', 'staging', 'production'],
  );

  console.info('Jouw keuze: \$env');
}

Voortgangsbalk

var progress = console.progress('Verwerken...', total: 100);
for (var i = 0; i <= 100; i++) {
  await Future.delayed(Duration(milliseconds: 50));
  progress.update(i);
}
progress.done();