resolveOrmProjectConfig function

ResolvedOrmProjectConfig resolveOrmProjectConfig({
  1. String? configPath,
  2. bool requireConfig = false,
})

Resolves project config, falling back to convention defaults when ormed.yaml is absent.

Implementation

ResolvedOrmProjectConfig resolveOrmProjectConfig({
  String? configPath,
  bool requireConfig = false,
}) {
  if (configPath != null && configPath.trim().isNotEmpty) {
    final context = resolveOrmProject(configPath: configPath);
    return ResolvedOrmProjectConfig(
      root: context.root,
      config: loadOrmProjectConfig(context.configFile!),
      configFile: context.configFile,
    );
  }

  final discoveredConfig = findOrmConfigFile();
  if (discoveredConfig != null) {
    final root = findProjectRoot(discoveredConfig.parent);
    return ResolvedOrmProjectConfig(
      root: root,
      config: loadOrmProjectConfig(discoveredConfig),
      configFile: discoveredConfig,
    );
  }

  if (requireConfig) {
    throw StateError(
      'Missing ormed.yaml. Run `ormed init --with-config` or provide --config path.',
    );
  }

  final root = findProjectRoot();
  return ResolvedOrmProjectConfig(
    root: root,
    config: _defaultOrmProjectConfigForRoot(root),
    configFile: null,
  );
}