simple_graphql_query_builder_gen 0.2.0 copy "simple_graphql_query_builder_gen: ^0.2.0" to clipboard
simple_graphql_query_builder_gen: ^0.2.0 copied to clipboard

A generator for package simple_graphql_query_builder to reduce boilerplate code.

A helper package to support file generation for simple_graphql_query_builder

Usage #

Add dependency to your dev_dependencies:

dev_dependencies:
    simple_graphql_query_builder_gen: ^0.1.0

Annotate class with @QueryResult

@QueryResult
class User {
    @QueryResultField({name: 'username'})
    final String name;
    @QueryResultField({ignore: true})
    final int age;

    const User({required this.name, required this.age,});
}

Add part file_name.g.dart to corresponding class.

Generate class using the following command:

flutter pub run build_runner build --delete-conflicting-outputs

or

dart pub run build_runner build --delete-conflicting-outputs

Annotation #

QueryResult #

To annotate the object whose fields who what to be used for QueryBuilder.fields


Example usage, the 2 below generates the same result

@QueryResult
class MyClass {
    final String? name;

    const MyClass({required this.name});
}
@queryResult
class MyClass {
    final String? name;

    const MyClass({required this.name});
}

QueryResultField #

To annotate the object's individual field whose fields who what to be used for QueryBuilder.fields


Example usage, the 2 below generates the same result

@queryResult
class Example {
  final String? name;
  @QueryResultField(ignore: false, name: 'Test', isCustomType: true)
  final InnerExample? innerExample;
  @QueryResultField(isCustomType: true)
  final InnerExample innerExample2;

  const Example({
    this.name,
    this.innerExample,
    required this.innerExample2,
  });
}

Will have the folowwing result, you can use the functions to provide to QueryBuilder parameter fields

final Map<String, dynamic> exampletoQueryResult = {
  'name': null,
  'Test2': innerExampletoQueryResult,
  'innerExample2': innerExampletoQueryResult,
};

final Map<String, dynamic> innerExampletoQueryResult = {
  'innerField1': null,
};

Arguments


Name Default Value Is required Description
name name of field false To change the name of the field in the genrated method
isCustomType false if type is user created If type is user created type, MUST mark as true
ignore false false Set to true to remove the field from the generated method
2
likes
130
points
3
downloads

Publisher

unverified uploader

Weekly Downloads

A generator for package simple_graphql_query_builder to reduce boilerplate code.

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

analyzer, build, collection, simple_graphql_query_builder, source_gen

More

Packages that depend on simple_graphql_query_builder_gen