Leggere file TOML in Dart

Mattepuffo's logo
Leggere file TOML in Dart

Leggere file TOML in Dart

In questo articolo vediamo come leggere un file TOML in Dart.

Useremo la libreria toml.

Per l'installazione:

dart pub add toml

Questo il file TOML:

title = "Test TOML"
version = "1.0.0"

[database]
host = "localhost"
port = 5432
username = "root"
password = "password"
databases = ["db_test"]
pool_size = 10
ssl_enabled = true

[server]
host = "0.0.0.0"
port = 8080
debug = false
allowed_hosts = ["*"]

[logging]
level = "INFO"
format = "%(asctime)s - %(levelname)s - %(message)s"
handlers = ["console", "file"]

[cache]
enabled = true
ttl = 3600
max_size = 1000

[features]
enable_api = true
rate_limit = 100

Qui un pò di codice:

import 'dart:io';
import 'package:toml/toml.dart';

void main() async {
  final file = File('test.toml');
  final content = await file.readAsString();

  final document = TomlDocument.parse(content);
  final config = document.toMap();

  print('Title: ${config['title']}');
  print('Version: ${config['version']}');

  print('\nDatabase:');
  print('  Host: ${config['database']['host']}');
  print('  Port: ${config['database']['port']}');
  print('  Username: ${config['database']['username']}');
  print('  Databases: ${config['database']['databases']}');
  print('  SSL: ${config['database']['ssl_enabled']}');

  print('\nServer:');
  print('  Host: ${config['server']['host']}');
  print('  Port: ${config['server']['port']}');
  print('  Debug: ${config['server']['debug']}');

  print('\nLogging:');
  print('  Level: ${config['logging']['level']}');
  print('  Handlers: ${config['logging']['handlers']}');

  print('\nCache:');
  print('  Enabled: ${config['cache']['enabled']}');
  print('  TTL: ${config['cache']['ttl']}');

  print('\nFeatures:');
  print('  API: ${config['features']['enable_api']}');
  print('  Rate Limit: ${config['features']['rate_limit']}');

  final dbHost = config['database']['host'];
  final dbPort = config['database']['port'];
  print('\nConnessione a: $dbHost:$dbPort');
}

Enjoy!


Condividi

Commentami!