getGlobalConfig method

GlobalConfig getGlobalConfig()

Get the global config, reading from disk if cache is stale.

Implementation

GlobalConfig getGlobalConfig() {
  if (_cache != null) return _cache!;

  try {
    final file = File(configFilePath);
    if (!file.existsSync()) {
      _cache = GlobalConfig();
      return _cache!;
    }

    final content = file.readAsStringSync();
    final stripped = _stripBOM(content);
    final parsed = _safeParseJSON(stripped);
    if (parsed == null) {
      _cache = GlobalConfig();
      return _cache!;
    }

    _cache = _migrateConfigFields(GlobalConfig.fromJson(parsed), parsed);
    final stat = file.statSync();
    _cacheMtime = stat.modified;
    return _cache!;
  } catch (_) {
    _cache = GlobalConfig();
    return _cache!;
  }
}