SwayConfig.load constructor

SwayConfig.load([
  1. String path = 'lib/i18n/sway.config.json'
])

Loads config from path, or returns defaults if missing.

Implementation

factory SwayConfig.load([String path = 'lib/i18n/sway.config.json']) {
  final file = File(path);
  if (!file.existsSync()) return defaults;

  final raw = json.decode(file.readAsStringSync()) as Map<String, dynamic>;
  final strategy = raw['fallbackStrategy'] as String? ?? 'baseLocale';
  if (strategy != 'baseLocale' && strategy != 'key') {
    throw FormatException(
      'fallbackStrategy must be "baseLocale" or "key", got "$strategy"',
    );
  }
  return SwayConfig(
    baseLocale: raw['baseLocale'] as String? ?? defaults.baseLocale,
    localeDir: raw['localeDir'] as String? ?? defaults.localeDir,
    outputFile: raw['outputFile'] as String? ?? defaults.outputFile,
    fallbackStrategy: strategy,
  );
}