resolveGenerator method

ResolvedGeneratorConfig resolveGenerator(
  1. LoadedSchemaDocument loaded, {
  2. String? generatorName,
  3. String expectedProvider = 'comon_orm',
  4. String fallbackOutputPath = 'lib/generated/comon_orm_client.dart',
})

Resolves generator settings for a loaded schema.

Implementation

ResolvedGeneratorConfig resolveGenerator(
  LoadedSchemaDocument loaded, {
  String? generatorName,
  String expectedProvider = 'comon_orm',
  String fallbackOutputPath = 'lib/generated/comon_orm_client.dart',
}) {
  final generator = _selectGenerator(loaded.schema, generatorName);
  if (generator == null) {
    return ResolvedGeneratorConfig(
      name: generatorName ?? 'client',
      provider: expectedProvider,
      outputPath: _resolveRelativePath(loaded.filePath, fallbackOutputPath),
      wasDeclared: false,
    );
  }

  final provider = _resolveScalarValue(
    generator.properties['provider'],
    propertyName: 'generator ${generator.name}.provider',
  );
  if (provider != expectedProvider) {
    throw FormatException(
      'Generator "${generator.name}" uses provider "$provider", expected "$expectedProvider".',
    );
  }

  final rawOutput = generator.properties['output'];
  final outputPath = rawOutput == null || rawOutput.trim().isEmpty
      ? _resolveRelativePath(loaded.filePath, fallbackOutputPath)
      : _resolveGeneratorOutputPath(loaded.filePath, rawOutput);

  return ResolvedGeneratorConfig(
    name: generator.name,
    provider: provider,
    outputPath: outputPath,
    wasDeclared: true,
  );
}