generateDefinitions function
Iterable<QueryDefinition>
generateDefinitions({
- required DocumentNode schema,
- required TypeDefinitionNodeVisitor typeDefinitionNodeVisitor,
- required String path,
- required DocumentNode document,
- required GeneratorOptions options,
- required SchemaMap schemaMap,
- required List<
FragmentDefinitionNode> fragmentsCommon, - required CanonicalVisitor canonicalVisitor,
Generates query definitions from a single GraphQL document.
This function processes a single GraphQL document and generates all necessary query definitions. It's typically used internally by the generation pipeline but can also be used directly for more granular control.
Parameters:
schema- The GraphQL schema documenttypeDefinitionNodeVisitor- Visitor for type definitions (legacy parameter)path- The file path for contextdocument- The GraphQL document to processoptions- Generator configuration optionsschemaMap- Schema mapping configurationfragmentsCommon- Common fragments to includecanonicalVisitor- Pre-configured canonical visitor
Returns: An iterable of QueryDefinition objects representing the generated queries
Throws:
- GenerationProcessError if generation fails
- MissingRootTypeException if root type is not found
Note: This function is primarily used internally. For most use cases, prefer using generateLibrary instead.
Implementation
Iterable<QueryDefinition> generateDefinitions({
required DocumentNode schema,
required TypeDefinitionNodeVisitor typeDefinitionNodeVisitor,
required String path,
required DocumentNode document,
required GeneratorOptions options,
required SchemaMap schemaMap,
required List<FragmentDefinitionNode> fragmentsCommon,
required CanonicalVisitor canonicalVisitor,
}) {
// Create services for this generation
final schemaService = SchemaService(schema);
const fileService = FileService.instance;
final generationService = GenerationService(
schemaService: schemaService,
fileService: fileService,
);
// Use GenerationService to generate definitions
return generationService.generateDefinitions(
path: path,
document: document,
options: options,
schemaMap: schemaMap,
fragmentsCommon: fragmentsCommon,
canonicalVisitor: canonicalVisitor,
);
}