loadMergedSettings function

Future<SettingsJson> loadMergedSettings({
  1. required String projectDir,
  2. required String userConfigDir,
  3. String? policyPath,
})

Load and merge settings from all sources.

Implementation

Future<SettingsJson> loadMergedSettings({
  required String projectDir,
  required String userConfigDir,
  String? policyPath,
}) async {
  // Load each source
  final policy = policyPath != null ? await loadSettingsFile(policyPath) : null;
  final project = await loadSettingsFile('$projectDir/.neomage/settings.json');
  final local = await loadSettingsFile(
    '$projectDir/.neomage/settings.local.json',
  );
  final user = await loadSettingsFile('$userConfigDir/settings.json');

  // Merge (later sources fill gaps, earlier sources take priority)
  return mergeSettings([?policy, ?project, ?local, ?user]);
}