Coverage for src/lexigram/graphql/cli/contributor.py: 100%

9 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-25 04:37 +0800

1"""GraphQL package CLI contributor.""" 

2 

3from __future__ import annotations 

4 

5from lexigram.contracts.cli.types import GeneratorDefinition 

6 

7 

8class GraphQLCliContributor: 

9 """CLI contributor for the lexigram-graphql package.""" 

10 

11 @property 

12 def contributor_id(self) -> str: 

13 """Return the contributor identifier.""" 

14 return "graphql" 

15 

16 def get_generators(self) -> list[GeneratorDefinition]: 

17 """Return generator definitions for GraphQL.""" 

18 return [ 

19 GeneratorDefinition( 

20 name="dataloader", 

21 title="Generate Dataloader", 

22 description="Generate a GraphQL DataLoaderProtocol to solve N+1 problems", 

23 contributor="graphql", 

24 generator_path="lexigram.graphql.cli.generators.dataloader:DataLoaderGenerator", 

25 default_output_dir="src/graphql/dataloaders", 

26 ) 

27 ] 

28 

29 

30__all__ = ["GraphQLCliContributor"]