diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index ac6621f1..fbe1ab13 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -5,7 +5,7 @@ version: 2 updates: - - package-ecosystem: "" # See documentation for possible values + - package-ecosystem: "pub" # See documentation for possible values directory: "/" # Location of package manifests schedule: interval: "weekly" diff --git a/.github/workflows/dart.yml b/.github/workflows/dart.yml index e311bd4f..d7adcb8a 100644 --- a/.github/workflows/dart.yml +++ b/.github/workflows/dart.yml @@ -123,13 +123,14 @@ jobs: multipack --only $PACKAGE exec dart analyze --fatal-warnings . builder_tests: strategy: + fail-fast: false matrix: package: - end_to_end_test - end_to_end_test_tristate runs-on: ubuntu-latest container: - image: dart + image: dart:latest name: Check ${{ matrix.package }} env: PACKAGE: ${{ matrix.package }} diff --git a/codegen/end_to_end_test/build.yaml b/codegen/end_to_end_test/build.yaml index 845da27f..febda283 100644 --- a/codegen/end_to_end_test/build.yaml +++ b/codegen/end_to_end_test/build.yaml @@ -37,6 +37,7 @@ targets: enabled: true options: schema: end_to_end_test|lib/graphql/schema.graphql + reuse_fragments: false when_extensions: when: true maybeWhen: true diff --git a/codegen/end_to_end_test/lib/directives/__generated__/hero_include.ast.gql.dart b/codegen/end_to_end_test/lib/directives/__generated__/hero_include.ast.gql.dart new file mode 100644 index 00000000..e46ca976 --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/__generated__/hero_include.ast.gql.dart @@ -0,0 +1,58 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:gql/ast.dart' as _i1; + +const HeroInclude = _i1.OperationDefinitionNode( + type: _i1.OperationType.query, + name: _i1.NameNode(value: 'HeroInclude'), + variableDefinitions: [ + _i1.VariableDefinitionNode( + variable: _i1.VariableNode(name: _i1.NameNode(value: 'includeId')), + type: _i1.NamedTypeNode( + name: _i1.NameNode(value: 'Boolean'), + isNonNull: true, + ), + defaultValue: _i1.DefaultValueNode(value: null), + directives: [], + ) + ], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'hero'), + alias: null, + arguments: [], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'id'), + alias: null, + arguments: [], + directives: [ + _i1.DirectiveNode( + name: _i1.NameNode(value: 'include'), + arguments: [ + _i1.ArgumentNode( + name: _i1.NameNode(value: 'if'), + value: + _i1.VariableNode(name: _i1.NameNode(value: 'includeId')), + ) + ], + ) + ], + selectionSet: null, + ), + _i1.FieldNode( + name: _i1.NameNode(value: 'name'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ), + ]), + ) + ]), +); +const document = _i1.DocumentNode(definitions: [HeroInclude]); diff --git a/codegen/end_to_end_test/lib/directives/__generated__/hero_include.data.gql.dart b/codegen/end_to_end_test/lib/directives/__generated__/hero_include.data.gql.dart new file mode 100644 index 00000000..70561a4c --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/__generated__/hero_include.data.gql.dart @@ -0,0 +1,68 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test/graphql/__generated__/serializers.gql.dart' + as _i1; + +part 'hero_include.data.gql.g.dart'; + +abstract class GHeroIncludeData + implements Built { + GHeroIncludeData._(); + + factory GHeroIncludeData([void Function(GHeroIncludeDataBuilder b) updates]) = + _$GHeroIncludeData; + + static void _initializeBuilder(GHeroIncludeDataBuilder b) => + b..G__typename = 'Query'; + + @BuiltValueField(wireName: '__typename') + String get G__typename; + GHeroIncludeData_hero? get hero; + static Serializer get serializer => + _$gHeroIncludeDataSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroIncludeData.serializer, + this, + ) as Map); + + static GHeroIncludeData? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroIncludeData.serializer, + json, + ); +} + +abstract class GHeroIncludeData_hero + implements Built { + GHeroIncludeData_hero._(); + + factory GHeroIncludeData_hero( + [void Function(GHeroIncludeData_heroBuilder b) updates]) = + _$GHeroIncludeData_hero; + + static void _initializeBuilder(GHeroIncludeData_heroBuilder b) => + b..G__typename = 'Character'; + + @BuiltValueField(wireName: '__typename') + String get G__typename; + String? get id; + String get name; + static Serializer get serializer => + _$gHeroIncludeDataHeroSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroIncludeData_hero.serializer, + this, + ) as Map); + + static GHeroIncludeData_hero? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroIncludeData_hero.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test/lib/directives/__generated__/hero_include.data.gql.g.dart b/codegen/end_to_end_test/lib/directives/__generated__/hero_include.data.gql.g.dart new file mode 100644 index 00000000..55b6cdd1 --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/__generated__/hero_include.data.gql.g.dart @@ -0,0 +1,362 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_include.data.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$gHeroIncludeDataSerializer = + new _$GHeroIncludeDataSerializer(); +Serializer _$gHeroIncludeDataHeroSerializer = + new _$GHeroIncludeData_heroSerializer(); + +class _$GHeroIncludeDataSerializer + implements StructuredSerializer { + @override + final Iterable types = const [GHeroIncludeData, _$GHeroIncludeData]; + @override + final String wireName = 'GHeroIncludeData'; + + @override + Iterable serialize(Serializers serializers, GHeroIncludeData object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + ]; + Object? value; + value = object.hero; + if (value != null) { + result + ..add('hero') + ..add(serializers.serialize(value, + specifiedType: const FullType(GHeroIncludeData_hero))); + } + return result; + } + + @override + GHeroIncludeData deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroIncludeDataBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'hero': + result.hero.replace(serializers.deserialize(value, + specifiedType: const FullType(GHeroIncludeData_hero))! + as GHeroIncludeData_hero); + break; + } + } + + return result.build(); + } +} + +class _$GHeroIncludeData_heroSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroIncludeData_hero, + _$GHeroIncludeData_hero + ]; + @override + final String wireName = 'GHeroIncludeData_hero'; + + @override + Iterable serialize( + Serializers serializers, GHeroIncludeData_hero object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + 'name', + serializers.serialize(object.name, specifiedType: const FullType(String)), + ]; + Object? value; + value = object.id; + if (value != null) { + result + ..add('id') + ..add(serializers.serialize(value, + specifiedType: const FullType(String))); + } + return result; + } + + @override + GHeroIncludeData_hero deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroIncludeData_heroBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(String)) as String?; + break; + case 'name': + result.name = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + } + } + + return result.build(); + } +} + +class _$GHeroIncludeData extends GHeroIncludeData { + @override + final String G__typename; + @override + final GHeroIncludeData_hero? hero; + + factory _$GHeroIncludeData( + [void Function(GHeroIncludeDataBuilder)? updates]) => + (new GHeroIncludeDataBuilder()..update(updates))._build(); + + _$GHeroIncludeData._({required this.G__typename, this.hero}) : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroIncludeData', 'G__typename'); + } + + @override + GHeroIncludeData rebuild(void Function(GHeroIncludeDataBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroIncludeDataBuilder toBuilder() => + new GHeroIncludeDataBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroIncludeData && + G__typename == other.G__typename && + hero == other.hero; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, hero.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroIncludeData') + ..add('G__typename', G__typename) + ..add('hero', hero)) + .toString(); + } +} + +class GHeroIncludeDataBuilder + implements Builder { + _$GHeroIncludeData? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + GHeroIncludeData_heroBuilder? _hero; + GHeroIncludeData_heroBuilder get hero => + _$this._hero ??= new GHeroIncludeData_heroBuilder(); + set hero(GHeroIncludeData_heroBuilder? hero) => _$this._hero = hero; + + GHeroIncludeDataBuilder() { + GHeroIncludeData._initializeBuilder(this); + } + + GHeroIncludeDataBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _hero = $v.hero?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(GHeroIncludeData other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroIncludeData; + } + + @override + void update(void Function(GHeroIncludeDataBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroIncludeData build() => _build(); + + _$GHeroIncludeData _build() { + _$GHeroIncludeData _$result; + try { + _$result = _$v ?? + new _$GHeroIncludeData._( + G__typename: BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroIncludeData', 'G__typename'), + hero: _hero?.build()); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'hero'; + _hero?.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroIncludeData', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$GHeroIncludeData_hero extends GHeroIncludeData_hero { + @override + final String G__typename; + @override + final String? id; + @override + final String name; + + factory _$GHeroIncludeData_hero( + [void Function(GHeroIncludeData_heroBuilder)? updates]) => + (new GHeroIncludeData_heroBuilder()..update(updates))._build(); + + _$GHeroIncludeData_hero._( + {required this.G__typename, this.id, required this.name}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroIncludeData_hero', 'G__typename'); + BuiltValueNullFieldError.checkNotNull( + name, r'GHeroIncludeData_hero', 'name'); + } + + @override + GHeroIncludeData_hero rebuild( + void Function(GHeroIncludeData_heroBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroIncludeData_heroBuilder toBuilder() => + new GHeroIncludeData_heroBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroIncludeData_hero && + G__typename == other.G__typename && + id == other.id && + name == other.name; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, id.hashCode); + _$hash = $jc(_$hash, name.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroIncludeData_hero') + ..add('G__typename', G__typename) + ..add('id', id) + ..add('name', name)) + .toString(); + } +} + +class GHeroIncludeData_heroBuilder + implements Builder { + _$GHeroIncludeData_hero? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + String? _id; + String? get id => _$this._id; + set id(String? id) => _$this._id = id; + + String? _name; + String? get name => _$this._name; + set name(String? name) => _$this._name = name; + + GHeroIncludeData_heroBuilder() { + GHeroIncludeData_hero._initializeBuilder(this); + } + + GHeroIncludeData_heroBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _id = $v.id; + _name = $v.name; + _$v = null; + } + return this; + } + + @override + void replace(GHeroIncludeData_hero other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroIncludeData_hero; + } + + @override + void update(void Function(GHeroIncludeData_heroBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroIncludeData_hero build() => _build(); + + _$GHeroIncludeData_hero _build() { + final _$result = _$v ?? + new _$GHeroIncludeData_hero._( + G__typename: BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroIncludeData_hero', 'G__typename'), + id: id, + name: BuiltValueNullFieldError.checkNotNull( + name, r'GHeroIncludeData_hero', 'name')); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test/lib/directives/__generated__/hero_include.req.gql.dart b/codegen/end_to_end_test/lib/directives/__generated__/hero_include.req.gql.dart new file mode 100644 index 00000000..2dbc13ae --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/__generated__/hero_include.req.gql.dart @@ -0,0 +1,44 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test/directives/__generated__/hero_include.ast.gql.dart' + as _i2; +import 'package:end_to_end_test/directives/__generated__/hero_include.var.gql.dart' + as _i3; +import 'package:end_to_end_test/graphql/__generated__/serializers.gql.dart' + as _i4; +import 'package:gql_exec/gql_exec.dart' as _i1; + +part 'hero_include.req.gql.g.dart'; + +abstract class GHeroInclude + implements Built { + GHeroInclude._(); + + factory GHeroInclude([void Function(GHeroIncludeBuilder b) updates]) = + _$GHeroInclude; + + static void _initializeBuilder(GHeroIncludeBuilder b) => b + ..operation = _i1.Operation( + document: _i2.document, + operationName: 'HeroInclude', + ); + + _i3.GHeroIncludeVars get vars; + _i1.Operation get operation; + static Serializer get serializer => _$gHeroIncludeSerializer; + + Map toJson() => (_i4.serializers.serializeWith( + GHeroInclude.serializer, + this, + ) as Map); + + static GHeroInclude? fromJson(Map json) => + _i4.serializers.deserializeWith( + GHeroInclude.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test/lib/directives/__generated__/hero_include.req.gql.g.dart b/codegen/end_to_end_test/lib/directives/__generated__/hero_include.req.gql.g.dart new file mode 100644 index 00000000..a1c62846 --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/__generated__/hero_include.req.gql.g.dart @@ -0,0 +1,174 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_include.req.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$gHeroIncludeSerializer = + new _$GHeroIncludeSerializer(); + +class _$GHeroIncludeSerializer implements StructuredSerializer { + @override + final Iterable types = const [GHeroInclude, _$GHeroInclude]; + @override + final String wireName = 'GHeroInclude'; + + @override + Iterable serialize(Serializers serializers, GHeroInclude object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + 'vars', + serializers.serialize(object.vars, + specifiedType: const FullType(_i3.GHeroIncludeVars)), + 'operation', + serializers.serialize(object.operation, + specifiedType: const FullType(_i1.Operation)), + ]; + + return result; + } + + @override + GHeroInclude deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroIncludeBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'vars': + result.vars.replace(serializers.deserialize(value, + specifiedType: const FullType(_i3.GHeroIncludeVars))! + as _i3.GHeroIncludeVars); + break; + case 'operation': + result.operation = serializers.deserialize(value, + specifiedType: const FullType(_i1.Operation))! as _i1.Operation; + break; + } + } + + return result.build(); + } +} + +class _$GHeroInclude extends GHeroInclude { + @override + final _i3.GHeroIncludeVars vars; + @override + final _i1.Operation operation; + + factory _$GHeroInclude([void Function(GHeroIncludeBuilder)? updates]) => + (new GHeroIncludeBuilder()..update(updates))._build(); + + _$GHeroInclude._({required this.vars, required this.operation}) : super._() { + BuiltValueNullFieldError.checkNotNull(vars, r'GHeroInclude', 'vars'); + BuiltValueNullFieldError.checkNotNull( + operation, r'GHeroInclude', 'operation'); + } + + @override + GHeroInclude rebuild(void Function(GHeroIncludeBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroIncludeBuilder toBuilder() => new GHeroIncludeBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroInclude && + vars == other.vars && + operation == other.operation; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, vars.hashCode); + _$hash = $jc(_$hash, operation.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroInclude') + ..add('vars', vars) + ..add('operation', operation)) + .toString(); + } +} + +class GHeroIncludeBuilder + implements Builder { + _$GHeroInclude? _$v; + + _i3.GHeroIncludeVarsBuilder? _vars; + _i3.GHeroIncludeVarsBuilder get vars => + _$this._vars ??= new _i3.GHeroIncludeVarsBuilder(); + set vars(_i3.GHeroIncludeVarsBuilder? vars) => _$this._vars = vars; + + _i1.Operation? _operation; + _i1.Operation? get operation => _$this._operation; + set operation(_i1.Operation? operation) => _$this._operation = operation; + + GHeroIncludeBuilder() { + GHeroInclude._initializeBuilder(this); + } + + GHeroIncludeBuilder get _$this { + final $v = _$v; + if ($v != null) { + _vars = $v.vars.toBuilder(); + _operation = $v.operation; + _$v = null; + } + return this; + } + + @override + void replace(GHeroInclude other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroInclude; + } + + @override + void update(void Function(GHeroIncludeBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroInclude build() => _build(); + + _$GHeroInclude _build() { + _$GHeroInclude _$result; + try { + _$result = _$v ?? + new _$GHeroInclude._( + vars: vars.build(), + operation: BuiltValueNullFieldError.checkNotNull( + operation, r'GHeroInclude', 'operation')); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'vars'; + vars.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroInclude', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test/lib/directives/__generated__/hero_include.var.gql.dart b/codegen/end_to_end_test/lib/directives/__generated__/hero_include.var.gql.dart new file mode 100644 index 00000000..b45a4687 --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/__generated__/hero_include.var.gql.dart @@ -0,0 +1,33 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test/graphql/__generated__/serializers.gql.dart' + as _i1; + +part 'hero_include.var.gql.g.dart'; + +abstract class GHeroIncludeVars + implements Built { + GHeroIncludeVars._(); + + factory GHeroIncludeVars([void Function(GHeroIncludeVarsBuilder b) updates]) = + _$GHeroIncludeVars; + + bool get includeId; + static Serializer get serializer => + _$gHeroIncludeVarsSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroIncludeVars.serializer, + this, + ) as Map); + + static GHeroIncludeVars? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroIncludeVars.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test/lib/directives/__generated__/hero_include.var.gql.g.dart b/codegen/end_to_end_test/lib/directives/__generated__/hero_include.var.gql.g.dart new file mode 100644 index 00000000..439f4249 --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/__generated__/hero_include.var.gql.g.dart @@ -0,0 +1,140 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_include.var.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$gHeroIncludeVarsSerializer = + new _$GHeroIncludeVarsSerializer(); + +class _$GHeroIncludeVarsSerializer + implements StructuredSerializer { + @override + final Iterable types = const [GHeroIncludeVars, _$GHeroIncludeVars]; + @override + final String wireName = 'GHeroIncludeVars'; + + @override + Iterable serialize(Serializers serializers, GHeroIncludeVars object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + 'includeId', + serializers.serialize(object.includeId, + specifiedType: const FullType(bool)), + ]; + + return result; + } + + @override + GHeroIncludeVars deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroIncludeVarsBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'includeId': + result.includeId = serializers.deserialize(value, + specifiedType: const FullType(bool))! as bool; + break; + } + } + + return result.build(); + } +} + +class _$GHeroIncludeVars extends GHeroIncludeVars { + @override + final bool includeId; + + factory _$GHeroIncludeVars( + [void Function(GHeroIncludeVarsBuilder)? updates]) => + (new GHeroIncludeVarsBuilder()..update(updates))._build(); + + _$GHeroIncludeVars._({required this.includeId}) : super._() { + BuiltValueNullFieldError.checkNotNull( + includeId, r'GHeroIncludeVars', 'includeId'); + } + + @override + GHeroIncludeVars rebuild(void Function(GHeroIncludeVarsBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroIncludeVarsBuilder toBuilder() => + new GHeroIncludeVarsBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroIncludeVars && includeId == other.includeId; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, includeId.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroIncludeVars') + ..add('includeId', includeId)) + .toString(); + } +} + +class GHeroIncludeVarsBuilder + implements Builder { + _$GHeroIncludeVars? _$v; + + bool? _includeId; + bool? get includeId => _$this._includeId; + set includeId(bool? includeId) => _$this._includeId = includeId; + + GHeroIncludeVarsBuilder(); + + GHeroIncludeVarsBuilder get _$this { + final $v = _$v; + if ($v != null) { + _includeId = $v.includeId; + _$v = null; + } + return this; + } + + @override + void replace(GHeroIncludeVars other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroIncludeVars; + } + + @override + void update(void Function(GHeroIncludeVarsBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroIncludeVars build() => _build(); + + _$GHeroIncludeVars _build() { + final _$result = _$v ?? + new _$GHeroIncludeVars._( + includeId: BuiltValueNullFieldError.checkNotNull( + includeId, r'GHeroIncludeVars', 'includeId')); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test/lib/directives/__generated__/hero_skip.ast.gql.dart b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip.ast.gql.dart new file mode 100644 index 00000000..dca33e70 --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip.ast.gql.dart @@ -0,0 +1,58 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:gql/ast.dart' as _i1; + +const HeroSkip = _i1.OperationDefinitionNode( + type: _i1.OperationType.query, + name: _i1.NameNode(value: 'HeroSkip'), + variableDefinitions: [ + _i1.VariableDefinitionNode( + variable: _i1.VariableNode(name: _i1.NameNode(value: 'skipName')), + type: _i1.NamedTypeNode( + name: _i1.NameNode(value: 'Boolean'), + isNonNull: true, + ), + defaultValue: _i1.DefaultValueNode(value: null), + directives: [], + ) + ], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'hero'), + alias: null, + arguments: [], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'id'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ), + _i1.FieldNode( + name: _i1.NameNode(value: 'name'), + alias: null, + arguments: [], + directives: [ + _i1.DirectiveNode( + name: _i1.NameNode(value: 'skip'), + arguments: [ + _i1.ArgumentNode( + name: _i1.NameNode(value: 'if'), + value: + _i1.VariableNode(name: _i1.NameNode(value: 'skipName')), + ) + ], + ) + ], + selectionSet: null, + ), + ]), + ) + ]), +); +const document = _i1.DocumentNode(definitions: [HeroSkip]); diff --git a/codegen/end_to_end_test/lib/directives/__generated__/hero_skip.data.gql.dart b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip.data.gql.dart new file mode 100644 index 00000000..fadd22d7 --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip.data.gql.dart @@ -0,0 +1,67 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test/graphql/__generated__/serializers.gql.dart' + as _i1; + +part 'hero_skip.data.gql.g.dart'; + +abstract class GHeroSkipData + implements Built { + GHeroSkipData._(); + + factory GHeroSkipData([void Function(GHeroSkipDataBuilder b) updates]) = + _$GHeroSkipData; + + static void _initializeBuilder(GHeroSkipDataBuilder b) => + b..G__typename = 'Query'; + + @BuiltValueField(wireName: '__typename') + String get G__typename; + GHeroSkipData_hero? get hero; + static Serializer get serializer => _$gHeroSkipDataSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroSkipData.serializer, + this, + ) as Map); + + static GHeroSkipData? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroSkipData.serializer, + json, + ); +} + +abstract class GHeroSkipData_hero + implements Built { + GHeroSkipData_hero._(); + + factory GHeroSkipData_hero( + [void Function(GHeroSkipData_heroBuilder b) updates]) = + _$GHeroSkipData_hero; + + static void _initializeBuilder(GHeroSkipData_heroBuilder b) => + b..G__typename = 'Character'; + + @BuiltValueField(wireName: '__typename') + String get G__typename; + String get id; + String? get name; + static Serializer get serializer => + _$gHeroSkipDataHeroSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroSkipData_hero.serializer, + this, + ) as Map); + + static GHeroSkipData_hero? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroSkipData_hero.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test/lib/directives/__generated__/hero_skip.data.gql.g.dart b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip.data.gql.g.dart new file mode 100644 index 00000000..51056c34 --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip.data.gql.g.dart @@ -0,0 +1,355 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_skip.data.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$gHeroSkipDataSerializer = + new _$GHeroSkipDataSerializer(); +Serializer _$gHeroSkipDataHeroSerializer = + new _$GHeroSkipData_heroSerializer(); + +class _$GHeroSkipDataSerializer implements StructuredSerializer { + @override + final Iterable types = const [GHeroSkipData, _$GHeroSkipData]; + @override + final String wireName = 'GHeroSkipData'; + + @override + Iterable serialize(Serializers serializers, GHeroSkipData object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + ]; + Object? value; + value = object.hero; + if (value != null) { + result + ..add('hero') + ..add(serializers.serialize(value, + specifiedType: const FullType(GHeroSkipData_hero))); + } + return result; + } + + @override + GHeroSkipData deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroSkipDataBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'hero': + result.hero.replace(serializers.deserialize(value, + specifiedType: const FullType(GHeroSkipData_hero))! + as GHeroSkipData_hero); + break; + } + } + + return result.build(); + } +} + +class _$GHeroSkipData_heroSerializer + implements StructuredSerializer { + @override + final Iterable types = const [GHeroSkipData_hero, _$GHeroSkipData_hero]; + @override + final String wireName = 'GHeroSkipData_hero'; + + @override + Iterable serialize( + Serializers serializers, GHeroSkipData_hero object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + 'id', + serializers.serialize(object.id, specifiedType: const FullType(String)), + ]; + Object? value; + value = object.name; + if (value != null) { + result + ..add('name') + ..add(serializers.serialize(value, + specifiedType: const FullType(String))); + } + return result; + } + + @override + GHeroSkipData_hero deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroSkipData_heroBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'name': + result.name = serializers.deserialize(value, + specifiedType: const FullType(String)) as String?; + break; + } + } + + return result.build(); + } +} + +class _$GHeroSkipData extends GHeroSkipData { + @override + final String G__typename; + @override + final GHeroSkipData_hero? hero; + + factory _$GHeroSkipData([void Function(GHeroSkipDataBuilder)? updates]) => + (new GHeroSkipDataBuilder()..update(updates))._build(); + + _$GHeroSkipData._({required this.G__typename, this.hero}) : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroSkipData', 'G__typename'); + } + + @override + GHeroSkipData rebuild(void Function(GHeroSkipDataBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroSkipDataBuilder toBuilder() => new GHeroSkipDataBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroSkipData && + G__typename == other.G__typename && + hero == other.hero; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, hero.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroSkipData') + ..add('G__typename', G__typename) + ..add('hero', hero)) + .toString(); + } +} + +class GHeroSkipDataBuilder + implements Builder { + _$GHeroSkipData? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + GHeroSkipData_heroBuilder? _hero; + GHeroSkipData_heroBuilder get hero => + _$this._hero ??= new GHeroSkipData_heroBuilder(); + set hero(GHeroSkipData_heroBuilder? hero) => _$this._hero = hero; + + GHeroSkipDataBuilder() { + GHeroSkipData._initializeBuilder(this); + } + + GHeroSkipDataBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _hero = $v.hero?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(GHeroSkipData other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroSkipData; + } + + @override + void update(void Function(GHeroSkipDataBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroSkipData build() => _build(); + + _$GHeroSkipData _build() { + _$GHeroSkipData _$result; + try { + _$result = _$v ?? + new _$GHeroSkipData._( + G__typename: BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroSkipData', 'G__typename'), + hero: _hero?.build()); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'hero'; + _hero?.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroSkipData', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$GHeroSkipData_hero extends GHeroSkipData_hero { + @override + final String G__typename; + @override + final String id; + @override + final String? name; + + factory _$GHeroSkipData_hero( + [void Function(GHeroSkipData_heroBuilder)? updates]) => + (new GHeroSkipData_heroBuilder()..update(updates))._build(); + + _$GHeroSkipData_hero._( + {required this.G__typename, required this.id, this.name}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroSkipData_hero', 'G__typename'); + BuiltValueNullFieldError.checkNotNull(id, r'GHeroSkipData_hero', 'id'); + } + + @override + GHeroSkipData_hero rebuild( + void Function(GHeroSkipData_heroBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroSkipData_heroBuilder toBuilder() => + new GHeroSkipData_heroBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroSkipData_hero && + G__typename == other.G__typename && + id == other.id && + name == other.name; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, id.hashCode); + _$hash = $jc(_$hash, name.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroSkipData_hero') + ..add('G__typename', G__typename) + ..add('id', id) + ..add('name', name)) + .toString(); + } +} + +class GHeroSkipData_heroBuilder + implements Builder { + _$GHeroSkipData_hero? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + String? _id; + String? get id => _$this._id; + set id(String? id) => _$this._id = id; + + String? _name; + String? get name => _$this._name; + set name(String? name) => _$this._name = name; + + GHeroSkipData_heroBuilder() { + GHeroSkipData_hero._initializeBuilder(this); + } + + GHeroSkipData_heroBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _id = $v.id; + _name = $v.name; + _$v = null; + } + return this; + } + + @override + void replace(GHeroSkipData_hero other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroSkipData_hero; + } + + @override + void update(void Function(GHeroSkipData_heroBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroSkipData_hero build() => _build(); + + _$GHeroSkipData_hero _build() { + final _$result = _$v ?? + new _$GHeroSkipData_hero._( + G__typename: BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroSkipData_hero', 'G__typename'), + id: BuiltValueNullFieldError.checkNotNull( + id, r'GHeroSkipData_hero', 'id'), + name: name); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test/lib/directives/__generated__/hero_skip.req.gql.dart b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip.req.gql.dart new file mode 100644 index 00000000..4fee8fff --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip.req.gql.dart @@ -0,0 +1,42 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test/directives/__generated__/hero_skip.ast.gql.dart' + as _i2; +import 'package:end_to_end_test/directives/__generated__/hero_skip.var.gql.dart' + as _i3; +import 'package:end_to_end_test/graphql/__generated__/serializers.gql.dart' + as _i4; +import 'package:gql_exec/gql_exec.dart' as _i1; + +part 'hero_skip.req.gql.g.dart'; + +abstract class GHeroSkip implements Built { + GHeroSkip._(); + + factory GHeroSkip([void Function(GHeroSkipBuilder b) updates]) = _$GHeroSkip; + + static void _initializeBuilder(GHeroSkipBuilder b) => b + ..operation = _i1.Operation( + document: _i2.document, + operationName: 'HeroSkip', + ); + + _i3.GHeroSkipVars get vars; + _i1.Operation get operation; + static Serializer get serializer => _$gHeroSkipSerializer; + + Map toJson() => (_i4.serializers.serializeWith( + GHeroSkip.serializer, + this, + ) as Map); + + static GHeroSkip? fromJson(Map json) => + _i4.serializers.deserializeWith( + GHeroSkip.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test/lib/directives/__generated__/hero_skip.req.gql.g.dart b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip.req.gql.g.dart new file mode 100644 index 00000000..a6995177 --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip.req.gql.g.dart @@ -0,0 +1,170 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_skip.req.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$gHeroSkipSerializer = new _$GHeroSkipSerializer(); + +class _$GHeroSkipSerializer implements StructuredSerializer { + @override + final Iterable types = const [GHeroSkip, _$GHeroSkip]; + @override + final String wireName = 'GHeroSkip'; + + @override + Iterable serialize(Serializers serializers, GHeroSkip object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + 'vars', + serializers.serialize(object.vars, + specifiedType: const FullType(_i3.GHeroSkipVars)), + 'operation', + serializers.serialize(object.operation, + specifiedType: const FullType(_i1.Operation)), + ]; + + return result; + } + + @override + GHeroSkip deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroSkipBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'vars': + result.vars.replace(serializers.deserialize(value, + specifiedType: const FullType(_i3.GHeroSkipVars))! + as _i3.GHeroSkipVars); + break; + case 'operation': + result.operation = serializers.deserialize(value, + specifiedType: const FullType(_i1.Operation))! as _i1.Operation; + break; + } + } + + return result.build(); + } +} + +class _$GHeroSkip extends GHeroSkip { + @override + final _i3.GHeroSkipVars vars; + @override + final _i1.Operation operation; + + factory _$GHeroSkip([void Function(GHeroSkipBuilder)? updates]) => + (new GHeroSkipBuilder()..update(updates))._build(); + + _$GHeroSkip._({required this.vars, required this.operation}) : super._() { + BuiltValueNullFieldError.checkNotNull(vars, r'GHeroSkip', 'vars'); + BuiltValueNullFieldError.checkNotNull(operation, r'GHeroSkip', 'operation'); + } + + @override + GHeroSkip rebuild(void Function(GHeroSkipBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroSkipBuilder toBuilder() => new GHeroSkipBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroSkip && + vars == other.vars && + operation == other.operation; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, vars.hashCode); + _$hash = $jc(_$hash, operation.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroSkip') + ..add('vars', vars) + ..add('operation', operation)) + .toString(); + } +} + +class GHeroSkipBuilder implements Builder { + _$GHeroSkip? _$v; + + _i3.GHeroSkipVarsBuilder? _vars; + _i3.GHeroSkipVarsBuilder get vars => + _$this._vars ??= new _i3.GHeroSkipVarsBuilder(); + set vars(_i3.GHeroSkipVarsBuilder? vars) => _$this._vars = vars; + + _i1.Operation? _operation; + _i1.Operation? get operation => _$this._operation; + set operation(_i1.Operation? operation) => _$this._operation = operation; + + GHeroSkipBuilder() { + GHeroSkip._initializeBuilder(this); + } + + GHeroSkipBuilder get _$this { + final $v = _$v; + if ($v != null) { + _vars = $v.vars.toBuilder(); + _operation = $v.operation; + _$v = null; + } + return this; + } + + @override + void replace(GHeroSkip other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroSkip; + } + + @override + void update(void Function(GHeroSkipBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroSkip build() => _build(); + + _$GHeroSkip _build() { + _$GHeroSkip _$result; + try { + _$result = _$v ?? + new _$GHeroSkip._( + vars: vars.build(), + operation: BuiltValueNullFieldError.checkNotNull( + operation, r'GHeroSkip', 'operation')); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'vars'; + vars.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroSkip', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test/lib/directives/__generated__/hero_skip.var.gql.dart b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip.var.gql.dart new file mode 100644 index 00000000..29b93a8b --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip.var.gql.dart @@ -0,0 +1,32 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test/graphql/__generated__/serializers.gql.dart' + as _i1; + +part 'hero_skip.var.gql.g.dart'; + +abstract class GHeroSkipVars + implements Built { + GHeroSkipVars._(); + + factory GHeroSkipVars([void Function(GHeroSkipVarsBuilder b) updates]) = + _$GHeroSkipVars; + + bool get skipName; + static Serializer get serializer => _$gHeroSkipVarsSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroSkipVars.serializer, + this, + ) as Map); + + static GHeroSkipVars? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroSkipVars.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test/lib/directives/__generated__/hero_skip.var.gql.g.dart b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip.var.gql.g.dart new file mode 100644 index 00000000..b08756ac --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip.var.gql.g.dart @@ -0,0 +1,137 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_skip.var.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$gHeroSkipVarsSerializer = + new _$GHeroSkipVarsSerializer(); + +class _$GHeroSkipVarsSerializer implements StructuredSerializer { + @override + final Iterable types = const [GHeroSkipVars, _$GHeroSkipVars]; + @override + final String wireName = 'GHeroSkipVars'; + + @override + Iterable serialize(Serializers serializers, GHeroSkipVars object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + 'skipName', + serializers.serialize(object.skipName, + specifiedType: const FullType(bool)), + ]; + + return result; + } + + @override + GHeroSkipVars deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroSkipVarsBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'skipName': + result.skipName = serializers.deserialize(value, + specifiedType: const FullType(bool))! as bool; + break; + } + } + + return result.build(); + } +} + +class _$GHeroSkipVars extends GHeroSkipVars { + @override + final bool skipName; + + factory _$GHeroSkipVars([void Function(GHeroSkipVarsBuilder)? updates]) => + (new GHeroSkipVarsBuilder()..update(updates))._build(); + + _$GHeroSkipVars._({required this.skipName}) : super._() { + BuiltValueNullFieldError.checkNotNull( + skipName, r'GHeroSkipVars', 'skipName'); + } + + @override + GHeroSkipVars rebuild(void Function(GHeroSkipVarsBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroSkipVarsBuilder toBuilder() => new GHeroSkipVarsBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroSkipVars && skipName == other.skipName; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, skipName.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroSkipVars') + ..add('skipName', skipName)) + .toString(); + } +} + +class GHeroSkipVarsBuilder + implements Builder { + _$GHeroSkipVars? _$v; + + bool? _skipName; + bool? get skipName => _$this._skipName; + set skipName(bool? skipName) => _$this._skipName = skipName; + + GHeroSkipVarsBuilder(); + + GHeroSkipVarsBuilder get _$this { + final $v = _$v; + if ($v != null) { + _skipName = $v.skipName; + _$v = null; + } + return this; + } + + @override + void replace(GHeroSkipVars other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroSkipVars; + } + + @override + void update(void Function(GHeroSkipVarsBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroSkipVars build() => _build(); + + _$GHeroSkipVars _build() { + final _$result = _$v ?? + new _$GHeroSkipVars._( + skipName: BuiltValueNullFieldError.checkNotNull( + skipName, r'GHeroSkipVars', 'skipName')); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test/lib/directives/__generated__/hero_skip_fragment.ast.gql.dart b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip_fragment.ast.gql.dart new file mode 100644 index 00000000..1cbd4aaa --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip_fragment.ast.gql.dart @@ -0,0 +1,105 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:gql/ast.dart' as _i1; + +const HeroSkipFragment = _i1.OperationDefinitionNode( + type: _i1.OperationType.query, + name: _i1.NameNode(value: 'HeroSkipFragment'), + variableDefinitions: [ + _i1.VariableDefinitionNode( + variable: _i1.VariableNode(name: _i1.NameNode(value: 'skipDetails')), + type: _i1.NamedTypeNode( + name: _i1.NameNode(value: 'Boolean'), + isNonNull: true, + ), + defaultValue: _i1.DefaultValueNode(value: null), + directives: [], + ) + ], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'hero'), + alias: null, + arguments: [], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'id'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ), + _i1.FragmentSpreadNode( + name: _i1.NameNode(value: 'HeroDetail'), + directives: [ + _i1.DirectiveNode( + name: _i1.NameNode(value: 'skip'), + arguments: [ + _i1.ArgumentNode( + name: _i1.NameNode(value: 'if'), + value: _i1.VariableNode( + name: _i1.NameNode(value: 'skipDetails')), + ) + ], + ) + ], + ), + ]), + ) + ]), +); +const HeroDetail = _i1.FragmentDefinitionNode( + name: _i1.NameNode(value: 'HeroDetail'), + typeCondition: _i1.TypeConditionNode( + on: _i1.NamedTypeNode( + name: _i1.NameNode(value: 'Character'), + isNonNull: false, + )), + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'id'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ), + _i1.FieldNode( + name: _i1.NameNode(value: 'name'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ), + _i1.FieldNode( + name: _i1.NameNode(value: 'friends'), + alias: null, + arguments: [], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'id'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ), + _i1.FieldNode( + name: _i1.NameNode(value: 'name'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ), + ]), + ), + ]), +); +const document = _i1.DocumentNode(definitions: [ + HeroSkipFragment, + HeroDetail, +]); diff --git a/codegen/end_to_end_test/lib/directives/__generated__/hero_skip_fragment.data.gql.dart b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip_fragment.data.gql.dart new file mode 100644 index 00000000..32a019df --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip_fragment.data.gql.dart @@ -0,0 +1,202 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_collection/built_collection.dart'; +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test/graphql/__generated__/serializers.gql.dart' + as _i1; + +part 'hero_skip_fragment.data.gql.g.dart'; + +abstract class GHeroSkipFragmentData + implements Built { + GHeroSkipFragmentData._(); + + factory GHeroSkipFragmentData( + [void Function(GHeroSkipFragmentDataBuilder b) updates]) = + _$GHeroSkipFragmentData; + + static void _initializeBuilder(GHeroSkipFragmentDataBuilder b) => + b..G__typename = 'Query'; + + @BuiltValueField(wireName: '__typename') + String get G__typename; + GHeroSkipFragmentData_hero? get hero; + static Serializer get serializer => + _$gHeroSkipFragmentDataSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroSkipFragmentData.serializer, + this, + ) as Map); + + static GHeroSkipFragmentData? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroSkipFragmentData.serializer, + json, + ); +} + +abstract class GHeroSkipFragmentData_hero + implements + Built, + GHeroDetail { + GHeroSkipFragmentData_hero._(); + + factory GHeroSkipFragmentData_hero( + [void Function(GHeroSkipFragmentData_heroBuilder b) updates]) = + _$GHeroSkipFragmentData_hero; + + static void _initializeBuilder(GHeroSkipFragmentData_heroBuilder b) => + b..G__typename = 'Character'; + + @override + @BuiltValueField(wireName: '__typename') + String get G__typename; + @override + String get id; + @override + String get name; + @override + BuiltList? get friends; + static Serializer get serializer => + _$gHeroSkipFragmentDataHeroSerializer; + + @override + Map toJson() => (_i1.serializers.serializeWith( + GHeroSkipFragmentData_hero.serializer, + this, + ) as Map); + + static GHeroSkipFragmentData_hero? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroSkipFragmentData_hero.serializer, + json, + ); +} + +abstract class GHeroSkipFragmentData_hero_friends + implements + Built, + GHeroDetail_friends { + GHeroSkipFragmentData_hero_friends._(); + + factory GHeroSkipFragmentData_hero_friends( + [void Function(GHeroSkipFragmentData_hero_friendsBuilder b) + updates]) = _$GHeroSkipFragmentData_hero_friends; + + static void _initializeBuilder(GHeroSkipFragmentData_hero_friendsBuilder b) => + b..G__typename = 'Character'; + + @override + @BuiltValueField(wireName: '__typename') + String get G__typename; + @override + String get id; + @override + String get name; + static Serializer get serializer => + _$gHeroSkipFragmentDataHeroFriendsSerializer; + + @override + Map toJson() => (_i1.serializers.serializeWith( + GHeroSkipFragmentData_hero_friends.serializer, + this, + ) as Map); + + static GHeroSkipFragmentData_hero_friends? fromJson( + Map json) => + _i1.serializers.deserializeWith( + GHeroSkipFragmentData_hero_friends.serializer, + json, + ); +} + +abstract class GHeroDetail { + String get G__typename; + String get id; + String get name; + BuiltList? get friends; + Map toJson(); +} + +abstract class GHeroDetail_friends { + String get G__typename; + String get id; + String get name; + Map toJson(); +} + +abstract class GHeroDetailData + implements Built, GHeroDetail { + GHeroDetailData._(); + + factory GHeroDetailData([void Function(GHeroDetailDataBuilder b) updates]) = + _$GHeroDetailData; + + static void _initializeBuilder(GHeroDetailDataBuilder b) => + b..G__typename = 'Character'; + + @override + @BuiltValueField(wireName: '__typename') + String get G__typename; + @override + String get id; + @override + String get name; + @override + BuiltList? get friends; + static Serializer get serializer => + _$gHeroDetailDataSerializer; + + @override + Map toJson() => (_i1.serializers.serializeWith( + GHeroDetailData.serializer, + this, + ) as Map); + + static GHeroDetailData? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroDetailData.serializer, + json, + ); +} + +abstract class GHeroDetailData_friends + implements + Built, + GHeroDetail_friends { + GHeroDetailData_friends._(); + + factory GHeroDetailData_friends( + [void Function(GHeroDetailData_friendsBuilder b) updates]) = + _$GHeroDetailData_friends; + + static void _initializeBuilder(GHeroDetailData_friendsBuilder b) => + b..G__typename = 'Character'; + + @override + @BuiltValueField(wireName: '__typename') + String get G__typename; + @override + String get id; + @override + String get name; + static Serializer get serializer => + _$gHeroDetailDataFriendsSerializer; + + @override + Map toJson() => (_i1.serializers.serializeWith( + GHeroDetailData_friends.serializer, + this, + ) as Map); + + static GHeroDetailData_friends? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroDetailData_friends.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test/lib/directives/__generated__/hero_skip_fragment.data.gql.g.dart b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip_fragment.data.gql.g.dart new file mode 100644 index 00000000..4d7c0936 --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip_fragment.data.gql.g.dart @@ -0,0 +1,994 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_skip_fragment.data.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$gHeroSkipFragmentDataSerializer = + new _$GHeroSkipFragmentDataSerializer(); +Serializer _$gHeroSkipFragmentDataHeroSerializer = + new _$GHeroSkipFragmentData_heroSerializer(); +Serializer + _$gHeroSkipFragmentDataHeroFriendsSerializer = + new _$GHeroSkipFragmentData_hero_friendsSerializer(); +Serializer _$gHeroDetailDataSerializer = + new _$GHeroDetailDataSerializer(); +Serializer _$gHeroDetailDataFriendsSerializer = + new _$GHeroDetailData_friendsSerializer(); + +class _$GHeroSkipFragmentDataSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroSkipFragmentData, + _$GHeroSkipFragmentData + ]; + @override + final String wireName = 'GHeroSkipFragmentData'; + + @override + Iterable serialize( + Serializers serializers, GHeroSkipFragmentData object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + ]; + Object? value; + value = object.hero; + if (value != null) { + result + ..add('hero') + ..add(serializers.serialize(value, + specifiedType: const FullType(GHeroSkipFragmentData_hero))); + } + return result; + } + + @override + GHeroSkipFragmentData deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroSkipFragmentDataBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'hero': + result.hero.replace(serializers.deserialize(value, + specifiedType: const FullType(GHeroSkipFragmentData_hero))! + as GHeroSkipFragmentData_hero); + break; + } + } + + return result.build(); + } +} + +class _$GHeroSkipFragmentData_heroSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroSkipFragmentData_hero, + _$GHeroSkipFragmentData_hero + ]; + @override + final String wireName = 'GHeroSkipFragmentData_hero'; + + @override + Iterable serialize( + Serializers serializers, GHeroSkipFragmentData_hero object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + 'id', + serializers.serialize(object.id, specifiedType: const FullType(String)), + 'name', + serializers.serialize(object.name, specifiedType: const FullType(String)), + ]; + Object? value; + value = object.friends; + if (value != null) { + result + ..add('friends') + ..add(serializers.serialize(value, + specifiedType: const FullType(BuiltList, const [ + const FullType.nullable(GHeroSkipFragmentData_hero_friends) + ]))); + } + return result; + } + + @override + GHeroSkipFragmentData_hero deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroSkipFragmentData_heroBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'name': + result.name = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'friends': + result.friends.replace(serializers.deserialize(value, + specifiedType: const FullType(BuiltList, const [ + const FullType.nullable(GHeroSkipFragmentData_hero_friends) + ]))! as BuiltList); + break; + } + } + + return result.build(); + } +} + +class _$GHeroSkipFragmentData_hero_friendsSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroSkipFragmentData_hero_friends, + _$GHeroSkipFragmentData_hero_friends + ]; + @override + final String wireName = 'GHeroSkipFragmentData_hero_friends'; + + @override + Iterable serialize( + Serializers serializers, GHeroSkipFragmentData_hero_friends object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + 'id', + serializers.serialize(object.id, specifiedType: const FullType(String)), + 'name', + serializers.serialize(object.name, specifiedType: const FullType(String)), + ]; + + return result; + } + + @override + GHeroSkipFragmentData_hero_friends deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroSkipFragmentData_hero_friendsBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'name': + result.name = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + } + } + + return result.build(); + } +} + +class _$GHeroDetailDataSerializer + implements StructuredSerializer { + @override + final Iterable types = const [GHeroDetailData, _$GHeroDetailData]; + @override + final String wireName = 'GHeroDetailData'; + + @override + Iterable serialize(Serializers serializers, GHeroDetailData object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + 'id', + serializers.serialize(object.id, specifiedType: const FullType(String)), + 'name', + serializers.serialize(object.name, specifiedType: const FullType(String)), + ]; + Object? value; + value = object.friends; + if (value != null) { + result + ..add('friends') + ..add(serializers.serialize(value, + specifiedType: const FullType(BuiltList, + const [const FullType.nullable(GHeroDetailData_friends)]))); + } + return result; + } + + @override + GHeroDetailData deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroDetailDataBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'name': + result.name = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'friends': + result.friends.replace(serializers.deserialize(value, + specifiedType: const FullType(BuiltList, const [ + const FullType.nullable(GHeroDetailData_friends) + ]))! as BuiltList); + break; + } + } + + return result.build(); + } +} + +class _$GHeroDetailData_friendsSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroDetailData_friends, + _$GHeroDetailData_friends + ]; + @override + final String wireName = 'GHeroDetailData_friends'; + + @override + Iterable serialize( + Serializers serializers, GHeroDetailData_friends object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + 'id', + serializers.serialize(object.id, specifiedType: const FullType(String)), + 'name', + serializers.serialize(object.name, specifiedType: const FullType(String)), + ]; + + return result; + } + + @override + GHeroDetailData_friends deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroDetailData_friendsBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'name': + result.name = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + } + } + + return result.build(); + } +} + +class _$GHeroSkipFragmentData extends GHeroSkipFragmentData { + @override + final String G__typename; + @override + final GHeroSkipFragmentData_hero? hero; + + factory _$GHeroSkipFragmentData( + [void Function(GHeroSkipFragmentDataBuilder)? updates]) => + (new GHeroSkipFragmentDataBuilder()..update(updates))._build(); + + _$GHeroSkipFragmentData._({required this.G__typename, this.hero}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroSkipFragmentData', 'G__typename'); + } + + @override + GHeroSkipFragmentData rebuild( + void Function(GHeroSkipFragmentDataBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroSkipFragmentDataBuilder toBuilder() => + new GHeroSkipFragmentDataBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroSkipFragmentData && + G__typename == other.G__typename && + hero == other.hero; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, hero.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroSkipFragmentData') + ..add('G__typename', G__typename) + ..add('hero', hero)) + .toString(); + } +} + +class GHeroSkipFragmentDataBuilder + implements Builder { + _$GHeroSkipFragmentData? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + GHeroSkipFragmentData_heroBuilder? _hero; + GHeroSkipFragmentData_heroBuilder get hero => + _$this._hero ??= new GHeroSkipFragmentData_heroBuilder(); + set hero(GHeroSkipFragmentData_heroBuilder? hero) => _$this._hero = hero; + + GHeroSkipFragmentDataBuilder() { + GHeroSkipFragmentData._initializeBuilder(this); + } + + GHeroSkipFragmentDataBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _hero = $v.hero?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(GHeroSkipFragmentData other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroSkipFragmentData; + } + + @override + void update(void Function(GHeroSkipFragmentDataBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroSkipFragmentData build() => _build(); + + _$GHeroSkipFragmentData _build() { + _$GHeroSkipFragmentData _$result; + try { + _$result = _$v ?? + new _$GHeroSkipFragmentData._( + G__typename: BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroSkipFragmentData', 'G__typename'), + hero: _hero?.build()); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'hero'; + _hero?.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroSkipFragmentData', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$GHeroSkipFragmentData_hero extends GHeroSkipFragmentData_hero { + @override + final String G__typename; + @override + final String id; + @override + final String name; + @override + final BuiltList? friends; + + factory _$GHeroSkipFragmentData_hero( + [void Function(GHeroSkipFragmentData_heroBuilder)? updates]) => + (new GHeroSkipFragmentData_heroBuilder()..update(updates))._build(); + + _$GHeroSkipFragmentData_hero._( + {required this.G__typename, + required this.id, + required this.name, + this.friends}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroSkipFragmentData_hero', 'G__typename'); + BuiltValueNullFieldError.checkNotNull( + id, r'GHeroSkipFragmentData_hero', 'id'); + BuiltValueNullFieldError.checkNotNull( + name, r'GHeroSkipFragmentData_hero', 'name'); + } + + @override + GHeroSkipFragmentData_hero rebuild( + void Function(GHeroSkipFragmentData_heroBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroSkipFragmentData_heroBuilder toBuilder() => + new GHeroSkipFragmentData_heroBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroSkipFragmentData_hero && + G__typename == other.G__typename && + id == other.id && + name == other.name && + friends == other.friends; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, id.hashCode); + _$hash = $jc(_$hash, name.hashCode); + _$hash = $jc(_$hash, friends.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroSkipFragmentData_hero') + ..add('G__typename', G__typename) + ..add('id', id) + ..add('name', name) + ..add('friends', friends)) + .toString(); + } +} + +class GHeroSkipFragmentData_heroBuilder + implements + Builder { + _$GHeroSkipFragmentData_hero? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + String? _id; + String? get id => _$this._id; + set id(String? id) => _$this._id = id; + + String? _name; + String? get name => _$this._name; + set name(String? name) => _$this._name = name; + + ListBuilder? _friends; + ListBuilder get friends => + _$this._friends ??= + new ListBuilder(); + set friends(ListBuilder? friends) => + _$this._friends = friends; + + GHeroSkipFragmentData_heroBuilder() { + GHeroSkipFragmentData_hero._initializeBuilder(this); + } + + GHeroSkipFragmentData_heroBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _id = $v.id; + _name = $v.name; + _friends = $v.friends?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(GHeroSkipFragmentData_hero other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroSkipFragmentData_hero; + } + + @override + void update(void Function(GHeroSkipFragmentData_heroBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroSkipFragmentData_hero build() => _build(); + + _$GHeroSkipFragmentData_hero _build() { + _$GHeroSkipFragmentData_hero _$result; + try { + _$result = _$v ?? + new _$GHeroSkipFragmentData_hero._( + G__typename: BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroSkipFragmentData_hero', 'G__typename'), + id: BuiltValueNullFieldError.checkNotNull( + id, r'GHeroSkipFragmentData_hero', 'id'), + name: BuiltValueNullFieldError.checkNotNull( + name, r'GHeroSkipFragmentData_hero', 'name'), + friends: _friends?.build()); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'friends'; + _friends?.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroSkipFragmentData_hero', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$GHeroSkipFragmentData_hero_friends + extends GHeroSkipFragmentData_hero_friends { + @override + final String G__typename; + @override + final String id; + @override + final String name; + + factory _$GHeroSkipFragmentData_hero_friends( + [void Function(GHeroSkipFragmentData_hero_friendsBuilder)? + updates]) => + (new GHeroSkipFragmentData_hero_friendsBuilder()..update(updates)) + ._build(); + + _$GHeroSkipFragmentData_hero_friends._( + {required this.G__typename, required this.id, required this.name}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroSkipFragmentData_hero_friends', 'G__typename'); + BuiltValueNullFieldError.checkNotNull( + id, r'GHeroSkipFragmentData_hero_friends', 'id'); + BuiltValueNullFieldError.checkNotNull( + name, r'GHeroSkipFragmentData_hero_friends', 'name'); + } + + @override + GHeroSkipFragmentData_hero_friends rebuild( + void Function(GHeroSkipFragmentData_hero_friendsBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroSkipFragmentData_hero_friendsBuilder toBuilder() => + new GHeroSkipFragmentData_hero_friendsBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroSkipFragmentData_hero_friends && + G__typename == other.G__typename && + id == other.id && + name == other.name; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, id.hashCode); + _$hash = $jc(_$hash, name.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroSkipFragmentData_hero_friends') + ..add('G__typename', G__typename) + ..add('id', id) + ..add('name', name)) + .toString(); + } +} + +class GHeroSkipFragmentData_hero_friendsBuilder + implements + Builder { + _$GHeroSkipFragmentData_hero_friends? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + String? _id; + String? get id => _$this._id; + set id(String? id) => _$this._id = id; + + String? _name; + String? get name => _$this._name; + set name(String? name) => _$this._name = name; + + GHeroSkipFragmentData_hero_friendsBuilder() { + GHeroSkipFragmentData_hero_friends._initializeBuilder(this); + } + + GHeroSkipFragmentData_hero_friendsBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _id = $v.id; + _name = $v.name; + _$v = null; + } + return this; + } + + @override + void replace(GHeroSkipFragmentData_hero_friends other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroSkipFragmentData_hero_friends; + } + + @override + void update( + void Function(GHeroSkipFragmentData_hero_friendsBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroSkipFragmentData_hero_friends build() => _build(); + + _$GHeroSkipFragmentData_hero_friends _build() { + final _$result = _$v ?? + new _$GHeroSkipFragmentData_hero_friends._( + G__typename: BuiltValueNullFieldError.checkNotNull(G__typename, + r'GHeroSkipFragmentData_hero_friends', 'G__typename'), + id: BuiltValueNullFieldError.checkNotNull( + id, r'GHeroSkipFragmentData_hero_friends', 'id'), + name: BuiltValueNullFieldError.checkNotNull( + name, r'GHeroSkipFragmentData_hero_friends', 'name')); + replace(_$result); + return _$result; + } +} + +class _$GHeroDetailData extends GHeroDetailData { + @override + final String G__typename; + @override + final String id; + @override + final String name; + @override + final BuiltList? friends; + + factory _$GHeroDetailData([void Function(GHeroDetailDataBuilder)? updates]) => + (new GHeroDetailDataBuilder()..update(updates))._build(); + + _$GHeroDetailData._( + {required this.G__typename, + required this.id, + required this.name, + this.friends}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroDetailData', 'G__typename'); + BuiltValueNullFieldError.checkNotNull(id, r'GHeroDetailData', 'id'); + BuiltValueNullFieldError.checkNotNull(name, r'GHeroDetailData', 'name'); + } + + @override + GHeroDetailData rebuild(void Function(GHeroDetailDataBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroDetailDataBuilder toBuilder() => + new GHeroDetailDataBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroDetailData && + G__typename == other.G__typename && + id == other.id && + name == other.name && + friends == other.friends; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, id.hashCode); + _$hash = $jc(_$hash, name.hashCode); + _$hash = $jc(_$hash, friends.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroDetailData') + ..add('G__typename', G__typename) + ..add('id', id) + ..add('name', name) + ..add('friends', friends)) + .toString(); + } +} + +class GHeroDetailDataBuilder + implements Builder { + _$GHeroDetailData? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + String? _id; + String? get id => _$this._id; + set id(String? id) => _$this._id = id; + + String? _name; + String? get name => _$this._name; + set name(String? name) => _$this._name = name; + + ListBuilder? _friends; + ListBuilder get friends => + _$this._friends ??= new ListBuilder(); + set friends(ListBuilder? friends) => + _$this._friends = friends; + + GHeroDetailDataBuilder() { + GHeroDetailData._initializeBuilder(this); + } + + GHeroDetailDataBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _id = $v.id; + _name = $v.name; + _friends = $v.friends?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(GHeroDetailData other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroDetailData; + } + + @override + void update(void Function(GHeroDetailDataBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroDetailData build() => _build(); + + _$GHeroDetailData _build() { + _$GHeroDetailData _$result; + try { + _$result = _$v ?? + new _$GHeroDetailData._( + G__typename: BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroDetailData', 'G__typename'), + id: BuiltValueNullFieldError.checkNotNull( + id, r'GHeroDetailData', 'id'), + name: BuiltValueNullFieldError.checkNotNull( + name, r'GHeroDetailData', 'name'), + friends: _friends?.build()); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'friends'; + _friends?.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroDetailData', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$GHeroDetailData_friends extends GHeroDetailData_friends { + @override + final String G__typename; + @override + final String id; + @override + final String name; + + factory _$GHeroDetailData_friends( + [void Function(GHeroDetailData_friendsBuilder)? updates]) => + (new GHeroDetailData_friendsBuilder()..update(updates))._build(); + + _$GHeroDetailData_friends._( + {required this.G__typename, required this.id, required this.name}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroDetailData_friends', 'G__typename'); + BuiltValueNullFieldError.checkNotNull(id, r'GHeroDetailData_friends', 'id'); + BuiltValueNullFieldError.checkNotNull( + name, r'GHeroDetailData_friends', 'name'); + } + + @override + GHeroDetailData_friends rebuild( + void Function(GHeroDetailData_friendsBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroDetailData_friendsBuilder toBuilder() => + new GHeroDetailData_friendsBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroDetailData_friends && + G__typename == other.G__typename && + id == other.id && + name == other.name; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, id.hashCode); + _$hash = $jc(_$hash, name.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroDetailData_friends') + ..add('G__typename', G__typename) + ..add('id', id) + ..add('name', name)) + .toString(); + } +} + +class GHeroDetailData_friendsBuilder + implements + Builder { + _$GHeroDetailData_friends? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + String? _id; + String? get id => _$this._id; + set id(String? id) => _$this._id = id; + + String? _name; + String? get name => _$this._name; + set name(String? name) => _$this._name = name; + + GHeroDetailData_friendsBuilder() { + GHeroDetailData_friends._initializeBuilder(this); + } + + GHeroDetailData_friendsBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _id = $v.id; + _name = $v.name; + _$v = null; + } + return this; + } + + @override + void replace(GHeroDetailData_friends other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroDetailData_friends; + } + + @override + void update(void Function(GHeroDetailData_friendsBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroDetailData_friends build() => _build(); + + _$GHeroDetailData_friends _build() { + final _$result = _$v ?? + new _$GHeroDetailData_friends._( + G__typename: BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroDetailData_friends', 'G__typename'), + id: BuiltValueNullFieldError.checkNotNull( + id, r'GHeroDetailData_friends', 'id'), + name: BuiltValueNullFieldError.checkNotNull( + name, r'GHeroDetailData_friends', 'name')); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test/lib/directives/__generated__/hero_skip_fragment.req.gql.dart b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip_fragment.req.gql.dart new file mode 100644 index 00000000..29fb982c --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip_fragment.req.gql.dart @@ -0,0 +1,46 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test/directives/__generated__/hero_skip_fragment.ast.gql.dart' + as _i2; +import 'package:end_to_end_test/directives/__generated__/hero_skip_fragment.var.gql.dart' + as _i3; +import 'package:end_to_end_test/graphql/__generated__/serializers.gql.dart' + as _i4; +import 'package:gql_exec/gql_exec.dart' as _i1; + +part 'hero_skip_fragment.req.gql.g.dart'; + +abstract class GHeroSkipFragment + implements Built { + GHeroSkipFragment._(); + + factory GHeroSkipFragment( + [void Function(GHeroSkipFragmentBuilder b) updates]) = + _$GHeroSkipFragment; + + static void _initializeBuilder(GHeroSkipFragmentBuilder b) => b + ..operation = _i1.Operation( + document: _i2.document, + operationName: 'HeroSkipFragment', + ); + + _i3.GHeroSkipFragmentVars get vars; + _i1.Operation get operation; + static Serializer get serializer => + _$gHeroSkipFragmentSerializer; + + Map toJson() => (_i4.serializers.serializeWith( + GHeroSkipFragment.serializer, + this, + ) as Map); + + static GHeroSkipFragment? fromJson(Map json) => + _i4.serializers.deserializeWith( + GHeroSkipFragment.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test/lib/directives/__generated__/hero_skip_fragment.req.gql.g.dart b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip_fragment.req.gql.g.dart new file mode 100644 index 00000000..a72b4fca --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip_fragment.req.gql.g.dart @@ -0,0 +1,178 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_skip_fragment.req.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$gHeroSkipFragmentSerializer = + new _$GHeroSkipFragmentSerializer(); + +class _$GHeroSkipFragmentSerializer + implements StructuredSerializer { + @override + final Iterable types = const [GHeroSkipFragment, _$GHeroSkipFragment]; + @override + final String wireName = 'GHeroSkipFragment'; + + @override + Iterable serialize(Serializers serializers, GHeroSkipFragment object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + 'vars', + serializers.serialize(object.vars, + specifiedType: const FullType(_i3.GHeroSkipFragmentVars)), + 'operation', + serializers.serialize(object.operation, + specifiedType: const FullType(_i1.Operation)), + ]; + + return result; + } + + @override + GHeroSkipFragment deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroSkipFragmentBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'vars': + result.vars.replace(serializers.deserialize(value, + specifiedType: const FullType(_i3.GHeroSkipFragmentVars))! + as _i3.GHeroSkipFragmentVars); + break; + case 'operation': + result.operation = serializers.deserialize(value, + specifiedType: const FullType(_i1.Operation))! as _i1.Operation; + break; + } + } + + return result.build(); + } +} + +class _$GHeroSkipFragment extends GHeroSkipFragment { + @override + final _i3.GHeroSkipFragmentVars vars; + @override + final _i1.Operation operation; + + factory _$GHeroSkipFragment( + [void Function(GHeroSkipFragmentBuilder)? updates]) => + (new GHeroSkipFragmentBuilder()..update(updates))._build(); + + _$GHeroSkipFragment._({required this.vars, required this.operation}) + : super._() { + BuiltValueNullFieldError.checkNotNull(vars, r'GHeroSkipFragment', 'vars'); + BuiltValueNullFieldError.checkNotNull( + operation, r'GHeroSkipFragment', 'operation'); + } + + @override + GHeroSkipFragment rebuild(void Function(GHeroSkipFragmentBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroSkipFragmentBuilder toBuilder() => + new GHeroSkipFragmentBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroSkipFragment && + vars == other.vars && + operation == other.operation; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, vars.hashCode); + _$hash = $jc(_$hash, operation.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroSkipFragment') + ..add('vars', vars) + ..add('operation', operation)) + .toString(); + } +} + +class GHeroSkipFragmentBuilder + implements Builder { + _$GHeroSkipFragment? _$v; + + _i3.GHeroSkipFragmentVarsBuilder? _vars; + _i3.GHeroSkipFragmentVarsBuilder get vars => + _$this._vars ??= new _i3.GHeroSkipFragmentVarsBuilder(); + set vars(_i3.GHeroSkipFragmentVarsBuilder? vars) => _$this._vars = vars; + + _i1.Operation? _operation; + _i1.Operation? get operation => _$this._operation; + set operation(_i1.Operation? operation) => _$this._operation = operation; + + GHeroSkipFragmentBuilder() { + GHeroSkipFragment._initializeBuilder(this); + } + + GHeroSkipFragmentBuilder get _$this { + final $v = _$v; + if ($v != null) { + _vars = $v.vars.toBuilder(); + _operation = $v.operation; + _$v = null; + } + return this; + } + + @override + void replace(GHeroSkipFragment other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroSkipFragment; + } + + @override + void update(void Function(GHeroSkipFragmentBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroSkipFragment build() => _build(); + + _$GHeroSkipFragment _build() { + _$GHeroSkipFragment _$result; + try { + _$result = _$v ?? + new _$GHeroSkipFragment._( + vars: vars.build(), + operation: BuiltValueNullFieldError.checkNotNull( + operation, r'GHeroSkipFragment', 'operation')); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'vars'; + vars.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroSkipFragment', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test/lib/directives/__generated__/hero_skip_fragment.var.gql.dart b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip_fragment.var.gql.dart new file mode 100644 index 00000000..0705440d --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip_fragment.var.gql.dart @@ -0,0 +1,56 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test/graphql/__generated__/serializers.gql.dart' + as _i1; + +part 'hero_skip_fragment.var.gql.g.dart'; + +abstract class GHeroSkipFragmentVars + implements Built { + GHeroSkipFragmentVars._(); + + factory GHeroSkipFragmentVars( + [void Function(GHeroSkipFragmentVarsBuilder b) updates]) = + _$GHeroSkipFragmentVars; + + bool get skipDetails; + static Serializer get serializer => + _$gHeroSkipFragmentVarsSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroSkipFragmentVars.serializer, + this, + ) as Map); + + static GHeroSkipFragmentVars? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroSkipFragmentVars.serializer, + json, + ); +} + +abstract class GHeroDetailVars + implements Built { + GHeroDetailVars._(); + + factory GHeroDetailVars([void Function(GHeroDetailVarsBuilder b) updates]) = + _$GHeroDetailVars; + + static Serializer get serializer => + _$gHeroDetailVarsSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroDetailVars.serializer, + this, + ) as Map); + + static GHeroDetailVars? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroDetailVars.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test/lib/directives/__generated__/hero_skip_fragment.var.gql.g.dart b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip_fragment.var.gql.g.dart new file mode 100644 index 00000000..abddac9a --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/__generated__/hero_skip_fragment.var.gql.g.dart @@ -0,0 +1,226 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_skip_fragment.var.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$gHeroSkipFragmentVarsSerializer = + new _$GHeroSkipFragmentVarsSerializer(); +Serializer _$gHeroDetailVarsSerializer = + new _$GHeroDetailVarsSerializer(); + +class _$GHeroSkipFragmentVarsSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroSkipFragmentVars, + _$GHeroSkipFragmentVars + ]; + @override + final String wireName = 'GHeroSkipFragmentVars'; + + @override + Iterable serialize( + Serializers serializers, GHeroSkipFragmentVars object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + 'skipDetails', + serializers.serialize(object.skipDetails, + specifiedType: const FullType(bool)), + ]; + + return result; + } + + @override + GHeroSkipFragmentVars deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroSkipFragmentVarsBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'skipDetails': + result.skipDetails = serializers.deserialize(value, + specifiedType: const FullType(bool))! as bool; + break; + } + } + + return result.build(); + } +} + +class _$GHeroDetailVarsSerializer + implements StructuredSerializer { + @override + final Iterable types = const [GHeroDetailVars, _$GHeroDetailVars]; + @override + final String wireName = 'GHeroDetailVars'; + + @override + Iterable serialize(Serializers serializers, GHeroDetailVars object, + {FullType specifiedType = FullType.unspecified}) { + return []; + } + + @override + GHeroDetailVars deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + return new GHeroDetailVarsBuilder().build(); + } +} + +class _$GHeroSkipFragmentVars extends GHeroSkipFragmentVars { + @override + final bool skipDetails; + + factory _$GHeroSkipFragmentVars( + [void Function(GHeroSkipFragmentVarsBuilder)? updates]) => + (new GHeroSkipFragmentVarsBuilder()..update(updates))._build(); + + _$GHeroSkipFragmentVars._({required this.skipDetails}) : super._() { + BuiltValueNullFieldError.checkNotNull( + skipDetails, r'GHeroSkipFragmentVars', 'skipDetails'); + } + + @override + GHeroSkipFragmentVars rebuild( + void Function(GHeroSkipFragmentVarsBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroSkipFragmentVarsBuilder toBuilder() => + new GHeroSkipFragmentVarsBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroSkipFragmentVars && skipDetails == other.skipDetails; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, skipDetails.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroSkipFragmentVars') + ..add('skipDetails', skipDetails)) + .toString(); + } +} + +class GHeroSkipFragmentVarsBuilder + implements Builder { + _$GHeroSkipFragmentVars? _$v; + + bool? _skipDetails; + bool? get skipDetails => _$this._skipDetails; + set skipDetails(bool? skipDetails) => _$this._skipDetails = skipDetails; + + GHeroSkipFragmentVarsBuilder(); + + GHeroSkipFragmentVarsBuilder get _$this { + final $v = _$v; + if ($v != null) { + _skipDetails = $v.skipDetails; + _$v = null; + } + return this; + } + + @override + void replace(GHeroSkipFragmentVars other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroSkipFragmentVars; + } + + @override + void update(void Function(GHeroSkipFragmentVarsBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroSkipFragmentVars build() => _build(); + + _$GHeroSkipFragmentVars _build() { + final _$result = _$v ?? + new _$GHeroSkipFragmentVars._( + skipDetails: BuiltValueNullFieldError.checkNotNull( + skipDetails, r'GHeroSkipFragmentVars', 'skipDetails')); + replace(_$result); + return _$result; + } +} + +class _$GHeroDetailVars extends GHeroDetailVars { + factory _$GHeroDetailVars([void Function(GHeroDetailVarsBuilder)? updates]) => + (new GHeroDetailVarsBuilder()..update(updates))._build(); + + _$GHeroDetailVars._() : super._(); + + @override + GHeroDetailVars rebuild(void Function(GHeroDetailVarsBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroDetailVarsBuilder toBuilder() => + new GHeroDetailVarsBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroDetailVars; + } + + @override + int get hashCode { + return 140740630; + } + + @override + String toString() { + return newBuiltValueToStringHelper(r'GHeroDetailVars').toString(); + } +} + +class GHeroDetailVarsBuilder + implements Builder { + _$GHeroDetailVars? _$v; + + GHeroDetailVarsBuilder(); + + @override + void replace(GHeroDetailVars other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroDetailVars; + } + + @override + void update(void Function(GHeroDetailVarsBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroDetailVars build() => _build(); + + _$GHeroDetailVars _build() { + final _$result = _$v ?? new _$GHeroDetailVars._(); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test/lib/directives/hero_include.graphql b/codegen/end_to_end_test/lib/directives/hero_include.graphql new file mode 100644 index 00000000..b0ed5d08 --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/hero_include.graphql @@ -0,0 +1,6 @@ +query HeroInclude($includeId: Boolean!) { + hero { + id @include(if: $includeId) + name + } +} diff --git a/codegen/end_to_end_test/lib/directives/hero_skip.graphql b/codegen/end_to_end_test/lib/directives/hero_skip.graphql new file mode 100644 index 00000000..9135240c --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/hero_skip.graphql @@ -0,0 +1,6 @@ +query HeroSkip($skipName: Boolean!) { + hero { + id + name @skip(if: $skipName) + } +} diff --git a/codegen/end_to_end_test/lib/directives/hero_skip_fragment.graphql b/codegen/end_to_end_test/lib/directives/hero_skip_fragment.graphql new file mode 100644 index 00000000..c1257d3a --- /dev/null +++ b/codegen/end_to_end_test/lib/directives/hero_skip_fragment.graphql @@ -0,0 +1,15 @@ +query HeroSkipFragment($skipDetails: Boolean!) { + hero { + id + ...HeroDetail @skip(if: $skipDetails) + } +} + +fragment HeroDetail on Character { + id + name + friends { + id + name + } +} diff --git a/codegen/end_to_end_test/lib/fragments/__generated__/hero_inline_fragment.ast.gql.dart b/codegen/end_to_end_test/lib/fragments/__generated__/hero_inline_fragment.ast.gql.dart new file mode 100644 index 00000000..d20dd2c6 --- /dev/null +++ b/codegen/end_to_end_test/lib/fragments/__generated__/hero_inline_fragment.ast.gql.dart @@ -0,0 +1,75 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:gql/ast.dart' as _i1; + +const HeroWithInlineFragments = _i1.OperationDefinitionNode( + type: _i1.OperationType.query, + name: _i1.NameNode(value: 'HeroWithInlineFragments'), + variableDefinitions: [ + _i1.VariableDefinitionNode( + variable: _i1.VariableNode(name: _i1.NameNode(value: 'skipName')), + type: _i1.NamedTypeNode( + name: _i1.NameNode(value: 'Boolean'), + isNonNull: true, + ), + defaultValue: _i1.DefaultValueNode(value: null), + directives: [], + ) + ], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'hero'), + alias: null, + arguments: [ + _i1.ArgumentNode( + name: _i1.NameNode(value: 'episode'), + value: _i1.EnumValueNode(name: _i1.NameNode(value: 'JEDI')), + ) + ], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.InlineFragmentNode( + typeCondition: null, + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'id'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ) + ]), + ), + _i1.InlineFragmentNode( + typeCondition: null, + directives: [ + _i1.DirectiveNode( + name: _i1.NameNode(value: 'skip'), + arguments: [ + _i1.ArgumentNode( + name: _i1.NameNode(value: 'if'), + value: + _i1.VariableNode(name: _i1.NameNode(value: 'skipName')), + ) + ], + ) + ], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'name'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ) + ]), + ), + ]), + ) + ]), +); +const document = _i1.DocumentNode(definitions: [HeroWithInlineFragments]); diff --git a/codegen/end_to_end_test/lib/fragments/__generated__/hero_inline_fragment.data.gql.dart b/codegen/end_to_end_test/lib/fragments/__generated__/hero_inline_fragment.data.gql.dart new file mode 100644 index 00000000..ed514367 --- /dev/null +++ b/codegen/end_to_end_test/lib/fragments/__generated__/hero_inline_fragment.data.gql.dart @@ -0,0 +1,101 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test/graphql/__generated__/serializers.gql.dart' + as _i1; +import 'package:gql_code_builder/src/serializers/inline_fragment_serializer.dart' + as _i2; + +part 'hero_inline_fragment.data.gql.g.dart'; + +abstract class GHeroWithInlineFragmentsData + implements + Built { + GHeroWithInlineFragmentsData._(); + + factory GHeroWithInlineFragmentsData( + [void Function(GHeroWithInlineFragmentsDataBuilder b) updates]) = + _$GHeroWithInlineFragmentsData; + + static void _initializeBuilder(GHeroWithInlineFragmentsDataBuilder b) => + b..G__typename = 'Query'; + + @BuiltValueField(wireName: '__typename') + String get G__typename; + GHeroWithInlineFragmentsData_hero? get hero; + static Serializer get serializer => + _$gHeroWithInlineFragmentsDataSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroWithInlineFragmentsData.serializer, + this, + ) as Map); + + static GHeroWithInlineFragmentsData? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroWithInlineFragmentsData.serializer, + json, + ); +} + +abstract class GHeroWithInlineFragmentsData_hero { + @BuiltValueField(wireName: '__typename') + String get G__typename; + static Serializer get serializer => + _i2.InlineFragmentSerializer( + 'GHeroWithInlineFragmentsData_hero', + GHeroWithInlineFragmentsData_hero__base, + {}, + ); + + Map toJson() => (_i1.serializers.serializeWith( + GHeroWithInlineFragmentsData_hero.serializer, + this, + ) as Map); + + static GHeroWithInlineFragmentsData_hero? fromJson( + Map json) => + _i1.serializers.deserializeWith( + GHeroWithInlineFragmentsData_hero.serializer, + json, + ); +} + +abstract class GHeroWithInlineFragmentsData_hero__base + implements + Built, + GHeroWithInlineFragmentsData_hero { + GHeroWithInlineFragmentsData_hero__base._(); + + factory GHeroWithInlineFragmentsData_hero__base( + [void Function(GHeroWithInlineFragmentsData_hero__baseBuilder b) + updates]) = _$GHeroWithInlineFragmentsData_hero__base; + + static void _initializeBuilder( + GHeroWithInlineFragmentsData_hero__baseBuilder b) => + b..G__typename = 'Character'; + + @override + @BuiltValueField(wireName: '__typename') + String get G__typename; + static Serializer get serializer => + _$gHeroWithInlineFragmentsDataHeroBaseSerializer; + + @override + Map toJson() => (_i1.serializers.serializeWith( + GHeroWithInlineFragmentsData_hero__base.serializer, + this, + ) as Map); + + static GHeroWithInlineFragmentsData_hero__base? fromJson( + Map json) => + _i1.serializers.deserializeWith( + GHeroWithInlineFragmentsData_hero__base.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test/lib/fragments/__generated__/hero_inline_fragment.data.gql.g.dart b/codegen/end_to_end_test/lib/fragments/__generated__/hero_inline_fragment.data.gql.g.dart new file mode 100644 index 00000000..7cd96086 --- /dev/null +++ b/codegen/end_to_end_test/lib/fragments/__generated__/hero_inline_fragment.data.gql.g.dart @@ -0,0 +1,324 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_inline_fragment.data.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer + _$gHeroWithInlineFragmentsDataSerializer = + new _$GHeroWithInlineFragmentsDataSerializer(); +Serializer + _$gHeroWithInlineFragmentsDataHeroBaseSerializer = + new _$GHeroWithInlineFragmentsData_hero__baseSerializer(); + +class _$GHeroWithInlineFragmentsDataSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroWithInlineFragmentsData, + _$GHeroWithInlineFragmentsData + ]; + @override + final String wireName = 'GHeroWithInlineFragmentsData'; + + @override + Iterable serialize( + Serializers serializers, GHeroWithInlineFragmentsData object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + ]; + Object? value; + value = object.hero; + if (value != null) { + result + ..add('hero') + ..add(serializers.serialize(value, + specifiedType: const FullType(GHeroWithInlineFragmentsData_hero))); + } + return result; + } + + @override + GHeroWithInlineFragmentsData deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroWithInlineFragmentsDataBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'hero': + result.hero = serializers.deserialize(value, + specifiedType: + const FullType(GHeroWithInlineFragmentsData_hero)) + as GHeroWithInlineFragmentsData_hero?; + break; + } + } + + return result.build(); + } +} + +class _$GHeroWithInlineFragmentsData_hero__baseSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroWithInlineFragmentsData_hero__base, + _$GHeroWithInlineFragmentsData_hero__base + ]; + @override + final String wireName = 'GHeroWithInlineFragmentsData_hero__base'; + + @override + Iterable serialize( + Serializers serializers, GHeroWithInlineFragmentsData_hero__base object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + ]; + + return result; + } + + @override + GHeroWithInlineFragmentsData_hero__base deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroWithInlineFragmentsData_hero__baseBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + } + } + + return result.build(); + } +} + +class _$GHeroWithInlineFragmentsData extends GHeroWithInlineFragmentsData { + @override + final String G__typename; + @override + final GHeroWithInlineFragmentsData_hero? hero; + + factory _$GHeroWithInlineFragmentsData( + [void Function(GHeroWithInlineFragmentsDataBuilder)? updates]) => + (new GHeroWithInlineFragmentsDataBuilder()..update(updates))._build(); + + _$GHeroWithInlineFragmentsData._({required this.G__typename, this.hero}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroWithInlineFragmentsData', 'G__typename'); + } + + @override + GHeroWithInlineFragmentsData rebuild( + void Function(GHeroWithInlineFragmentsDataBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroWithInlineFragmentsDataBuilder toBuilder() => + new GHeroWithInlineFragmentsDataBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroWithInlineFragmentsData && + G__typename == other.G__typename && + hero == other.hero; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, hero.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroWithInlineFragmentsData') + ..add('G__typename', G__typename) + ..add('hero', hero)) + .toString(); + } +} + +class GHeroWithInlineFragmentsDataBuilder + implements + Builder { + _$GHeroWithInlineFragmentsData? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + GHeroWithInlineFragmentsData_hero? _hero; + GHeroWithInlineFragmentsData_hero? get hero => _$this._hero; + set hero(GHeroWithInlineFragmentsData_hero? hero) => _$this._hero = hero; + + GHeroWithInlineFragmentsDataBuilder() { + GHeroWithInlineFragmentsData._initializeBuilder(this); + } + + GHeroWithInlineFragmentsDataBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _hero = $v.hero; + _$v = null; + } + return this; + } + + @override + void replace(GHeroWithInlineFragmentsData other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroWithInlineFragmentsData; + } + + @override + void update(void Function(GHeroWithInlineFragmentsDataBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroWithInlineFragmentsData build() => _build(); + + _$GHeroWithInlineFragmentsData _build() { + final _$result = _$v ?? + new _$GHeroWithInlineFragmentsData._( + G__typename: BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroWithInlineFragmentsData', 'G__typename'), + hero: hero); + replace(_$result); + return _$result; + } +} + +class _$GHeroWithInlineFragmentsData_hero__base + extends GHeroWithInlineFragmentsData_hero__base { + @override + final String G__typename; + + factory _$GHeroWithInlineFragmentsData_hero__base( + [void Function(GHeroWithInlineFragmentsData_hero__baseBuilder)? + updates]) => + (new GHeroWithInlineFragmentsData_hero__baseBuilder()..update(updates)) + ._build(); + + _$GHeroWithInlineFragmentsData_hero__base._({required this.G__typename}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroWithInlineFragmentsData_hero__base', 'G__typename'); + } + + @override + GHeroWithInlineFragmentsData_hero__base rebuild( + void Function(GHeroWithInlineFragmentsData_hero__baseBuilder) + updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroWithInlineFragmentsData_hero__baseBuilder toBuilder() => + new GHeroWithInlineFragmentsData_hero__baseBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroWithInlineFragmentsData_hero__base && + G__typename == other.G__typename; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper( + r'GHeroWithInlineFragmentsData_hero__base') + ..add('G__typename', G__typename)) + .toString(); + } +} + +class GHeroWithInlineFragmentsData_hero__baseBuilder + implements + Builder { + _$GHeroWithInlineFragmentsData_hero__base? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + GHeroWithInlineFragmentsData_hero__baseBuilder() { + GHeroWithInlineFragmentsData_hero__base._initializeBuilder(this); + } + + GHeroWithInlineFragmentsData_hero__baseBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _$v = null; + } + return this; + } + + @override + void replace(GHeroWithInlineFragmentsData_hero__base other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroWithInlineFragmentsData_hero__base; + } + + @override + void update( + void Function(GHeroWithInlineFragmentsData_hero__baseBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroWithInlineFragmentsData_hero__base build() => _build(); + + _$GHeroWithInlineFragmentsData_hero__base _build() { + final _$result = _$v ?? + new _$GHeroWithInlineFragmentsData_hero__base._( + G__typename: BuiltValueNullFieldError.checkNotNull(G__typename, + r'GHeroWithInlineFragmentsData_hero__base', 'G__typename')); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test/lib/fragments/__generated__/hero_inline_fragment.req.gql.dart b/codegen/end_to_end_test/lib/fragments/__generated__/hero_inline_fragment.req.gql.dart new file mode 100644 index 00000000..bfba0f16 --- /dev/null +++ b/codegen/end_to_end_test/lib/fragments/__generated__/hero_inline_fragment.req.gql.dart @@ -0,0 +1,47 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test/fragments/__generated__/hero_inline_fragment.ast.gql.dart' + as _i2; +import 'package:end_to_end_test/fragments/__generated__/hero_inline_fragment.var.gql.dart' + as _i3; +import 'package:end_to_end_test/graphql/__generated__/serializers.gql.dart' + as _i4; +import 'package:gql_exec/gql_exec.dart' as _i1; + +part 'hero_inline_fragment.req.gql.g.dart'; + +abstract class GHeroWithInlineFragments + implements + Built { + GHeroWithInlineFragments._(); + + factory GHeroWithInlineFragments( + [void Function(GHeroWithInlineFragmentsBuilder b) updates]) = + _$GHeroWithInlineFragments; + + static void _initializeBuilder(GHeroWithInlineFragmentsBuilder b) => b + ..operation = _i1.Operation( + document: _i2.document, + operationName: 'HeroWithInlineFragments', + ); + + _i3.GHeroWithInlineFragmentsVars get vars; + _i1.Operation get operation; + static Serializer get serializer => + _$gHeroWithInlineFragmentsSerializer; + + Map toJson() => (_i4.serializers.serializeWith( + GHeroWithInlineFragments.serializer, + this, + ) as Map); + + static GHeroWithInlineFragments? fromJson(Map json) => + _i4.serializers.deserializeWith( + GHeroWithInlineFragments.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test/lib/fragments/__generated__/hero_inline_fragment.req.gql.g.dart b/codegen/end_to_end_test/lib/fragments/__generated__/hero_inline_fragment.req.gql.g.dart new file mode 100644 index 00000000..0279bcd1 --- /dev/null +++ b/codegen/end_to_end_test/lib/fragments/__generated__/hero_inline_fragment.req.gql.g.dart @@ -0,0 +1,187 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_inline_fragment.req.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$gHeroWithInlineFragmentsSerializer = + new _$GHeroWithInlineFragmentsSerializer(); + +class _$GHeroWithInlineFragmentsSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroWithInlineFragments, + _$GHeroWithInlineFragments + ]; + @override + final String wireName = 'GHeroWithInlineFragments'; + + @override + Iterable serialize( + Serializers serializers, GHeroWithInlineFragments object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + 'vars', + serializers.serialize(object.vars, + specifiedType: const FullType(_i3.GHeroWithInlineFragmentsVars)), + 'operation', + serializers.serialize(object.operation, + specifiedType: const FullType(_i1.Operation)), + ]; + + return result; + } + + @override + GHeroWithInlineFragments deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroWithInlineFragmentsBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'vars': + result.vars.replace(serializers.deserialize(value, + specifiedType: + const FullType(_i3.GHeroWithInlineFragmentsVars))! + as _i3.GHeroWithInlineFragmentsVars); + break; + case 'operation': + result.operation = serializers.deserialize(value, + specifiedType: const FullType(_i1.Operation))! as _i1.Operation; + break; + } + } + + return result.build(); + } +} + +class _$GHeroWithInlineFragments extends GHeroWithInlineFragments { + @override + final _i3.GHeroWithInlineFragmentsVars vars; + @override + final _i1.Operation operation; + + factory _$GHeroWithInlineFragments( + [void Function(GHeroWithInlineFragmentsBuilder)? updates]) => + (new GHeroWithInlineFragmentsBuilder()..update(updates))._build(); + + _$GHeroWithInlineFragments._({required this.vars, required this.operation}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + vars, r'GHeroWithInlineFragments', 'vars'); + BuiltValueNullFieldError.checkNotNull( + operation, r'GHeroWithInlineFragments', 'operation'); + } + + @override + GHeroWithInlineFragments rebuild( + void Function(GHeroWithInlineFragmentsBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroWithInlineFragmentsBuilder toBuilder() => + new GHeroWithInlineFragmentsBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroWithInlineFragments && + vars == other.vars && + operation == other.operation; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, vars.hashCode); + _$hash = $jc(_$hash, operation.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroWithInlineFragments') + ..add('vars', vars) + ..add('operation', operation)) + .toString(); + } +} + +class GHeroWithInlineFragmentsBuilder + implements + Builder { + _$GHeroWithInlineFragments? _$v; + + _i3.GHeroWithInlineFragmentsVarsBuilder? _vars; + _i3.GHeroWithInlineFragmentsVarsBuilder get vars => + _$this._vars ??= new _i3.GHeroWithInlineFragmentsVarsBuilder(); + set vars(_i3.GHeroWithInlineFragmentsVarsBuilder? vars) => + _$this._vars = vars; + + _i1.Operation? _operation; + _i1.Operation? get operation => _$this._operation; + set operation(_i1.Operation? operation) => _$this._operation = operation; + + GHeroWithInlineFragmentsBuilder() { + GHeroWithInlineFragments._initializeBuilder(this); + } + + GHeroWithInlineFragmentsBuilder get _$this { + final $v = _$v; + if ($v != null) { + _vars = $v.vars.toBuilder(); + _operation = $v.operation; + _$v = null; + } + return this; + } + + @override + void replace(GHeroWithInlineFragments other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroWithInlineFragments; + } + + @override + void update(void Function(GHeroWithInlineFragmentsBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroWithInlineFragments build() => _build(); + + _$GHeroWithInlineFragments _build() { + _$GHeroWithInlineFragments _$result; + try { + _$result = _$v ?? + new _$GHeroWithInlineFragments._( + vars: vars.build(), + operation: BuiltValueNullFieldError.checkNotNull( + operation, r'GHeroWithInlineFragments', 'operation')); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'vars'; + vars.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroWithInlineFragments', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test/lib/fragments/__generated__/hero_inline_fragment.var.gql.dart b/codegen/end_to_end_test/lib/fragments/__generated__/hero_inline_fragment.var.gql.dart new file mode 100644 index 00000000..4f6bde26 --- /dev/null +++ b/codegen/end_to_end_test/lib/fragments/__generated__/hero_inline_fragment.var.gql.dart @@ -0,0 +1,36 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test/graphql/__generated__/serializers.gql.dart' + as _i1; + +part 'hero_inline_fragment.var.gql.g.dart'; + +abstract class GHeroWithInlineFragmentsVars + implements + Built { + GHeroWithInlineFragmentsVars._(); + + factory GHeroWithInlineFragmentsVars( + [void Function(GHeroWithInlineFragmentsVarsBuilder b) updates]) = + _$GHeroWithInlineFragmentsVars; + + bool get skipName; + static Serializer get serializer => + _$gHeroWithInlineFragmentsVarsSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroWithInlineFragmentsVars.serializer, + this, + ) as Map); + + static GHeroWithInlineFragmentsVars? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroWithInlineFragmentsVars.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test/lib/fragments/__generated__/hero_inline_fragment.var.gql.g.dart b/codegen/end_to_end_test/lib/fragments/__generated__/hero_inline_fragment.var.gql.g.dart new file mode 100644 index 00000000..482caf8d --- /dev/null +++ b/codegen/end_to_end_test/lib/fragments/__generated__/hero_inline_fragment.var.gql.g.dart @@ -0,0 +1,148 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_inline_fragment.var.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer + _$gHeroWithInlineFragmentsVarsSerializer = + new _$GHeroWithInlineFragmentsVarsSerializer(); + +class _$GHeroWithInlineFragmentsVarsSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroWithInlineFragmentsVars, + _$GHeroWithInlineFragmentsVars + ]; + @override + final String wireName = 'GHeroWithInlineFragmentsVars'; + + @override + Iterable serialize( + Serializers serializers, GHeroWithInlineFragmentsVars object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + 'skipName', + serializers.serialize(object.skipName, + specifiedType: const FullType(bool)), + ]; + + return result; + } + + @override + GHeroWithInlineFragmentsVars deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroWithInlineFragmentsVarsBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'skipName': + result.skipName = serializers.deserialize(value, + specifiedType: const FullType(bool))! as bool; + break; + } + } + + return result.build(); + } +} + +class _$GHeroWithInlineFragmentsVars extends GHeroWithInlineFragmentsVars { + @override + final bool skipName; + + factory _$GHeroWithInlineFragmentsVars( + [void Function(GHeroWithInlineFragmentsVarsBuilder)? updates]) => + (new GHeroWithInlineFragmentsVarsBuilder()..update(updates))._build(); + + _$GHeroWithInlineFragmentsVars._({required this.skipName}) : super._() { + BuiltValueNullFieldError.checkNotNull( + skipName, r'GHeroWithInlineFragmentsVars', 'skipName'); + } + + @override + GHeroWithInlineFragmentsVars rebuild( + void Function(GHeroWithInlineFragmentsVarsBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroWithInlineFragmentsVarsBuilder toBuilder() => + new GHeroWithInlineFragmentsVarsBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroWithInlineFragmentsVars && skipName == other.skipName; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, skipName.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroWithInlineFragmentsVars') + ..add('skipName', skipName)) + .toString(); + } +} + +class GHeroWithInlineFragmentsVarsBuilder + implements + Builder { + _$GHeroWithInlineFragmentsVars? _$v; + + bool? _skipName; + bool? get skipName => _$this._skipName; + set skipName(bool? skipName) => _$this._skipName = skipName; + + GHeroWithInlineFragmentsVarsBuilder(); + + GHeroWithInlineFragmentsVarsBuilder get _$this { + final $v = _$v; + if ($v != null) { + _skipName = $v.skipName; + _$v = null; + } + return this; + } + + @override + void replace(GHeroWithInlineFragmentsVars other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroWithInlineFragmentsVars; + } + + @override + void update(void Function(GHeroWithInlineFragmentsVarsBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroWithInlineFragmentsVars build() => _build(); + + _$GHeroWithInlineFragmentsVars _build() { + final _$result = _$v ?? + new _$GHeroWithInlineFragmentsVars._( + skipName: BuiltValueNullFieldError.checkNotNull( + skipName, r'GHeroWithInlineFragmentsVars', 'skipName')); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test/lib/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.ast.gql.dart b/codegen/end_to_end_test/lib/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.ast.gql.dart new file mode 100644 index 00000000..2be0f527 --- /dev/null +++ b/codegen/end_to_end_test/lib/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.ast.gql.dart @@ -0,0 +1,67 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:gql/ast.dart' as _i1; + +const HeroWithFragmentsDuplication = _i1.OperationDefinitionNode( + type: _i1.OperationType.query, + name: _i1.NameNode(value: 'HeroWithFragmentsDuplication'), + variableDefinitions: [], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'hero'), + alias: null, + arguments: [ + _i1.ArgumentNode( + name: _i1.NameNode(value: 'episode'), + value: _i1.EnumValueNode(name: _i1.NameNode(value: 'JEDI')), + ) + ], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'id'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ), + _i1.FragmentSpreadNode( + name: _i1.NameNode(value: 'HeroWithFragmentsDuplicationFragment'), + directives: [], + ), + ]), + ) + ]), +); +const HeroWithFragmentsDuplicationFragment = _i1.FragmentDefinitionNode( + name: _i1.NameNode(value: 'HeroWithFragmentsDuplicationFragment'), + typeCondition: _i1.TypeConditionNode( + on: _i1.NamedTypeNode( + name: _i1.NameNode(value: 'Character'), + isNonNull: false, + )), + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'id'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ), + _i1.FieldNode( + name: _i1.NameNode(value: 'name'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ), + ]), +); +const document = _i1.DocumentNode(definitions: [ + HeroWithFragmentsDuplication, + HeroWithFragmentsDuplicationFragment, +]); diff --git a/codegen/end_to_end_test/lib/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.data.gql.dart b/codegen/end_to_end_test/lib/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.data.gql.dart new file mode 100644 index 00000000..cf364ba4 --- /dev/null +++ b/codegen/end_to_end_test/lib/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.data.gql.dart @@ -0,0 +1,127 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test/graphql/__generated__/serializers.gql.dart' + as _i1; + +part 'hero_with_duplicated_fields_due_to_fragments.data.gql.g.dart'; + +abstract class GHeroWithFragmentsDuplicationData + implements + Built { + GHeroWithFragmentsDuplicationData._(); + + factory GHeroWithFragmentsDuplicationData( + [void Function(GHeroWithFragmentsDuplicationDataBuilder b) updates]) = + _$GHeroWithFragmentsDuplicationData; + + static void _initializeBuilder(GHeroWithFragmentsDuplicationDataBuilder b) => + b..G__typename = 'Query'; + + @BuiltValueField(wireName: '__typename') + String get G__typename; + GHeroWithFragmentsDuplicationData_hero? get hero; + static Serializer get serializer => + _$gHeroWithFragmentsDuplicationDataSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroWithFragmentsDuplicationData.serializer, + this, + ) as Map); + + static GHeroWithFragmentsDuplicationData? fromJson( + Map json) => + _i1.serializers.deserializeWith( + GHeroWithFragmentsDuplicationData.serializer, + json, + ); +} + +abstract class GHeroWithFragmentsDuplicationData_hero + implements + Built, + GHeroWithFragmentsDuplicationFragment { + GHeroWithFragmentsDuplicationData_hero._(); + + factory GHeroWithFragmentsDuplicationData_hero( + [void Function(GHeroWithFragmentsDuplicationData_heroBuilder b) + updates]) = _$GHeroWithFragmentsDuplicationData_hero; + + static void _initializeBuilder( + GHeroWithFragmentsDuplicationData_heroBuilder b) => + b..G__typename = 'Character'; + + @override + @BuiltValueField(wireName: '__typename') + String get G__typename; + @override + String get id; + @override + String get name; + static Serializer get serializer => + _$gHeroWithFragmentsDuplicationDataHeroSerializer; + + @override + Map toJson() => (_i1.serializers.serializeWith( + GHeroWithFragmentsDuplicationData_hero.serializer, + this, + ) as Map); + + static GHeroWithFragmentsDuplicationData_hero? fromJson( + Map json) => + _i1.serializers.deserializeWith( + GHeroWithFragmentsDuplicationData_hero.serializer, + json, + ); +} + +abstract class GHeroWithFragmentsDuplicationFragment { + String get G__typename; + String get id; + String get name; + Map toJson(); +} + +abstract class GHeroWithFragmentsDuplicationFragmentData + implements + Built, + GHeroWithFragmentsDuplicationFragment { + GHeroWithFragmentsDuplicationFragmentData._(); + + factory GHeroWithFragmentsDuplicationFragmentData( + [void Function(GHeroWithFragmentsDuplicationFragmentDataBuilder b) + updates]) = _$GHeroWithFragmentsDuplicationFragmentData; + + static void _initializeBuilder( + GHeroWithFragmentsDuplicationFragmentDataBuilder b) => + b..G__typename = 'Character'; + + @override + @BuiltValueField(wireName: '__typename') + String get G__typename; + @override + String get id; + @override + String get name; + static Serializer get serializer => + _$gHeroWithFragmentsDuplicationFragmentDataSerializer; + + @override + Map toJson() => (_i1.serializers.serializeWith( + GHeroWithFragmentsDuplicationFragmentData.serializer, + this, + ) as Map); + + static GHeroWithFragmentsDuplicationFragmentData? fromJson( + Map json) => + _i1.serializers.deserializeWith( + GHeroWithFragmentsDuplicationFragmentData.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test/lib/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.data.gql.g.dart b/codegen/end_to_end_test/lib/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.data.gql.g.dart new file mode 100644 index 00000000..a10e95e8 --- /dev/null +++ b/codegen/end_to_end_test/lib/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.data.gql.g.dart @@ -0,0 +1,574 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_with_duplicated_fields_due_to_fragments.data.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer + _$gHeroWithFragmentsDuplicationDataSerializer = + new _$GHeroWithFragmentsDuplicationDataSerializer(); +Serializer + _$gHeroWithFragmentsDuplicationDataHeroSerializer = + new _$GHeroWithFragmentsDuplicationData_heroSerializer(); +Serializer + _$gHeroWithFragmentsDuplicationFragmentDataSerializer = + new _$GHeroWithFragmentsDuplicationFragmentDataSerializer(); + +class _$GHeroWithFragmentsDuplicationDataSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroWithFragmentsDuplicationData, + _$GHeroWithFragmentsDuplicationData + ]; + @override + final String wireName = 'GHeroWithFragmentsDuplicationData'; + + @override + Iterable serialize( + Serializers serializers, GHeroWithFragmentsDuplicationData object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + ]; + Object? value; + value = object.hero; + if (value != null) { + result + ..add('hero') + ..add(serializers.serialize(value, + specifiedType: + const FullType(GHeroWithFragmentsDuplicationData_hero))); + } + return result; + } + + @override + GHeroWithFragmentsDuplicationData deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroWithFragmentsDuplicationDataBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'hero': + result.hero.replace(serializers.deserialize(value, + specifiedType: + const FullType(GHeroWithFragmentsDuplicationData_hero))! + as GHeroWithFragmentsDuplicationData_hero); + break; + } + } + + return result.build(); + } +} + +class _$GHeroWithFragmentsDuplicationData_heroSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroWithFragmentsDuplicationData_hero, + _$GHeroWithFragmentsDuplicationData_hero + ]; + @override + final String wireName = 'GHeroWithFragmentsDuplicationData_hero'; + + @override + Iterable serialize( + Serializers serializers, GHeroWithFragmentsDuplicationData_hero object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + 'id', + serializers.serialize(object.id, specifiedType: const FullType(String)), + 'name', + serializers.serialize(object.name, specifiedType: const FullType(String)), + ]; + + return result; + } + + @override + GHeroWithFragmentsDuplicationData_hero deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroWithFragmentsDuplicationData_heroBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'name': + result.name = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + } + } + + return result.build(); + } +} + +class _$GHeroWithFragmentsDuplicationFragmentDataSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroWithFragmentsDuplicationFragmentData, + _$GHeroWithFragmentsDuplicationFragmentData + ]; + @override + final String wireName = 'GHeroWithFragmentsDuplicationFragmentData'; + + @override + Iterable serialize( + Serializers serializers, GHeroWithFragmentsDuplicationFragmentData object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + 'id', + serializers.serialize(object.id, specifiedType: const FullType(String)), + 'name', + serializers.serialize(object.name, specifiedType: const FullType(String)), + ]; + + return result; + } + + @override + GHeroWithFragmentsDuplicationFragmentData deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroWithFragmentsDuplicationFragmentDataBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'name': + result.name = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + } + } + + return result.build(); + } +} + +class _$GHeroWithFragmentsDuplicationData + extends GHeroWithFragmentsDuplicationData { + @override + final String G__typename; + @override + final GHeroWithFragmentsDuplicationData_hero? hero; + + factory _$GHeroWithFragmentsDuplicationData( + [void Function(GHeroWithFragmentsDuplicationDataBuilder)? updates]) => + (new GHeroWithFragmentsDuplicationDataBuilder()..update(updates)) + ._build(); + + _$GHeroWithFragmentsDuplicationData._({required this.G__typename, this.hero}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroWithFragmentsDuplicationData', 'G__typename'); + } + + @override + GHeroWithFragmentsDuplicationData rebuild( + void Function(GHeroWithFragmentsDuplicationDataBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroWithFragmentsDuplicationDataBuilder toBuilder() => + new GHeroWithFragmentsDuplicationDataBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroWithFragmentsDuplicationData && + G__typename == other.G__typename && + hero == other.hero; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, hero.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroWithFragmentsDuplicationData') + ..add('G__typename', G__typename) + ..add('hero', hero)) + .toString(); + } +} + +class GHeroWithFragmentsDuplicationDataBuilder + implements + Builder { + _$GHeroWithFragmentsDuplicationData? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + GHeroWithFragmentsDuplicationData_heroBuilder? _hero; + GHeroWithFragmentsDuplicationData_heroBuilder get hero => + _$this._hero ??= new GHeroWithFragmentsDuplicationData_heroBuilder(); + set hero(GHeroWithFragmentsDuplicationData_heroBuilder? hero) => + _$this._hero = hero; + + GHeroWithFragmentsDuplicationDataBuilder() { + GHeroWithFragmentsDuplicationData._initializeBuilder(this); + } + + GHeroWithFragmentsDuplicationDataBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _hero = $v.hero?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(GHeroWithFragmentsDuplicationData other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroWithFragmentsDuplicationData; + } + + @override + void update( + void Function(GHeroWithFragmentsDuplicationDataBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroWithFragmentsDuplicationData build() => _build(); + + _$GHeroWithFragmentsDuplicationData _build() { + _$GHeroWithFragmentsDuplicationData _$result; + try { + _$result = _$v ?? + new _$GHeroWithFragmentsDuplicationData._( + G__typename: BuiltValueNullFieldError.checkNotNull(G__typename, + r'GHeroWithFragmentsDuplicationData', 'G__typename'), + hero: _hero?.build()); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'hero'; + _hero?.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroWithFragmentsDuplicationData', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$GHeroWithFragmentsDuplicationData_hero + extends GHeroWithFragmentsDuplicationData_hero { + @override + final String G__typename; + @override + final String id; + @override + final String name; + + factory _$GHeroWithFragmentsDuplicationData_hero( + [void Function(GHeroWithFragmentsDuplicationData_heroBuilder)? + updates]) => + (new GHeroWithFragmentsDuplicationData_heroBuilder()..update(updates)) + ._build(); + + _$GHeroWithFragmentsDuplicationData_hero._( + {required this.G__typename, required this.id, required this.name}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroWithFragmentsDuplicationData_hero', 'G__typename'); + BuiltValueNullFieldError.checkNotNull( + id, r'GHeroWithFragmentsDuplicationData_hero', 'id'); + BuiltValueNullFieldError.checkNotNull( + name, r'GHeroWithFragmentsDuplicationData_hero', 'name'); + } + + @override + GHeroWithFragmentsDuplicationData_hero rebuild( + void Function(GHeroWithFragmentsDuplicationData_heroBuilder) + updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroWithFragmentsDuplicationData_heroBuilder toBuilder() => + new GHeroWithFragmentsDuplicationData_heroBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroWithFragmentsDuplicationData_hero && + G__typename == other.G__typename && + id == other.id && + name == other.name; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, id.hashCode); + _$hash = $jc(_$hash, name.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper( + r'GHeroWithFragmentsDuplicationData_hero') + ..add('G__typename', G__typename) + ..add('id', id) + ..add('name', name)) + .toString(); + } +} + +class GHeroWithFragmentsDuplicationData_heroBuilder + implements + Builder { + _$GHeroWithFragmentsDuplicationData_hero? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + String? _id; + String? get id => _$this._id; + set id(String? id) => _$this._id = id; + + String? _name; + String? get name => _$this._name; + set name(String? name) => _$this._name = name; + + GHeroWithFragmentsDuplicationData_heroBuilder() { + GHeroWithFragmentsDuplicationData_hero._initializeBuilder(this); + } + + GHeroWithFragmentsDuplicationData_heroBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _id = $v.id; + _name = $v.name; + _$v = null; + } + return this; + } + + @override + void replace(GHeroWithFragmentsDuplicationData_hero other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroWithFragmentsDuplicationData_hero; + } + + @override + void update( + void Function(GHeroWithFragmentsDuplicationData_heroBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroWithFragmentsDuplicationData_hero build() => _build(); + + _$GHeroWithFragmentsDuplicationData_hero _build() { + final _$result = _$v ?? + new _$GHeroWithFragmentsDuplicationData_hero._( + G__typename: BuiltValueNullFieldError.checkNotNull(G__typename, + r'GHeroWithFragmentsDuplicationData_hero', 'G__typename'), + id: BuiltValueNullFieldError.checkNotNull( + id, r'GHeroWithFragmentsDuplicationData_hero', 'id'), + name: BuiltValueNullFieldError.checkNotNull( + name, r'GHeroWithFragmentsDuplicationData_hero', 'name')); + replace(_$result); + return _$result; + } +} + +class _$GHeroWithFragmentsDuplicationFragmentData + extends GHeroWithFragmentsDuplicationFragmentData { + @override + final String G__typename; + @override + final String id; + @override + final String name; + + factory _$GHeroWithFragmentsDuplicationFragmentData( + [void Function(GHeroWithFragmentsDuplicationFragmentDataBuilder)? + updates]) => + (new GHeroWithFragmentsDuplicationFragmentDataBuilder()..update(updates)) + ._build(); + + _$GHeroWithFragmentsDuplicationFragmentData._( + {required this.G__typename, required this.id, required this.name}) + : super._() { + BuiltValueNullFieldError.checkNotNull(G__typename, + r'GHeroWithFragmentsDuplicationFragmentData', 'G__typename'); + BuiltValueNullFieldError.checkNotNull( + id, r'GHeroWithFragmentsDuplicationFragmentData', 'id'); + BuiltValueNullFieldError.checkNotNull( + name, r'GHeroWithFragmentsDuplicationFragmentData', 'name'); + } + + @override + GHeroWithFragmentsDuplicationFragmentData rebuild( + void Function(GHeroWithFragmentsDuplicationFragmentDataBuilder) + updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroWithFragmentsDuplicationFragmentDataBuilder toBuilder() => + new GHeroWithFragmentsDuplicationFragmentDataBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroWithFragmentsDuplicationFragmentData && + G__typename == other.G__typename && + id == other.id && + name == other.name; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, id.hashCode); + _$hash = $jc(_$hash, name.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper( + r'GHeroWithFragmentsDuplicationFragmentData') + ..add('G__typename', G__typename) + ..add('id', id) + ..add('name', name)) + .toString(); + } +} + +class GHeroWithFragmentsDuplicationFragmentDataBuilder + implements + Builder { + _$GHeroWithFragmentsDuplicationFragmentData? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + String? _id; + String? get id => _$this._id; + set id(String? id) => _$this._id = id; + + String? _name; + String? get name => _$this._name; + set name(String? name) => _$this._name = name; + + GHeroWithFragmentsDuplicationFragmentDataBuilder() { + GHeroWithFragmentsDuplicationFragmentData._initializeBuilder(this); + } + + GHeroWithFragmentsDuplicationFragmentDataBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _id = $v.id; + _name = $v.name; + _$v = null; + } + return this; + } + + @override + void replace(GHeroWithFragmentsDuplicationFragmentData other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroWithFragmentsDuplicationFragmentData; + } + + @override + void update( + void Function(GHeroWithFragmentsDuplicationFragmentDataBuilder)? + updates) { + if (updates != null) updates(this); + } + + @override + GHeroWithFragmentsDuplicationFragmentData build() => _build(); + + _$GHeroWithFragmentsDuplicationFragmentData _build() { + final _$result = _$v ?? + new _$GHeroWithFragmentsDuplicationFragmentData._( + G__typename: BuiltValueNullFieldError.checkNotNull(G__typename, + r'GHeroWithFragmentsDuplicationFragmentData', 'G__typename'), + id: BuiltValueNullFieldError.checkNotNull( + id, r'GHeroWithFragmentsDuplicationFragmentData', 'id'), + name: BuiltValueNullFieldError.checkNotNull( + name, r'GHeroWithFragmentsDuplicationFragmentData', 'name')); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test/lib/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.req.gql.dart b/codegen/end_to_end_test/lib/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.req.gql.dart new file mode 100644 index 00000000..25445b2c --- /dev/null +++ b/codegen/end_to_end_test/lib/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.req.gql.dart @@ -0,0 +1,48 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.ast.gql.dart' + as _i2; +import 'package:end_to_end_test/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.var.gql.dart' + as _i3; +import 'package:end_to_end_test/graphql/__generated__/serializers.gql.dart' + as _i4; +import 'package:gql_exec/gql_exec.dart' as _i1; + +part 'hero_with_duplicated_fields_due_to_fragments.req.gql.g.dart'; + +abstract class GHeroWithFragmentsDuplication + implements + Built { + GHeroWithFragmentsDuplication._(); + + factory GHeroWithFragmentsDuplication( + [void Function(GHeroWithFragmentsDuplicationBuilder b) updates]) = + _$GHeroWithFragmentsDuplication; + + static void _initializeBuilder(GHeroWithFragmentsDuplicationBuilder b) => b + ..operation = _i1.Operation( + document: _i2.document, + operationName: 'HeroWithFragmentsDuplication', + ); + + _i3.GHeroWithFragmentsDuplicationVars get vars; + _i1.Operation get operation; + static Serializer get serializer => + _$gHeroWithFragmentsDuplicationSerializer; + + Map toJson() => (_i4.serializers.serializeWith( + GHeroWithFragmentsDuplication.serializer, + this, + ) as Map); + + static GHeroWithFragmentsDuplication? fromJson(Map json) => + _i4.serializers.deserializeWith( + GHeroWithFragmentsDuplication.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test/lib/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.req.gql.g.dart b/codegen/end_to_end_test/lib/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.req.gql.g.dart new file mode 100644 index 00000000..63f53111 --- /dev/null +++ b/codegen/end_to_end_test/lib/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.req.gql.g.dart @@ -0,0 +1,190 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_with_duplicated_fields_due_to_fragments.req.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer + _$gHeroWithFragmentsDuplicationSerializer = + new _$GHeroWithFragmentsDuplicationSerializer(); + +class _$GHeroWithFragmentsDuplicationSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroWithFragmentsDuplication, + _$GHeroWithFragmentsDuplication + ]; + @override + final String wireName = 'GHeroWithFragmentsDuplication'; + + @override + Iterable serialize( + Serializers serializers, GHeroWithFragmentsDuplication object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + 'vars', + serializers.serialize(object.vars, + specifiedType: const FullType(_i3.GHeroWithFragmentsDuplicationVars)), + 'operation', + serializers.serialize(object.operation, + specifiedType: const FullType(_i1.Operation)), + ]; + + return result; + } + + @override + GHeroWithFragmentsDuplication deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroWithFragmentsDuplicationBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'vars': + result.vars.replace(serializers.deserialize(value, + specifiedType: + const FullType(_i3.GHeroWithFragmentsDuplicationVars))! + as _i3.GHeroWithFragmentsDuplicationVars); + break; + case 'operation': + result.operation = serializers.deserialize(value, + specifiedType: const FullType(_i1.Operation))! as _i1.Operation; + break; + } + } + + return result.build(); + } +} + +class _$GHeroWithFragmentsDuplication extends GHeroWithFragmentsDuplication { + @override + final _i3.GHeroWithFragmentsDuplicationVars vars; + @override + final _i1.Operation operation; + + factory _$GHeroWithFragmentsDuplication( + [void Function(GHeroWithFragmentsDuplicationBuilder)? updates]) => + (new GHeroWithFragmentsDuplicationBuilder()..update(updates))._build(); + + _$GHeroWithFragmentsDuplication._( + {required this.vars, required this.operation}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + vars, r'GHeroWithFragmentsDuplication', 'vars'); + BuiltValueNullFieldError.checkNotNull( + operation, r'GHeroWithFragmentsDuplication', 'operation'); + } + + @override + GHeroWithFragmentsDuplication rebuild( + void Function(GHeroWithFragmentsDuplicationBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroWithFragmentsDuplicationBuilder toBuilder() => + new GHeroWithFragmentsDuplicationBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroWithFragmentsDuplication && + vars == other.vars && + operation == other.operation; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, vars.hashCode); + _$hash = $jc(_$hash, operation.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroWithFragmentsDuplication') + ..add('vars', vars) + ..add('operation', operation)) + .toString(); + } +} + +class GHeroWithFragmentsDuplicationBuilder + implements + Builder { + _$GHeroWithFragmentsDuplication? _$v; + + _i3.GHeroWithFragmentsDuplicationVarsBuilder? _vars; + _i3.GHeroWithFragmentsDuplicationVarsBuilder get vars => + _$this._vars ??= new _i3.GHeroWithFragmentsDuplicationVarsBuilder(); + set vars(_i3.GHeroWithFragmentsDuplicationVarsBuilder? vars) => + _$this._vars = vars; + + _i1.Operation? _operation; + _i1.Operation? get operation => _$this._operation; + set operation(_i1.Operation? operation) => _$this._operation = operation; + + GHeroWithFragmentsDuplicationBuilder() { + GHeroWithFragmentsDuplication._initializeBuilder(this); + } + + GHeroWithFragmentsDuplicationBuilder get _$this { + final $v = _$v; + if ($v != null) { + _vars = $v.vars.toBuilder(); + _operation = $v.operation; + _$v = null; + } + return this; + } + + @override + void replace(GHeroWithFragmentsDuplication other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroWithFragmentsDuplication; + } + + @override + void update(void Function(GHeroWithFragmentsDuplicationBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroWithFragmentsDuplication build() => _build(); + + _$GHeroWithFragmentsDuplication _build() { + _$GHeroWithFragmentsDuplication _$result; + try { + _$result = _$v ?? + new _$GHeroWithFragmentsDuplication._( + vars: vars.build(), + operation: BuiltValueNullFieldError.checkNotNull( + operation, r'GHeroWithFragmentsDuplication', 'operation')); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'vars'; + vars.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroWithFragmentsDuplication', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test/lib/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.var.gql.dart b/codegen/end_to_end_test/lib/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.var.gql.dart new file mode 100644 index 00000000..3b1d547e --- /dev/null +++ b/codegen/end_to_end_test/lib/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.var.gql.dart @@ -0,0 +1,62 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test/graphql/__generated__/serializers.gql.dart' + as _i1; + +part 'hero_with_duplicated_fields_due_to_fragments.var.gql.g.dart'; + +abstract class GHeroWithFragmentsDuplicationVars + implements + Built { + GHeroWithFragmentsDuplicationVars._(); + + factory GHeroWithFragmentsDuplicationVars( + [void Function(GHeroWithFragmentsDuplicationVarsBuilder b) updates]) = + _$GHeroWithFragmentsDuplicationVars; + + static Serializer get serializer => + _$gHeroWithFragmentsDuplicationVarsSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroWithFragmentsDuplicationVars.serializer, + this, + ) as Map); + + static GHeroWithFragmentsDuplicationVars? fromJson( + Map json) => + _i1.serializers.deserializeWith( + GHeroWithFragmentsDuplicationVars.serializer, + json, + ); +} + +abstract class GHeroWithFragmentsDuplicationFragmentVars + implements + Built { + GHeroWithFragmentsDuplicationFragmentVars._(); + + factory GHeroWithFragmentsDuplicationFragmentVars( + [void Function(GHeroWithFragmentsDuplicationFragmentVarsBuilder b) + updates]) = _$GHeroWithFragmentsDuplicationFragmentVars; + + static Serializer get serializer => + _$gHeroWithFragmentsDuplicationFragmentVarsSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroWithFragmentsDuplicationFragmentVars.serializer, + this, + ) as Map); + + static GHeroWithFragmentsDuplicationFragmentVars? fromJson( + Map json) => + _i1.serializers.deserializeWith( + GHeroWithFragmentsDuplicationFragmentVars.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test/lib/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.var.gql.g.dart b/codegen/end_to_end_test/lib/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.var.gql.g.dart new file mode 100644 index 00000000..42f12c75 --- /dev/null +++ b/codegen/end_to_end_test/lib/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.var.gql.g.dart @@ -0,0 +1,202 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_with_duplicated_fields_due_to_fragments.var.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer + _$gHeroWithFragmentsDuplicationVarsSerializer = + new _$GHeroWithFragmentsDuplicationVarsSerializer(); +Serializer + _$gHeroWithFragmentsDuplicationFragmentVarsSerializer = + new _$GHeroWithFragmentsDuplicationFragmentVarsSerializer(); + +class _$GHeroWithFragmentsDuplicationVarsSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroWithFragmentsDuplicationVars, + _$GHeroWithFragmentsDuplicationVars + ]; + @override + final String wireName = 'GHeroWithFragmentsDuplicationVars'; + + @override + Iterable serialize( + Serializers serializers, GHeroWithFragmentsDuplicationVars object, + {FullType specifiedType = FullType.unspecified}) { + return []; + } + + @override + GHeroWithFragmentsDuplicationVars deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + return new GHeroWithFragmentsDuplicationVarsBuilder().build(); + } +} + +class _$GHeroWithFragmentsDuplicationFragmentVarsSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroWithFragmentsDuplicationFragmentVars, + _$GHeroWithFragmentsDuplicationFragmentVars + ]; + @override + final String wireName = 'GHeroWithFragmentsDuplicationFragmentVars'; + + @override + Iterable serialize( + Serializers serializers, GHeroWithFragmentsDuplicationFragmentVars object, + {FullType specifiedType = FullType.unspecified}) { + return []; + } + + @override + GHeroWithFragmentsDuplicationFragmentVars deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + return new GHeroWithFragmentsDuplicationFragmentVarsBuilder().build(); + } +} + +class _$GHeroWithFragmentsDuplicationVars + extends GHeroWithFragmentsDuplicationVars { + factory _$GHeroWithFragmentsDuplicationVars( + [void Function(GHeroWithFragmentsDuplicationVarsBuilder)? updates]) => + (new GHeroWithFragmentsDuplicationVarsBuilder()..update(updates)) + ._build(); + + _$GHeroWithFragmentsDuplicationVars._() : super._(); + + @override + GHeroWithFragmentsDuplicationVars rebuild( + void Function(GHeroWithFragmentsDuplicationVarsBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroWithFragmentsDuplicationVarsBuilder toBuilder() => + new GHeroWithFragmentsDuplicationVarsBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroWithFragmentsDuplicationVars; + } + + @override + int get hashCode { + return 296781944; + } + + @override + String toString() { + return newBuiltValueToStringHelper(r'GHeroWithFragmentsDuplicationVars') + .toString(); + } +} + +class GHeroWithFragmentsDuplicationVarsBuilder + implements + Builder { + _$GHeroWithFragmentsDuplicationVars? _$v; + + GHeroWithFragmentsDuplicationVarsBuilder(); + + @override + void replace(GHeroWithFragmentsDuplicationVars other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroWithFragmentsDuplicationVars; + } + + @override + void update( + void Function(GHeroWithFragmentsDuplicationVarsBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroWithFragmentsDuplicationVars build() => _build(); + + _$GHeroWithFragmentsDuplicationVars _build() { + final _$result = _$v ?? new _$GHeroWithFragmentsDuplicationVars._(); + replace(_$result); + return _$result; + } +} + +class _$GHeroWithFragmentsDuplicationFragmentVars + extends GHeroWithFragmentsDuplicationFragmentVars { + factory _$GHeroWithFragmentsDuplicationFragmentVars( + [void Function(GHeroWithFragmentsDuplicationFragmentVarsBuilder)? + updates]) => + (new GHeroWithFragmentsDuplicationFragmentVarsBuilder()..update(updates)) + ._build(); + + _$GHeroWithFragmentsDuplicationFragmentVars._() : super._(); + + @override + GHeroWithFragmentsDuplicationFragmentVars rebuild( + void Function(GHeroWithFragmentsDuplicationFragmentVarsBuilder) + updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroWithFragmentsDuplicationFragmentVarsBuilder toBuilder() => + new GHeroWithFragmentsDuplicationFragmentVarsBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroWithFragmentsDuplicationFragmentVars; + } + + @override + int get hashCode { + return 40544497; + } + + @override + String toString() { + return newBuiltValueToStringHelper( + r'GHeroWithFragmentsDuplicationFragmentVars') + .toString(); + } +} + +class GHeroWithFragmentsDuplicationFragmentVarsBuilder + implements + Builder { + _$GHeroWithFragmentsDuplicationFragmentVars? _$v; + + GHeroWithFragmentsDuplicationFragmentVarsBuilder(); + + @override + void replace(GHeroWithFragmentsDuplicationFragmentVars other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroWithFragmentsDuplicationFragmentVars; + } + + @override + void update( + void Function(GHeroWithFragmentsDuplicationFragmentVarsBuilder)? + updates) { + if (updates != null) updates(this); + } + + @override + GHeroWithFragmentsDuplicationFragmentVars build() => _build(); + + _$GHeroWithFragmentsDuplicationFragmentVars _build() { + final _$result = _$v ?? new _$GHeroWithFragmentsDuplicationFragmentVars._(); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test/lib/fragments/hero_inline_fragment.graphql b/codegen/end_to_end_test/lib/fragments/hero_inline_fragment.graphql new file mode 100644 index 00000000..baf248c9 --- /dev/null +++ b/codegen/end_to_end_test/lib/fragments/hero_inline_fragment.graphql @@ -0,0 +1,10 @@ +query HeroWithInlineFragments($skipName: Boolean!) { + hero(episode: JEDI) { + ... { + id + } + ... @skip(if: $skipName) { + name + } + } +} diff --git a/codegen/end_to_end_test/lib/fragments/hero_with_duplicated_fields_due_to_fragments.graphql b/codegen/end_to_end_test/lib/fragments/hero_with_duplicated_fields_due_to_fragments.graphql new file mode 100644 index 00000000..df8a9a76 --- /dev/null +++ b/codegen/end_to_end_test/lib/fragments/hero_with_duplicated_fields_due_to_fragments.graphql @@ -0,0 +1,12 @@ +query HeroWithFragmentsDuplication { + hero(episode: JEDI) { + id + ...HeroWithFragmentsDuplicationFragment + } +} + +fragment HeroWithFragmentsDuplicationFragment on Character { + id + name +} + diff --git a/codegen/end_to_end_test/lib/graphql/__generated__/serializers.gql.dart b/codegen/end_to_end_test/lib/graphql/__generated__/serializers.gql.dart index 49b68ce0..a591b6f6 100644 --- a/codegen/end_to_end_test/lib/graphql/__generated__/serializers.gql.dart +++ b/codegen/end_to_end_test/lib/graphql/__generated__/serializers.gql.dart @@ -27,6 +27,29 @@ import 'package:end_to_end_test/custom_field.dart'; import 'package:end_to_end_test/custom_field_serializer.dart' show CustomFieldSerializer; import 'package:end_to_end_test/date_serializer.dart' show DateSerializer; +import 'package:end_to_end_test/directives/__generated__/hero_include.data.gql.dart' + show GHeroIncludeData, GHeroIncludeData_hero; +import 'package:end_to_end_test/directives/__generated__/hero_include.req.gql.dart' + show GHeroInclude; +import 'package:end_to_end_test/directives/__generated__/hero_include.var.gql.dart' + show GHeroIncludeVars; +import 'package:end_to_end_test/directives/__generated__/hero_skip.data.gql.dart' + show GHeroSkipData, GHeroSkipData_hero; +import 'package:end_to_end_test/directives/__generated__/hero_skip.req.gql.dart' + show GHeroSkip; +import 'package:end_to_end_test/directives/__generated__/hero_skip.var.gql.dart' + show GHeroSkipVars; +import 'package:end_to_end_test/directives/__generated__/hero_skip_fragment.data.gql.dart' + show + GHeroDetailData, + GHeroDetailData_friends, + GHeroSkipFragmentData, + GHeroSkipFragmentData_hero, + GHeroSkipFragmentData_hero_friends; +import 'package:end_to_end_test/directives/__generated__/hero_skip_fragment.req.gql.dart' + show GHeroSkipFragment; +import 'package:end_to_end_test/directives/__generated__/hero_skip_fragment.var.gql.dart' + show GHeroDetailVars, GHeroSkipFragmentVars; import 'package:end_to_end_test/fragments/__generated__/fragment_with_scalar_var.data.gql.dart' show GPostFragmentForUser1Data, @@ -38,6 +61,26 @@ import 'package:end_to_end_test/fragments/__generated__/fragment_with_scalar_var show GPostsWithFixedVariable; import 'package:end_to_end_test/fragments/__generated__/fragment_with_scalar_var.var.gql.dart' show GPostFragmentForUser1Vars, GPostsWithFixedVariableVars; +import 'package:end_to_end_test/fragments/__generated__/hero_inline_fragment.data.gql.dart' + show + GHeroWithInlineFragmentsData_hero, + GHeroWithInlineFragmentsData, + GHeroWithInlineFragmentsData_hero__base; +import 'package:end_to_end_test/fragments/__generated__/hero_inline_fragment.req.gql.dart' + show GHeroWithInlineFragments; +import 'package:end_to_end_test/fragments/__generated__/hero_inline_fragment.var.gql.dart' + show GHeroWithInlineFragmentsVars; +import 'package:end_to_end_test/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.data.gql.dart' + show + GHeroWithFragmentsDuplicationData, + GHeroWithFragmentsDuplicationData_hero, + GHeroWithFragmentsDuplicationFragmentData; +import 'package:end_to_end_test/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.req.gql.dart' + show GHeroWithFragmentsDuplication; +import 'package:end_to_end_test/fragments/__generated__/hero_with_duplicated_fields_due_to_fragments.var.gql.dart' + show + GHeroWithFragmentsDuplicationFragmentVars, + GHeroWithFragmentsDuplicationVars; import 'package:end_to_end_test/fragments/__generated__/hero_with_fragments.data.gql.dart' show GHeroWithFragmentsData, @@ -114,6 +157,18 @@ import 'package:end_to_end_test/interfaces/__generated__/hero_for_episode.req.gq show GHeroForEpisode; import 'package:end_to_end_test/interfaces/__generated__/hero_for_episode.var.gql.dart' show GDroidFragmentVars, GHeroForEpisodeVars; +import 'package:end_to_end_test/merge/__generated__/merge_selection_sets.graphql.data.gql.dart' + show GHeroMergeData, GHeroMergeData_hero; +import 'package:end_to_end_test/merge/__generated__/merge_selection_sets.graphql.req.gql.dart' + show GHeroMerge; +import 'package:end_to_end_test/merge/__generated__/merge_selection_sets.graphql.var.gql.dart' + show GHeroMergeVars; +import 'package:end_to_end_test/merge/__generated__/merge_selection_sets.graphql_skip.data.gql.dart' + show GHeroMergeSkipData, GHeroMergeSkipData_hero; +import 'package:end_to_end_test/merge/__generated__/merge_selection_sets.graphql_skip.req.gql.dart' + show GHeroMergeSkip; +import 'package:end_to_end_test/merge/__generated__/merge_selection_sets.graphql_skip.var.gql.dart' + show GHeroMergeSkipVars; import 'package:end_to_end_test/no_vars/__generated__/hero_no_vars.data.gql.dart' show GHeroNoVarsData, GHeroNoVarsData_hero; import 'package:end_to_end_test/no_vars/__generated__/hero_no_vars.req.gql.dart' @@ -154,6 +209,7 @@ final SerializersBuilder _serializersBuilder = _$serializers.toBuilder() ..add(DateSerializer()) ..add(CustomFieldSerializer()) ..add(GHeroForEpisodeData_hero.serializer) + ..add(GHeroWithInlineFragmentsData_hero.serializer) ..add(GheroFieldsFragmentData.serializer) ..add(GheroFieldsFragmentData__asHuman_friends.serializer) ..add(GhumanFieldsFragmentData_friends.serializer) @@ -176,6 +232,9 @@ final SerializersBuilder _serializersBuilder = _$serializers.toBuilder() GDroidFragmentData, GDroidFragmentVars, GEpisode, + GHeroDetailData, + GHeroDetailData_friends, + GHeroDetailVars, GHeroForEpisode, GHeroForEpisodeData, GHeroForEpisodeData_hero__asDroid, @@ -183,10 +242,31 @@ final SerializersBuilder _serializersBuilder = _$serializers.toBuilder() GHeroForEpisodeData_hero__base, GHeroForEpisodeData_hero__base_friends, GHeroForEpisodeVars, + GHeroInclude, + GHeroIncludeData, + GHeroIncludeData_hero, + GHeroIncludeVars, + GHeroMerge, + GHeroMergeData, + GHeroMergeData_hero, + GHeroMergeSkip, + GHeroMergeSkipData, + GHeroMergeSkipData_hero, + GHeroMergeSkipVars, + GHeroMergeVars, GHeroNoVars, GHeroNoVarsData, GHeroNoVarsData_hero, GHeroNoVarsVars, + GHeroSkip, + GHeroSkipData, + GHeroSkipData_hero, + GHeroSkipFragment, + GHeroSkipFragmentData, + GHeroSkipFragmentData_hero, + GHeroSkipFragmentData_hero_friends, + GHeroSkipFragmentVars, + GHeroSkipVars, GHeroWith2Fragments, GHeroWith2FragmentsData, GHeroWith2FragmentsData_hero, @@ -197,7 +277,17 @@ final SerializersBuilder _serializersBuilder = _$serializers.toBuilder() GHeroWithFragmentsData_hero_friendsConnection, GHeroWithFragmentsData_hero_friendsConnection_edges, GHeroWithFragmentsData_hero_friendsConnection_edges_node, + GHeroWithFragmentsDuplication, + GHeroWithFragmentsDuplicationData, + GHeroWithFragmentsDuplicationData_hero, + GHeroWithFragmentsDuplicationFragmentData, + GHeroWithFragmentsDuplicationFragmentVars, + GHeroWithFragmentsDuplicationVars, GHeroWithFragmentsVars, + GHeroWithInlineFragments, + GHeroWithInlineFragmentsData, + GHeroWithInlineFragmentsData_hero__base, + GHeroWithInlineFragmentsVars, GHeroWithInterfaceSubTypedFragments, GHeroWithInterfaceSubTypedFragmentsData, GHeroWithInterfaceSubTypedFragmentsData_hero, diff --git a/codegen/end_to_end_test/lib/graphql/__generated__/serializers.gql.g.dart b/codegen/end_to_end_test/lib/graphql/__generated__/serializers.gql.g.dart index 6e8208e2..d10eae03 100644 --- a/codegen/end_to_end_test/lib/graphql/__generated__/serializers.gql.g.dart +++ b/codegen/end_to_end_test/lib/graphql/__generated__/serializers.gql.g.dart @@ -24,6 +24,9 @@ Serializers _$serializers = (new Serializers().toBuilder() ..add(GDroidFragmentData.serializer) ..add(GDroidFragmentVars.serializer) ..add(GEpisode.serializer) + ..add(GHeroDetailData.serializer) + ..add(GHeroDetailData_friends.serializer) + ..add(GHeroDetailVars.serializer) ..add(GHeroForEpisode.serializer) ..add(GHeroForEpisodeData.serializer) ..add(GHeroForEpisodeData_hero__asDroid.serializer) @@ -31,10 +34,31 @@ Serializers _$serializers = (new Serializers().toBuilder() ..add(GHeroForEpisodeData_hero__base.serializer) ..add(GHeroForEpisodeData_hero__base_friends.serializer) ..add(GHeroForEpisodeVars.serializer) + ..add(GHeroInclude.serializer) + ..add(GHeroIncludeData.serializer) + ..add(GHeroIncludeData_hero.serializer) + ..add(GHeroIncludeVars.serializer) + ..add(GHeroMerge.serializer) + ..add(GHeroMergeData.serializer) + ..add(GHeroMergeData_hero.serializer) + ..add(GHeroMergeSkip.serializer) + ..add(GHeroMergeSkipData.serializer) + ..add(GHeroMergeSkipData_hero.serializer) + ..add(GHeroMergeSkipVars.serializer) + ..add(GHeroMergeVars.serializer) ..add(GHeroNoVars.serializer) ..add(GHeroNoVarsData.serializer) ..add(GHeroNoVarsData_hero.serializer) ..add(GHeroNoVarsVars.serializer) + ..add(GHeroSkip.serializer) + ..add(GHeroSkipData.serializer) + ..add(GHeroSkipData_hero.serializer) + ..add(GHeroSkipFragment.serializer) + ..add(GHeroSkipFragmentData.serializer) + ..add(GHeroSkipFragmentData_hero.serializer) + ..add(GHeroSkipFragmentData_hero_friends.serializer) + ..add(GHeroSkipFragmentVars.serializer) + ..add(GHeroSkipVars.serializer) ..add(GHeroWith2Fragments.serializer) ..add(GHeroWith2FragmentsData.serializer) ..add(GHeroWith2FragmentsData_hero.serializer) @@ -45,7 +69,17 @@ Serializers _$serializers = (new Serializers().toBuilder() ..add(GHeroWithFragmentsData_hero_friendsConnection.serializer) ..add(GHeroWithFragmentsData_hero_friendsConnection_edges.serializer) ..add(GHeroWithFragmentsData_hero_friendsConnection_edges_node.serializer) + ..add(GHeroWithFragmentsDuplication.serializer) + ..add(GHeroWithFragmentsDuplicationData.serializer) + ..add(GHeroWithFragmentsDuplicationData_hero.serializer) + ..add(GHeroWithFragmentsDuplicationFragmentData.serializer) + ..add(GHeroWithFragmentsDuplicationFragmentVars.serializer) + ..add(GHeroWithFragmentsDuplicationVars.serializer) ..add(GHeroWithFragmentsVars.serializer) + ..add(GHeroWithInlineFragments.serializer) + ..add(GHeroWithInlineFragmentsData.serializer) + ..add(GHeroWithInlineFragmentsData_hero__base.serializer) + ..add(GHeroWithInlineFragmentsVars.serializer) ..add(GHeroWithInterfaceSubTypedFragments.serializer) ..add(GHeroWithInterfaceSubTypedFragmentsData.serializer) ..add(GHeroWithInterfaceSubTypedFragmentsData_hero.serializer) @@ -122,6 +156,10 @@ Serializers _$serializers = (new Serializers().toBuilder() ..addBuilderFactory( const FullType(BuiltList, const [const FullType.nullable(GEpisode)]), () => new ListBuilder()) + ..addBuilderFactory( + const FullType(BuiltList, + const [const FullType.nullable(GHeroDetailData_friends)]), + () => new ListBuilder()) ..addBuilderFactory( const FullType(BuiltList, const [ const FullType.nullable(GHeroForEpisodeData_hero__asDroid_friends) @@ -132,6 +170,11 @@ Serializers _$serializers = (new Serializers().toBuilder() const FullType.nullable(GHeroForEpisodeData_hero__base_friends) ]), () => new ListBuilder()) + ..addBuilderFactory( + const FullType(BuiltList, const [ + const FullType.nullable(GHeroSkipFragmentData_hero_friends) + ]), + () => new ListBuilder()) ..addBuilderFactory( const FullType(BuiltList, const [ const FullType.nullable( diff --git a/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql.ast.gql.dart b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql.ast.gql.dart new file mode 100644 index 00000000..f6ca6ddf --- /dev/null +++ b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql.ast.gql.dart @@ -0,0 +1,45 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:gql/ast.dart' as _i1; + +const HeroMerge = _i1.OperationDefinitionNode( + type: _i1.OperationType.query, + name: _i1.NameNode(value: 'HeroMerge'), + variableDefinitions: [], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'hero'), + alias: null, + arguments: [], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'id'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ) + ]), + ), + _i1.FieldNode( + name: _i1.NameNode(value: 'hero'), + alias: null, + arguments: [], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'name'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ) + ]), + ), + ]), +); +const document = _i1.DocumentNode(definitions: [HeroMerge]); diff --git a/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql.data.gql.dart b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql.data.gql.dart new file mode 100644 index 00000000..ed01225b --- /dev/null +++ b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql.data.gql.dart @@ -0,0 +1,68 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test/graphql/__generated__/serializers.gql.dart' + as _i1; + +part 'merge_selection_sets.graphql.data.gql.g.dart'; + +abstract class GHeroMergeData + implements Built { + GHeroMergeData._(); + + factory GHeroMergeData([void Function(GHeroMergeDataBuilder b) updates]) = + _$GHeroMergeData; + + static void _initializeBuilder(GHeroMergeDataBuilder b) => + b..G__typename = 'Query'; + + @BuiltValueField(wireName: '__typename') + String get G__typename; + GHeroMergeData_hero? get hero; + static Serializer get serializer => + _$gHeroMergeDataSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroMergeData.serializer, + this, + ) as Map); + + static GHeroMergeData? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroMergeData.serializer, + json, + ); +} + +abstract class GHeroMergeData_hero + implements Built { + GHeroMergeData_hero._(); + + factory GHeroMergeData_hero( + [void Function(GHeroMergeData_heroBuilder b) updates]) = + _$GHeroMergeData_hero; + + static void _initializeBuilder(GHeroMergeData_heroBuilder b) => + b..G__typename = 'Character'; + + @BuiltValueField(wireName: '__typename') + String get G__typename; + String get id; + String get name; + static Serializer get serializer => + _$gHeroMergeDataHeroSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroMergeData_hero.serializer, + this, + ) as Map); + + static GHeroMergeData_hero? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroMergeData_hero.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql.data.gql.g.dart b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql.data.gql.g.dart new file mode 100644 index 00000000..d96e8189 --- /dev/null +++ b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql.data.gql.g.dart @@ -0,0 +1,357 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'merge_selection_sets.graphql.data.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$gHeroMergeDataSerializer = + new _$GHeroMergeDataSerializer(); +Serializer _$gHeroMergeDataHeroSerializer = + new _$GHeroMergeData_heroSerializer(); + +class _$GHeroMergeDataSerializer + implements StructuredSerializer { + @override + final Iterable types = const [GHeroMergeData, _$GHeroMergeData]; + @override + final String wireName = 'GHeroMergeData'; + + @override + Iterable serialize(Serializers serializers, GHeroMergeData object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + ]; + Object? value; + value = object.hero; + if (value != null) { + result + ..add('hero') + ..add(serializers.serialize(value, + specifiedType: const FullType(GHeroMergeData_hero))); + } + return result; + } + + @override + GHeroMergeData deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroMergeDataBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'hero': + result.hero.replace(serializers.deserialize(value, + specifiedType: const FullType(GHeroMergeData_hero))! + as GHeroMergeData_hero); + break; + } + } + + return result.build(); + } +} + +class _$GHeroMergeData_heroSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroMergeData_hero, + _$GHeroMergeData_hero + ]; + @override + final String wireName = 'GHeroMergeData_hero'; + + @override + Iterable serialize( + Serializers serializers, GHeroMergeData_hero object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + 'id', + serializers.serialize(object.id, specifiedType: const FullType(String)), + 'name', + serializers.serialize(object.name, specifiedType: const FullType(String)), + ]; + + return result; + } + + @override + GHeroMergeData_hero deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroMergeData_heroBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'name': + result.name = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + } + } + + return result.build(); + } +} + +class _$GHeroMergeData extends GHeroMergeData { + @override + final String G__typename; + @override + final GHeroMergeData_hero? hero; + + factory _$GHeroMergeData([void Function(GHeroMergeDataBuilder)? updates]) => + (new GHeroMergeDataBuilder()..update(updates))._build(); + + _$GHeroMergeData._({required this.G__typename, this.hero}) : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroMergeData', 'G__typename'); + } + + @override + GHeroMergeData rebuild(void Function(GHeroMergeDataBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroMergeDataBuilder toBuilder() => + new GHeroMergeDataBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroMergeData && + G__typename == other.G__typename && + hero == other.hero; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, hero.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroMergeData') + ..add('G__typename', G__typename) + ..add('hero', hero)) + .toString(); + } +} + +class GHeroMergeDataBuilder + implements Builder { + _$GHeroMergeData? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + GHeroMergeData_heroBuilder? _hero; + GHeroMergeData_heroBuilder get hero => + _$this._hero ??= new GHeroMergeData_heroBuilder(); + set hero(GHeroMergeData_heroBuilder? hero) => _$this._hero = hero; + + GHeroMergeDataBuilder() { + GHeroMergeData._initializeBuilder(this); + } + + GHeroMergeDataBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _hero = $v.hero?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(GHeroMergeData other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroMergeData; + } + + @override + void update(void Function(GHeroMergeDataBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroMergeData build() => _build(); + + _$GHeroMergeData _build() { + _$GHeroMergeData _$result; + try { + _$result = _$v ?? + new _$GHeroMergeData._( + G__typename: BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroMergeData', 'G__typename'), + hero: _hero?.build()); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'hero'; + _hero?.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroMergeData', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$GHeroMergeData_hero extends GHeroMergeData_hero { + @override + final String G__typename; + @override + final String id; + @override + final String name; + + factory _$GHeroMergeData_hero( + [void Function(GHeroMergeData_heroBuilder)? updates]) => + (new GHeroMergeData_heroBuilder()..update(updates))._build(); + + _$GHeroMergeData_hero._( + {required this.G__typename, required this.id, required this.name}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroMergeData_hero', 'G__typename'); + BuiltValueNullFieldError.checkNotNull(id, r'GHeroMergeData_hero', 'id'); + BuiltValueNullFieldError.checkNotNull(name, r'GHeroMergeData_hero', 'name'); + } + + @override + GHeroMergeData_hero rebuild( + void Function(GHeroMergeData_heroBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroMergeData_heroBuilder toBuilder() => + new GHeroMergeData_heroBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroMergeData_hero && + G__typename == other.G__typename && + id == other.id && + name == other.name; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, id.hashCode); + _$hash = $jc(_$hash, name.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroMergeData_hero') + ..add('G__typename', G__typename) + ..add('id', id) + ..add('name', name)) + .toString(); + } +} + +class GHeroMergeData_heroBuilder + implements Builder { + _$GHeroMergeData_hero? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + String? _id; + String? get id => _$this._id; + set id(String? id) => _$this._id = id; + + String? _name; + String? get name => _$this._name; + set name(String? name) => _$this._name = name; + + GHeroMergeData_heroBuilder() { + GHeroMergeData_hero._initializeBuilder(this); + } + + GHeroMergeData_heroBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _id = $v.id; + _name = $v.name; + _$v = null; + } + return this; + } + + @override + void replace(GHeroMergeData_hero other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroMergeData_hero; + } + + @override + void update(void Function(GHeroMergeData_heroBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroMergeData_hero build() => _build(); + + _$GHeroMergeData_hero _build() { + final _$result = _$v ?? + new _$GHeroMergeData_hero._( + G__typename: BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroMergeData_hero', 'G__typename'), + id: BuiltValueNullFieldError.checkNotNull( + id, r'GHeroMergeData_hero', 'id'), + name: BuiltValueNullFieldError.checkNotNull( + name, r'GHeroMergeData_hero', 'name')); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql.req.gql.dart b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql.req.gql.dart new file mode 100644 index 00000000..a036cd1e --- /dev/null +++ b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql.req.gql.dart @@ -0,0 +1,43 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test/graphql/__generated__/serializers.gql.dart' + as _i4; +import 'package:end_to_end_test/merge/__generated__/merge_selection_sets.graphql.ast.gql.dart' + as _i2; +import 'package:end_to_end_test/merge/__generated__/merge_selection_sets.graphql.var.gql.dart' + as _i3; +import 'package:gql_exec/gql_exec.dart' as _i1; + +part 'merge_selection_sets.graphql.req.gql.g.dart'; + +abstract class GHeroMerge implements Built { + GHeroMerge._(); + + factory GHeroMerge([void Function(GHeroMergeBuilder b) updates]) = + _$GHeroMerge; + + static void _initializeBuilder(GHeroMergeBuilder b) => b + ..operation = _i1.Operation( + document: _i2.document, + operationName: 'HeroMerge', + ); + + _i3.GHeroMergeVars get vars; + _i1.Operation get operation; + static Serializer get serializer => _$gHeroMergeSerializer; + + Map toJson() => (_i4.serializers.serializeWith( + GHeroMerge.serializer, + this, + ) as Map); + + static GHeroMerge? fromJson(Map json) => + _i4.serializers.deserializeWith( + GHeroMerge.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql.req.gql.g.dart b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql.req.gql.g.dart new file mode 100644 index 00000000..0a0da81f --- /dev/null +++ b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql.req.gql.g.dart @@ -0,0 +1,171 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'merge_selection_sets.graphql.req.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$gHeroMergeSerializer = new _$GHeroMergeSerializer(); + +class _$GHeroMergeSerializer implements StructuredSerializer { + @override + final Iterable types = const [GHeroMerge, _$GHeroMerge]; + @override + final String wireName = 'GHeroMerge'; + + @override + Iterable serialize(Serializers serializers, GHeroMerge object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + 'vars', + serializers.serialize(object.vars, + specifiedType: const FullType(_i3.GHeroMergeVars)), + 'operation', + serializers.serialize(object.operation, + specifiedType: const FullType(_i1.Operation)), + ]; + + return result; + } + + @override + GHeroMerge deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroMergeBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'vars': + result.vars.replace(serializers.deserialize(value, + specifiedType: const FullType(_i3.GHeroMergeVars))! + as _i3.GHeroMergeVars); + break; + case 'operation': + result.operation = serializers.deserialize(value, + specifiedType: const FullType(_i1.Operation))! as _i1.Operation; + break; + } + } + + return result.build(); + } +} + +class _$GHeroMerge extends GHeroMerge { + @override + final _i3.GHeroMergeVars vars; + @override + final _i1.Operation operation; + + factory _$GHeroMerge([void Function(GHeroMergeBuilder)? updates]) => + (new GHeroMergeBuilder()..update(updates))._build(); + + _$GHeroMerge._({required this.vars, required this.operation}) : super._() { + BuiltValueNullFieldError.checkNotNull(vars, r'GHeroMerge', 'vars'); + BuiltValueNullFieldError.checkNotNull( + operation, r'GHeroMerge', 'operation'); + } + + @override + GHeroMerge rebuild(void Function(GHeroMergeBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroMergeBuilder toBuilder() => new GHeroMergeBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroMerge && + vars == other.vars && + operation == other.operation; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, vars.hashCode); + _$hash = $jc(_$hash, operation.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroMerge') + ..add('vars', vars) + ..add('operation', operation)) + .toString(); + } +} + +class GHeroMergeBuilder implements Builder { + _$GHeroMerge? _$v; + + _i3.GHeroMergeVarsBuilder? _vars; + _i3.GHeroMergeVarsBuilder get vars => + _$this._vars ??= new _i3.GHeroMergeVarsBuilder(); + set vars(_i3.GHeroMergeVarsBuilder? vars) => _$this._vars = vars; + + _i1.Operation? _operation; + _i1.Operation? get operation => _$this._operation; + set operation(_i1.Operation? operation) => _$this._operation = operation; + + GHeroMergeBuilder() { + GHeroMerge._initializeBuilder(this); + } + + GHeroMergeBuilder get _$this { + final $v = _$v; + if ($v != null) { + _vars = $v.vars.toBuilder(); + _operation = $v.operation; + _$v = null; + } + return this; + } + + @override + void replace(GHeroMerge other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroMerge; + } + + @override + void update(void Function(GHeroMergeBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroMerge build() => _build(); + + _$GHeroMerge _build() { + _$GHeroMerge _$result; + try { + _$result = _$v ?? + new _$GHeroMerge._( + vars: vars.build(), + operation: BuiltValueNullFieldError.checkNotNull( + operation, r'GHeroMerge', 'operation')); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'vars'; + vars.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroMerge', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql.var.gql.dart b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql.var.gql.dart new file mode 100644 index 00000000..eb6c05b0 --- /dev/null +++ b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql.var.gql.dart @@ -0,0 +1,32 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test/graphql/__generated__/serializers.gql.dart' + as _i1; + +part 'merge_selection_sets.graphql.var.gql.g.dart'; + +abstract class GHeroMergeVars + implements Built { + GHeroMergeVars._(); + + factory GHeroMergeVars([void Function(GHeroMergeVarsBuilder b) updates]) = + _$GHeroMergeVars; + + static Serializer get serializer => + _$gHeroMergeVarsSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroMergeVars.serializer, + this, + ) as Map); + + static GHeroMergeVars? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroMergeVars.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql.var.gql.g.dart b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql.var.gql.g.dart new file mode 100644 index 00000000..043d62ae --- /dev/null +++ b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql.var.gql.g.dart @@ -0,0 +1,91 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'merge_selection_sets.graphql.var.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$gHeroMergeVarsSerializer = + new _$GHeroMergeVarsSerializer(); + +class _$GHeroMergeVarsSerializer + implements StructuredSerializer { + @override + final Iterable types = const [GHeroMergeVars, _$GHeroMergeVars]; + @override + final String wireName = 'GHeroMergeVars'; + + @override + Iterable serialize(Serializers serializers, GHeroMergeVars object, + {FullType specifiedType = FullType.unspecified}) { + return []; + } + + @override + GHeroMergeVars deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + return new GHeroMergeVarsBuilder().build(); + } +} + +class _$GHeroMergeVars extends GHeroMergeVars { + factory _$GHeroMergeVars([void Function(GHeroMergeVarsBuilder)? updates]) => + (new GHeroMergeVarsBuilder()..update(updates))._build(); + + _$GHeroMergeVars._() : super._(); + + @override + GHeroMergeVars rebuild(void Function(GHeroMergeVarsBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroMergeVarsBuilder toBuilder() => + new GHeroMergeVarsBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroMergeVars; + } + + @override + int get hashCode { + return 224841185; + } + + @override + String toString() { + return newBuiltValueToStringHelper(r'GHeroMergeVars').toString(); + } +} + +class GHeroMergeVarsBuilder + implements Builder { + _$GHeroMergeVars? _$v; + + GHeroMergeVarsBuilder(); + + @override + void replace(GHeroMergeVars other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroMergeVars; + } + + @override + void update(void Function(GHeroMergeVarsBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroMergeVars build() => _build(); + + _$GHeroMergeVars _build() { + final _$result = _$v ?? new _$GHeroMergeVars._(); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql_skip.ast.gql.dart b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql_skip.ast.gql.dart new file mode 100644 index 00000000..bb3e5fc0 --- /dev/null +++ b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql_skip.ast.gql.dart @@ -0,0 +1,65 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:gql/ast.dart' as _i1; + +const HeroMergeSkip = _i1.OperationDefinitionNode( + type: _i1.OperationType.query, + name: _i1.NameNode(value: 'HeroMergeSkip'), + variableDefinitions: [ + _i1.VariableDefinitionNode( + variable: _i1.VariableNode(name: _i1.NameNode(value: 'withName')), + type: _i1.NamedTypeNode( + name: _i1.NameNode(value: 'Boolean'), + isNonNull: true, + ), + defaultValue: _i1.DefaultValueNode(value: null), + directives: [], + ) + ], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'hero'), + alias: null, + arguments: [], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'id'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ) + ]), + ), + _i1.FieldNode( + name: _i1.NameNode(value: 'hero'), + alias: null, + arguments: [], + directives: [ + _i1.DirectiveNode( + name: _i1.NameNode(value: 'include'), + arguments: [ + _i1.ArgumentNode( + name: _i1.NameNode(value: 'if'), + value: _i1.VariableNode(name: _i1.NameNode(value: 'withName')), + ) + ], + ) + ], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'name'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ) + ]), + ), + ]), +); +const document = _i1.DocumentNode(definitions: [HeroMergeSkip]); diff --git a/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql_skip.data.gql.dart b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql_skip.data.gql.dart new file mode 100644 index 00000000..ec50756c --- /dev/null +++ b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql_skip.data.gql.dart @@ -0,0 +1,69 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test/graphql/__generated__/serializers.gql.dart' + as _i1; + +part 'merge_selection_sets.graphql_skip.data.gql.g.dart'; + +abstract class GHeroMergeSkipData + implements Built { + GHeroMergeSkipData._(); + + factory GHeroMergeSkipData( + [void Function(GHeroMergeSkipDataBuilder b) updates]) = + _$GHeroMergeSkipData; + + static void _initializeBuilder(GHeroMergeSkipDataBuilder b) => + b..G__typename = 'Query'; + + @BuiltValueField(wireName: '__typename') + String get G__typename; + GHeroMergeSkipData_hero? get hero; + static Serializer get serializer => + _$gHeroMergeSkipDataSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroMergeSkipData.serializer, + this, + ) as Map); + + static GHeroMergeSkipData? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroMergeSkipData.serializer, + json, + ); +} + +abstract class GHeroMergeSkipData_hero + implements Built { + GHeroMergeSkipData_hero._(); + + factory GHeroMergeSkipData_hero( + [void Function(GHeroMergeSkipData_heroBuilder b) updates]) = + _$GHeroMergeSkipData_hero; + + static void _initializeBuilder(GHeroMergeSkipData_heroBuilder b) => + b..G__typename = 'Character'; + + @BuiltValueField(wireName: '__typename') + String get G__typename; + String get id; + String get name; + static Serializer get serializer => + _$gHeroMergeSkipDataHeroSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroMergeSkipData_hero.serializer, + this, + ) as Map); + + static GHeroMergeSkipData_hero? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroMergeSkipData_hero.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql_skip.data.gql.g.dart b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql_skip.data.gql.g.dart new file mode 100644 index 00000000..316d5c5f --- /dev/null +++ b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql_skip.data.gql.g.dart @@ -0,0 +1,362 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'merge_selection_sets.graphql_skip.data.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$gHeroMergeSkipDataSerializer = + new _$GHeroMergeSkipDataSerializer(); +Serializer _$gHeroMergeSkipDataHeroSerializer = + new _$GHeroMergeSkipData_heroSerializer(); + +class _$GHeroMergeSkipDataSerializer + implements StructuredSerializer { + @override + final Iterable types = const [GHeroMergeSkipData, _$GHeroMergeSkipData]; + @override + final String wireName = 'GHeroMergeSkipData'; + + @override + Iterable serialize( + Serializers serializers, GHeroMergeSkipData object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + ]; + Object? value; + value = object.hero; + if (value != null) { + result + ..add('hero') + ..add(serializers.serialize(value, + specifiedType: const FullType(GHeroMergeSkipData_hero))); + } + return result; + } + + @override + GHeroMergeSkipData deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroMergeSkipDataBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'hero': + result.hero.replace(serializers.deserialize(value, + specifiedType: const FullType(GHeroMergeSkipData_hero))! + as GHeroMergeSkipData_hero); + break; + } + } + + return result.build(); + } +} + +class _$GHeroMergeSkipData_heroSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroMergeSkipData_hero, + _$GHeroMergeSkipData_hero + ]; + @override + final String wireName = 'GHeroMergeSkipData_hero'; + + @override + Iterable serialize( + Serializers serializers, GHeroMergeSkipData_hero object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + 'id', + serializers.serialize(object.id, specifiedType: const FullType(String)), + 'name', + serializers.serialize(object.name, specifiedType: const FullType(String)), + ]; + + return result; + } + + @override + GHeroMergeSkipData_hero deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroMergeSkipData_heroBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'name': + result.name = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + } + } + + return result.build(); + } +} + +class _$GHeroMergeSkipData extends GHeroMergeSkipData { + @override + final String G__typename; + @override + final GHeroMergeSkipData_hero? hero; + + factory _$GHeroMergeSkipData( + [void Function(GHeroMergeSkipDataBuilder)? updates]) => + (new GHeroMergeSkipDataBuilder()..update(updates))._build(); + + _$GHeroMergeSkipData._({required this.G__typename, this.hero}) : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroMergeSkipData', 'G__typename'); + } + + @override + GHeroMergeSkipData rebuild( + void Function(GHeroMergeSkipDataBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroMergeSkipDataBuilder toBuilder() => + new GHeroMergeSkipDataBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroMergeSkipData && + G__typename == other.G__typename && + hero == other.hero; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, hero.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroMergeSkipData') + ..add('G__typename', G__typename) + ..add('hero', hero)) + .toString(); + } +} + +class GHeroMergeSkipDataBuilder + implements Builder { + _$GHeroMergeSkipData? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + GHeroMergeSkipData_heroBuilder? _hero; + GHeroMergeSkipData_heroBuilder get hero => + _$this._hero ??= new GHeroMergeSkipData_heroBuilder(); + set hero(GHeroMergeSkipData_heroBuilder? hero) => _$this._hero = hero; + + GHeroMergeSkipDataBuilder() { + GHeroMergeSkipData._initializeBuilder(this); + } + + GHeroMergeSkipDataBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _hero = $v.hero?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(GHeroMergeSkipData other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroMergeSkipData; + } + + @override + void update(void Function(GHeroMergeSkipDataBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroMergeSkipData build() => _build(); + + _$GHeroMergeSkipData _build() { + _$GHeroMergeSkipData _$result; + try { + _$result = _$v ?? + new _$GHeroMergeSkipData._( + G__typename: BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroMergeSkipData', 'G__typename'), + hero: _hero?.build()); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'hero'; + _hero?.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroMergeSkipData', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$GHeroMergeSkipData_hero extends GHeroMergeSkipData_hero { + @override + final String G__typename; + @override + final String id; + @override + final String name; + + factory _$GHeroMergeSkipData_hero( + [void Function(GHeroMergeSkipData_heroBuilder)? updates]) => + (new GHeroMergeSkipData_heroBuilder()..update(updates))._build(); + + _$GHeroMergeSkipData_hero._( + {required this.G__typename, required this.id, required this.name}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroMergeSkipData_hero', 'G__typename'); + BuiltValueNullFieldError.checkNotNull(id, r'GHeroMergeSkipData_hero', 'id'); + BuiltValueNullFieldError.checkNotNull( + name, r'GHeroMergeSkipData_hero', 'name'); + } + + @override + GHeroMergeSkipData_hero rebuild( + void Function(GHeroMergeSkipData_heroBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroMergeSkipData_heroBuilder toBuilder() => + new GHeroMergeSkipData_heroBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroMergeSkipData_hero && + G__typename == other.G__typename && + id == other.id && + name == other.name; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, id.hashCode); + _$hash = $jc(_$hash, name.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroMergeSkipData_hero') + ..add('G__typename', G__typename) + ..add('id', id) + ..add('name', name)) + .toString(); + } +} + +class GHeroMergeSkipData_heroBuilder + implements + Builder { + _$GHeroMergeSkipData_hero? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + String? _id; + String? get id => _$this._id; + set id(String? id) => _$this._id = id; + + String? _name; + String? get name => _$this._name; + set name(String? name) => _$this._name = name; + + GHeroMergeSkipData_heroBuilder() { + GHeroMergeSkipData_hero._initializeBuilder(this); + } + + GHeroMergeSkipData_heroBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _id = $v.id; + _name = $v.name; + _$v = null; + } + return this; + } + + @override + void replace(GHeroMergeSkipData_hero other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroMergeSkipData_hero; + } + + @override + void update(void Function(GHeroMergeSkipData_heroBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroMergeSkipData_hero build() => _build(); + + _$GHeroMergeSkipData_hero _build() { + final _$result = _$v ?? + new _$GHeroMergeSkipData_hero._( + G__typename: BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroMergeSkipData_hero', 'G__typename'), + id: BuiltValueNullFieldError.checkNotNull( + id, r'GHeroMergeSkipData_hero', 'id'), + name: BuiltValueNullFieldError.checkNotNull( + name, r'GHeroMergeSkipData_hero', 'name')); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql_skip.req.gql.dart b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql_skip.req.gql.dart new file mode 100644 index 00000000..a4a99b1a --- /dev/null +++ b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql_skip.req.gql.dart @@ -0,0 +1,45 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test/graphql/__generated__/serializers.gql.dart' + as _i4; +import 'package:end_to_end_test/merge/__generated__/merge_selection_sets.graphql_skip.ast.gql.dart' + as _i2; +import 'package:end_to_end_test/merge/__generated__/merge_selection_sets.graphql_skip.var.gql.dart' + as _i3; +import 'package:gql_exec/gql_exec.dart' as _i1; + +part 'merge_selection_sets.graphql_skip.req.gql.g.dart'; + +abstract class GHeroMergeSkip + implements Built { + GHeroMergeSkip._(); + + factory GHeroMergeSkip([void Function(GHeroMergeSkipBuilder b) updates]) = + _$GHeroMergeSkip; + + static void _initializeBuilder(GHeroMergeSkipBuilder b) => b + ..operation = _i1.Operation( + document: _i2.document, + operationName: 'HeroMergeSkip', + ); + + _i3.GHeroMergeSkipVars get vars; + _i1.Operation get operation; + static Serializer get serializer => + _$gHeroMergeSkipSerializer; + + Map toJson() => (_i4.serializers.serializeWith( + GHeroMergeSkip.serializer, + this, + ) as Map); + + static GHeroMergeSkip? fromJson(Map json) => + _i4.serializers.deserializeWith( + GHeroMergeSkip.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql_skip.req.gql.g.dart b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql_skip.req.gql.g.dart new file mode 100644 index 00000000..2a49a798 --- /dev/null +++ b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql_skip.req.gql.g.dart @@ -0,0 +1,177 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'merge_selection_sets.graphql_skip.req.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$gHeroMergeSkipSerializer = + new _$GHeroMergeSkipSerializer(); + +class _$GHeroMergeSkipSerializer + implements StructuredSerializer { + @override + final Iterable types = const [GHeroMergeSkip, _$GHeroMergeSkip]; + @override + final String wireName = 'GHeroMergeSkip'; + + @override + Iterable serialize(Serializers serializers, GHeroMergeSkip object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + 'vars', + serializers.serialize(object.vars, + specifiedType: const FullType(_i3.GHeroMergeSkipVars)), + 'operation', + serializers.serialize(object.operation, + specifiedType: const FullType(_i1.Operation)), + ]; + + return result; + } + + @override + GHeroMergeSkip deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroMergeSkipBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'vars': + result.vars.replace(serializers.deserialize(value, + specifiedType: const FullType(_i3.GHeroMergeSkipVars))! + as _i3.GHeroMergeSkipVars); + break; + case 'operation': + result.operation = serializers.deserialize(value, + specifiedType: const FullType(_i1.Operation))! as _i1.Operation; + break; + } + } + + return result.build(); + } +} + +class _$GHeroMergeSkip extends GHeroMergeSkip { + @override + final _i3.GHeroMergeSkipVars vars; + @override + final _i1.Operation operation; + + factory _$GHeroMergeSkip([void Function(GHeroMergeSkipBuilder)? updates]) => + (new GHeroMergeSkipBuilder()..update(updates))._build(); + + _$GHeroMergeSkip._({required this.vars, required this.operation}) + : super._() { + BuiltValueNullFieldError.checkNotNull(vars, r'GHeroMergeSkip', 'vars'); + BuiltValueNullFieldError.checkNotNull( + operation, r'GHeroMergeSkip', 'operation'); + } + + @override + GHeroMergeSkip rebuild(void Function(GHeroMergeSkipBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroMergeSkipBuilder toBuilder() => + new GHeroMergeSkipBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroMergeSkip && + vars == other.vars && + operation == other.operation; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, vars.hashCode); + _$hash = $jc(_$hash, operation.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroMergeSkip') + ..add('vars', vars) + ..add('operation', operation)) + .toString(); + } +} + +class GHeroMergeSkipBuilder + implements Builder { + _$GHeroMergeSkip? _$v; + + _i3.GHeroMergeSkipVarsBuilder? _vars; + _i3.GHeroMergeSkipVarsBuilder get vars => + _$this._vars ??= new _i3.GHeroMergeSkipVarsBuilder(); + set vars(_i3.GHeroMergeSkipVarsBuilder? vars) => _$this._vars = vars; + + _i1.Operation? _operation; + _i1.Operation? get operation => _$this._operation; + set operation(_i1.Operation? operation) => _$this._operation = operation; + + GHeroMergeSkipBuilder() { + GHeroMergeSkip._initializeBuilder(this); + } + + GHeroMergeSkipBuilder get _$this { + final $v = _$v; + if ($v != null) { + _vars = $v.vars.toBuilder(); + _operation = $v.operation; + _$v = null; + } + return this; + } + + @override + void replace(GHeroMergeSkip other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroMergeSkip; + } + + @override + void update(void Function(GHeroMergeSkipBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroMergeSkip build() => _build(); + + _$GHeroMergeSkip _build() { + _$GHeroMergeSkip _$result; + try { + _$result = _$v ?? + new _$GHeroMergeSkip._( + vars: vars.build(), + operation: BuiltValueNullFieldError.checkNotNull( + operation, r'GHeroMergeSkip', 'operation')); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'vars'; + vars.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroMergeSkip', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql_skip.var.gql.dart b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql_skip.var.gql.dart new file mode 100644 index 00000000..423cb428 --- /dev/null +++ b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql_skip.var.gql.dart @@ -0,0 +1,34 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test/graphql/__generated__/serializers.gql.dart' + as _i1; + +part 'merge_selection_sets.graphql_skip.var.gql.g.dart'; + +abstract class GHeroMergeSkipVars + implements Built { + GHeroMergeSkipVars._(); + + factory GHeroMergeSkipVars( + [void Function(GHeroMergeSkipVarsBuilder b) updates]) = + _$GHeroMergeSkipVars; + + bool get withName; + static Serializer get serializer => + _$gHeroMergeSkipVarsSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroMergeSkipVars.serializer, + this, + ) as Map); + + static GHeroMergeSkipVars? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroMergeSkipVars.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql_skip.var.gql.g.dart b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql_skip.var.gql.g.dart new file mode 100644 index 00000000..cf0bd6e0 --- /dev/null +++ b/codegen/end_to_end_test/lib/merge/__generated__/merge_selection_sets.graphql_skip.var.gql.g.dart @@ -0,0 +1,142 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'merge_selection_sets.graphql_skip.var.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$gHeroMergeSkipVarsSerializer = + new _$GHeroMergeSkipVarsSerializer(); + +class _$GHeroMergeSkipVarsSerializer + implements StructuredSerializer { + @override + final Iterable types = const [GHeroMergeSkipVars, _$GHeroMergeSkipVars]; + @override + final String wireName = 'GHeroMergeSkipVars'; + + @override + Iterable serialize( + Serializers serializers, GHeroMergeSkipVars object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + 'withName', + serializers.serialize(object.withName, + specifiedType: const FullType(bool)), + ]; + + return result; + } + + @override + GHeroMergeSkipVars deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroMergeSkipVarsBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'withName': + result.withName = serializers.deserialize(value, + specifiedType: const FullType(bool))! as bool; + break; + } + } + + return result.build(); + } +} + +class _$GHeroMergeSkipVars extends GHeroMergeSkipVars { + @override + final bool withName; + + factory _$GHeroMergeSkipVars( + [void Function(GHeroMergeSkipVarsBuilder)? updates]) => + (new GHeroMergeSkipVarsBuilder()..update(updates))._build(); + + _$GHeroMergeSkipVars._({required this.withName}) : super._() { + BuiltValueNullFieldError.checkNotNull( + withName, r'GHeroMergeSkipVars', 'withName'); + } + + @override + GHeroMergeSkipVars rebuild( + void Function(GHeroMergeSkipVarsBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroMergeSkipVarsBuilder toBuilder() => + new GHeroMergeSkipVarsBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroMergeSkipVars && withName == other.withName; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, withName.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroMergeSkipVars') + ..add('withName', withName)) + .toString(); + } +} + +class GHeroMergeSkipVarsBuilder + implements Builder { + _$GHeroMergeSkipVars? _$v; + + bool? _withName; + bool? get withName => _$this._withName; + set withName(bool? withName) => _$this._withName = withName; + + GHeroMergeSkipVarsBuilder(); + + GHeroMergeSkipVarsBuilder get _$this { + final $v = _$v; + if ($v != null) { + _withName = $v.withName; + _$v = null; + } + return this; + } + + @override + void replace(GHeroMergeSkipVars other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroMergeSkipVars; + } + + @override + void update(void Function(GHeroMergeSkipVarsBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroMergeSkipVars build() => _build(); + + _$GHeroMergeSkipVars _build() { + final _$result = _$v ?? + new _$GHeroMergeSkipVars._( + withName: BuiltValueNullFieldError.checkNotNull( + withName, r'GHeroMergeSkipVars', 'withName')); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test/lib/merge/merge_selection_sets.graphql.graphql b/codegen/end_to_end_test/lib/merge/merge_selection_sets.graphql.graphql new file mode 100644 index 00000000..16f4de03 --- /dev/null +++ b/codegen/end_to_end_test/lib/merge/merge_selection_sets.graphql.graphql @@ -0,0 +1,9 @@ +query HeroMerge { + hero { + id + } + hero { + name + } + +} \ No newline at end of file diff --git a/codegen/end_to_end_test/lib/merge/merge_selection_sets.graphql_skip.graphql b/codegen/end_to_end_test/lib/merge/merge_selection_sets.graphql_skip.graphql new file mode 100644 index 00000000..3a92b913 --- /dev/null +++ b/codegen/end_to_end_test/lib/merge/merge_selection_sets.graphql_skip.graphql @@ -0,0 +1,8 @@ +query HeroMergeSkip($withName: Boolean!) { + hero { + id + } + hero @include(if: $withName) { + name + } +} \ No newline at end of file diff --git a/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_include.ast.gql.dart b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_include.ast.gql.dart new file mode 100644 index 00000000..e46ca976 --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_include.ast.gql.dart @@ -0,0 +1,58 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:gql/ast.dart' as _i1; + +const HeroInclude = _i1.OperationDefinitionNode( + type: _i1.OperationType.query, + name: _i1.NameNode(value: 'HeroInclude'), + variableDefinitions: [ + _i1.VariableDefinitionNode( + variable: _i1.VariableNode(name: _i1.NameNode(value: 'includeId')), + type: _i1.NamedTypeNode( + name: _i1.NameNode(value: 'Boolean'), + isNonNull: true, + ), + defaultValue: _i1.DefaultValueNode(value: null), + directives: [], + ) + ], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'hero'), + alias: null, + arguments: [], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'id'), + alias: null, + arguments: [], + directives: [ + _i1.DirectiveNode( + name: _i1.NameNode(value: 'include'), + arguments: [ + _i1.ArgumentNode( + name: _i1.NameNode(value: 'if'), + value: + _i1.VariableNode(name: _i1.NameNode(value: 'includeId')), + ) + ], + ) + ], + selectionSet: null, + ), + _i1.FieldNode( + name: _i1.NameNode(value: 'name'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ), + ]), + ) + ]), +); +const document = _i1.DocumentNode(definitions: [HeroInclude]); diff --git a/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_include.data.gql.dart b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_include.data.gql.dart new file mode 100644 index 00000000..6c392e34 --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_include.data.gql.dart @@ -0,0 +1,68 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test_tristate/graphql/__generated__/serializers.gql.dart' + as _i1; + +part 'hero_include.data.gql.g.dart'; + +abstract class GHeroIncludeData + implements Built { + GHeroIncludeData._(); + + factory GHeroIncludeData([void Function(GHeroIncludeDataBuilder b) updates]) = + _$GHeroIncludeData; + + static void _initializeBuilder(GHeroIncludeDataBuilder b) => + b..G__typename = 'Query'; + + @BuiltValueField(wireName: '__typename') + String get G__typename; + GHeroIncludeData_hero? get hero; + static Serializer get serializer => + _$gHeroIncludeDataSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroIncludeData.serializer, + this, + ) as Map); + + static GHeroIncludeData? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroIncludeData.serializer, + json, + ); +} + +abstract class GHeroIncludeData_hero + implements Built { + GHeroIncludeData_hero._(); + + factory GHeroIncludeData_hero( + [void Function(GHeroIncludeData_heroBuilder b) updates]) = + _$GHeroIncludeData_hero; + + static void _initializeBuilder(GHeroIncludeData_heroBuilder b) => + b..G__typename = 'Character'; + + @BuiltValueField(wireName: '__typename') + String get G__typename; + String? get id; + String get name; + static Serializer get serializer => + _$gHeroIncludeDataHeroSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroIncludeData_hero.serializer, + this, + ) as Map); + + static GHeroIncludeData_hero? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroIncludeData_hero.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_include.data.gql.g.dart b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_include.data.gql.g.dart new file mode 100644 index 00000000..55b6cdd1 --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_include.data.gql.g.dart @@ -0,0 +1,362 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_include.data.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$gHeroIncludeDataSerializer = + new _$GHeroIncludeDataSerializer(); +Serializer _$gHeroIncludeDataHeroSerializer = + new _$GHeroIncludeData_heroSerializer(); + +class _$GHeroIncludeDataSerializer + implements StructuredSerializer { + @override + final Iterable types = const [GHeroIncludeData, _$GHeroIncludeData]; + @override + final String wireName = 'GHeroIncludeData'; + + @override + Iterable serialize(Serializers serializers, GHeroIncludeData object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + ]; + Object? value; + value = object.hero; + if (value != null) { + result + ..add('hero') + ..add(serializers.serialize(value, + specifiedType: const FullType(GHeroIncludeData_hero))); + } + return result; + } + + @override + GHeroIncludeData deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroIncludeDataBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'hero': + result.hero.replace(serializers.deserialize(value, + specifiedType: const FullType(GHeroIncludeData_hero))! + as GHeroIncludeData_hero); + break; + } + } + + return result.build(); + } +} + +class _$GHeroIncludeData_heroSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroIncludeData_hero, + _$GHeroIncludeData_hero + ]; + @override + final String wireName = 'GHeroIncludeData_hero'; + + @override + Iterable serialize( + Serializers serializers, GHeroIncludeData_hero object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + 'name', + serializers.serialize(object.name, specifiedType: const FullType(String)), + ]; + Object? value; + value = object.id; + if (value != null) { + result + ..add('id') + ..add(serializers.serialize(value, + specifiedType: const FullType(String))); + } + return result; + } + + @override + GHeroIncludeData_hero deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroIncludeData_heroBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(String)) as String?; + break; + case 'name': + result.name = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + } + } + + return result.build(); + } +} + +class _$GHeroIncludeData extends GHeroIncludeData { + @override + final String G__typename; + @override + final GHeroIncludeData_hero? hero; + + factory _$GHeroIncludeData( + [void Function(GHeroIncludeDataBuilder)? updates]) => + (new GHeroIncludeDataBuilder()..update(updates))._build(); + + _$GHeroIncludeData._({required this.G__typename, this.hero}) : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroIncludeData', 'G__typename'); + } + + @override + GHeroIncludeData rebuild(void Function(GHeroIncludeDataBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroIncludeDataBuilder toBuilder() => + new GHeroIncludeDataBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroIncludeData && + G__typename == other.G__typename && + hero == other.hero; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, hero.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroIncludeData') + ..add('G__typename', G__typename) + ..add('hero', hero)) + .toString(); + } +} + +class GHeroIncludeDataBuilder + implements Builder { + _$GHeroIncludeData? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + GHeroIncludeData_heroBuilder? _hero; + GHeroIncludeData_heroBuilder get hero => + _$this._hero ??= new GHeroIncludeData_heroBuilder(); + set hero(GHeroIncludeData_heroBuilder? hero) => _$this._hero = hero; + + GHeroIncludeDataBuilder() { + GHeroIncludeData._initializeBuilder(this); + } + + GHeroIncludeDataBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _hero = $v.hero?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(GHeroIncludeData other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroIncludeData; + } + + @override + void update(void Function(GHeroIncludeDataBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroIncludeData build() => _build(); + + _$GHeroIncludeData _build() { + _$GHeroIncludeData _$result; + try { + _$result = _$v ?? + new _$GHeroIncludeData._( + G__typename: BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroIncludeData', 'G__typename'), + hero: _hero?.build()); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'hero'; + _hero?.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroIncludeData', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$GHeroIncludeData_hero extends GHeroIncludeData_hero { + @override + final String G__typename; + @override + final String? id; + @override + final String name; + + factory _$GHeroIncludeData_hero( + [void Function(GHeroIncludeData_heroBuilder)? updates]) => + (new GHeroIncludeData_heroBuilder()..update(updates))._build(); + + _$GHeroIncludeData_hero._( + {required this.G__typename, this.id, required this.name}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroIncludeData_hero', 'G__typename'); + BuiltValueNullFieldError.checkNotNull( + name, r'GHeroIncludeData_hero', 'name'); + } + + @override + GHeroIncludeData_hero rebuild( + void Function(GHeroIncludeData_heroBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroIncludeData_heroBuilder toBuilder() => + new GHeroIncludeData_heroBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroIncludeData_hero && + G__typename == other.G__typename && + id == other.id && + name == other.name; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, id.hashCode); + _$hash = $jc(_$hash, name.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroIncludeData_hero') + ..add('G__typename', G__typename) + ..add('id', id) + ..add('name', name)) + .toString(); + } +} + +class GHeroIncludeData_heroBuilder + implements Builder { + _$GHeroIncludeData_hero? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + String? _id; + String? get id => _$this._id; + set id(String? id) => _$this._id = id; + + String? _name; + String? get name => _$this._name; + set name(String? name) => _$this._name = name; + + GHeroIncludeData_heroBuilder() { + GHeroIncludeData_hero._initializeBuilder(this); + } + + GHeroIncludeData_heroBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _id = $v.id; + _name = $v.name; + _$v = null; + } + return this; + } + + @override + void replace(GHeroIncludeData_hero other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroIncludeData_hero; + } + + @override + void update(void Function(GHeroIncludeData_heroBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroIncludeData_hero build() => _build(); + + _$GHeroIncludeData_hero _build() { + final _$result = _$v ?? + new _$GHeroIncludeData_hero._( + G__typename: BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroIncludeData_hero', 'G__typename'), + id: id, + name: BuiltValueNullFieldError.checkNotNull( + name, r'GHeroIncludeData_hero', 'name')); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_include.req.gql.dart b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_include.req.gql.dart new file mode 100644 index 00000000..dbef02af --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_include.req.gql.dart @@ -0,0 +1,44 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test_tristate/directives/__generated__/hero_include.ast.gql.dart' + as _i2; +import 'package:end_to_end_test_tristate/directives/__generated__/hero_include.var.gql.dart' + as _i3; +import 'package:end_to_end_test_tristate/graphql/__generated__/serializers.gql.dart' + as _i4; +import 'package:gql_exec/gql_exec.dart' as _i1; + +part 'hero_include.req.gql.g.dart'; + +abstract class GHeroInclude + implements Built { + GHeroInclude._(); + + factory GHeroInclude([void Function(GHeroIncludeBuilder b) updates]) = + _$GHeroInclude; + + static void _initializeBuilder(GHeroIncludeBuilder b) => b + ..operation = _i1.Operation( + document: _i2.document, + operationName: 'HeroInclude', + ); + + _i3.GHeroIncludeVars get vars; + _i1.Operation get operation; + static Serializer get serializer => _$gHeroIncludeSerializer; + + Map toJson() => (_i4.serializers.serializeWith( + GHeroInclude.serializer, + this, + ) as Map); + + static GHeroInclude? fromJson(Map json) => + _i4.serializers.deserializeWith( + GHeroInclude.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_include.req.gql.g.dart b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_include.req.gql.g.dart new file mode 100644 index 00000000..a1c62846 --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_include.req.gql.g.dart @@ -0,0 +1,174 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_include.req.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$gHeroIncludeSerializer = + new _$GHeroIncludeSerializer(); + +class _$GHeroIncludeSerializer implements StructuredSerializer { + @override + final Iterable types = const [GHeroInclude, _$GHeroInclude]; + @override + final String wireName = 'GHeroInclude'; + + @override + Iterable serialize(Serializers serializers, GHeroInclude object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + 'vars', + serializers.serialize(object.vars, + specifiedType: const FullType(_i3.GHeroIncludeVars)), + 'operation', + serializers.serialize(object.operation, + specifiedType: const FullType(_i1.Operation)), + ]; + + return result; + } + + @override + GHeroInclude deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroIncludeBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'vars': + result.vars.replace(serializers.deserialize(value, + specifiedType: const FullType(_i3.GHeroIncludeVars))! + as _i3.GHeroIncludeVars); + break; + case 'operation': + result.operation = serializers.deserialize(value, + specifiedType: const FullType(_i1.Operation))! as _i1.Operation; + break; + } + } + + return result.build(); + } +} + +class _$GHeroInclude extends GHeroInclude { + @override + final _i3.GHeroIncludeVars vars; + @override + final _i1.Operation operation; + + factory _$GHeroInclude([void Function(GHeroIncludeBuilder)? updates]) => + (new GHeroIncludeBuilder()..update(updates))._build(); + + _$GHeroInclude._({required this.vars, required this.operation}) : super._() { + BuiltValueNullFieldError.checkNotNull(vars, r'GHeroInclude', 'vars'); + BuiltValueNullFieldError.checkNotNull( + operation, r'GHeroInclude', 'operation'); + } + + @override + GHeroInclude rebuild(void Function(GHeroIncludeBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroIncludeBuilder toBuilder() => new GHeroIncludeBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroInclude && + vars == other.vars && + operation == other.operation; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, vars.hashCode); + _$hash = $jc(_$hash, operation.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroInclude') + ..add('vars', vars) + ..add('operation', operation)) + .toString(); + } +} + +class GHeroIncludeBuilder + implements Builder { + _$GHeroInclude? _$v; + + _i3.GHeroIncludeVarsBuilder? _vars; + _i3.GHeroIncludeVarsBuilder get vars => + _$this._vars ??= new _i3.GHeroIncludeVarsBuilder(); + set vars(_i3.GHeroIncludeVarsBuilder? vars) => _$this._vars = vars; + + _i1.Operation? _operation; + _i1.Operation? get operation => _$this._operation; + set operation(_i1.Operation? operation) => _$this._operation = operation; + + GHeroIncludeBuilder() { + GHeroInclude._initializeBuilder(this); + } + + GHeroIncludeBuilder get _$this { + final $v = _$v; + if ($v != null) { + _vars = $v.vars.toBuilder(); + _operation = $v.operation; + _$v = null; + } + return this; + } + + @override + void replace(GHeroInclude other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroInclude; + } + + @override + void update(void Function(GHeroIncludeBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroInclude build() => _build(); + + _$GHeroInclude _build() { + _$GHeroInclude _$result; + try { + _$result = _$v ?? + new _$GHeroInclude._( + vars: vars.build(), + operation: BuiltValueNullFieldError.checkNotNull( + operation, r'GHeroInclude', 'operation')); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'vars'; + vars.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroInclude', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_include.var.gql.dart b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_include.var.gql.dart new file mode 100644 index 00000000..faabccb7 --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_include.var.gql.dart @@ -0,0 +1,75 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test_tristate/graphql/__generated__/serializers.gql.dart' + as _i1; + +part 'hero_include.var.gql.g.dart'; + +abstract class GHeroIncludeVars + implements Built { + GHeroIncludeVars._(); + + factory GHeroIncludeVars([void Function(GHeroIncludeVarsBuilder b) updates]) = + _$GHeroIncludeVars; + + bool get includeId; + Map toJson() => (_i1.serializers.serializeWith( + GHeroIncludeVars.serializer, + this, + ) as Map); + + static GHeroIncludeVars? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroIncludeVars.serializer, + json, + ); + + @BuiltValueSerializer(custom: true, serializeNulls: true) + static Serializer get serializer => + GHeroIncludeVarsSerializer(); +} + +final class GHeroIncludeVarsSerializer + extends StructuredSerializer { + final String wireName = 'GHeroIncludeVars'; + + final Iterable types = const [GHeroIncludeVars, _$GHeroIncludeVars]; + + Iterable serialize( + Serializers serializers, + GHeroIncludeVars object, { + FullType specifiedType = FullType.unspecified, + }) { + final result = []; + result.add('includeId'); + result.add(serializers.serialize(object.includeId, + specifiedType: const FullType(bool))); + return result; + } + + GHeroIncludeVars deserialize( + Serializers serializers, + Iterable serialized, { + FullType specifiedType = FullType.unspecified, + }) { + final builder = GHeroIncludeVarsBuilder(); + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'includeId': + var _$fieldValue = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + builder.includeId = _$fieldValue; + break; + } + } + return builder.build(); + } +} diff --git a/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_include.var.gql.g.dart b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_include.var.gql.g.dart new file mode 100644 index 00000000..8ce6c7da --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_include.var.gql.g.dart @@ -0,0 +1,95 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_include.var.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +class _$GHeroIncludeVars extends GHeroIncludeVars { + @override + final bool includeId; + + factory _$GHeroIncludeVars( + [void Function(GHeroIncludeVarsBuilder)? updates]) => + (new GHeroIncludeVarsBuilder()..update(updates))._build(); + + _$GHeroIncludeVars._({required this.includeId}) : super._() { + BuiltValueNullFieldError.checkNotNull( + includeId, r'GHeroIncludeVars', 'includeId'); + } + + @override + GHeroIncludeVars rebuild(void Function(GHeroIncludeVarsBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroIncludeVarsBuilder toBuilder() => + new GHeroIncludeVarsBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroIncludeVars && includeId == other.includeId; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, includeId.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroIncludeVars') + ..add('includeId', includeId)) + .toString(); + } +} + +class GHeroIncludeVarsBuilder + implements Builder { + _$GHeroIncludeVars? _$v; + + bool? _includeId; + bool? get includeId => _$this._includeId; + set includeId(bool? includeId) => _$this._includeId = includeId; + + GHeroIncludeVarsBuilder(); + + GHeroIncludeVarsBuilder get _$this { + final $v = _$v; + if ($v != null) { + _includeId = $v.includeId; + _$v = null; + } + return this; + } + + @override + void replace(GHeroIncludeVars other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroIncludeVars; + } + + @override + void update(void Function(GHeroIncludeVarsBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroIncludeVars build() => _build(); + + _$GHeroIncludeVars _build() { + final _$result = _$v ?? + new _$GHeroIncludeVars._( + includeId: BuiltValueNullFieldError.checkNotNull( + includeId, r'GHeroIncludeVars', 'includeId')); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip.ast.gql.dart b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip.ast.gql.dart new file mode 100644 index 00000000..dca33e70 --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip.ast.gql.dart @@ -0,0 +1,58 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:gql/ast.dart' as _i1; + +const HeroSkip = _i1.OperationDefinitionNode( + type: _i1.OperationType.query, + name: _i1.NameNode(value: 'HeroSkip'), + variableDefinitions: [ + _i1.VariableDefinitionNode( + variable: _i1.VariableNode(name: _i1.NameNode(value: 'skipName')), + type: _i1.NamedTypeNode( + name: _i1.NameNode(value: 'Boolean'), + isNonNull: true, + ), + defaultValue: _i1.DefaultValueNode(value: null), + directives: [], + ) + ], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'hero'), + alias: null, + arguments: [], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'id'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ), + _i1.FieldNode( + name: _i1.NameNode(value: 'name'), + alias: null, + arguments: [], + directives: [ + _i1.DirectiveNode( + name: _i1.NameNode(value: 'skip'), + arguments: [ + _i1.ArgumentNode( + name: _i1.NameNode(value: 'if'), + value: + _i1.VariableNode(name: _i1.NameNode(value: 'skipName')), + ) + ], + ) + ], + selectionSet: null, + ), + ]), + ) + ]), +); +const document = _i1.DocumentNode(definitions: [HeroSkip]); diff --git a/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip.data.gql.dart b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip.data.gql.dart new file mode 100644 index 00000000..dfe68bf6 --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip.data.gql.dart @@ -0,0 +1,67 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test_tristate/graphql/__generated__/serializers.gql.dart' + as _i1; + +part 'hero_skip.data.gql.g.dart'; + +abstract class GHeroSkipData + implements Built { + GHeroSkipData._(); + + factory GHeroSkipData([void Function(GHeroSkipDataBuilder b) updates]) = + _$GHeroSkipData; + + static void _initializeBuilder(GHeroSkipDataBuilder b) => + b..G__typename = 'Query'; + + @BuiltValueField(wireName: '__typename') + String get G__typename; + GHeroSkipData_hero? get hero; + static Serializer get serializer => _$gHeroSkipDataSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroSkipData.serializer, + this, + ) as Map); + + static GHeroSkipData? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroSkipData.serializer, + json, + ); +} + +abstract class GHeroSkipData_hero + implements Built { + GHeroSkipData_hero._(); + + factory GHeroSkipData_hero( + [void Function(GHeroSkipData_heroBuilder b) updates]) = + _$GHeroSkipData_hero; + + static void _initializeBuilder(GHeroSkipData_heroBuilder b) => + b..G__typename = 'Character'; + + @BuiltValueField(wireName: '__typename') + String get G__typename; + String get id; + String? get name; + static Serializer get serializer => + _$gHeroSkipDataHeroSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroSkipData_hero.serializer, + this, + ) as Map); + + static GHeroSkipData_hero? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroSkipData_hero.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip.data.gql.g.dart b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip.data.gql.g.dart new file mode 100644 index 00000000..51056c34 --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip.data.gql.g.dart @@ -0,0 +1,355 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_skip.data.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$gHeroSkipDataSerializer = + new _$GHeroSkipDataSerializer(); +Serializer _$gHeroSkipDataHeroSerializer = + new _$GHeroSkipData_heroSerializer(); + +class _$GHeroSkipDataSerializer implements StructuredSerializer { + @override + final Iterable types = const [GHeroSkipData, _$GHeroSkipData]; + @override + final String wireName = 'GHeroSkipData'; + + @override + Iterable serialize(Serializers serializers, GHeroSkipData object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + ]; + Object? value; + value = object.hero; + if (value != null) { + result + ..add('hero') + ..add(serializers.serialize(value, + specifiedType: const FullType(GHeroSkipData_hero))); + } + return result; + } + + @override + GHeroSkipData deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroSkipDataBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'hero': + result.hero.replace(serializers.deserialize(value, + specifiedType: const FullType(GHeroSkipData_hero))! + as GHeroSkipData_hero); + break; + } + } + + return result.build(); + } +} + +class _$GHeroSkipData_heroSerializer + implements StructuredSerializer { + @override + final Iterable types = const [GHeroSkipData_hero, _$GHeroSkipData_hero]; + @override + final String wireName = 'GHeroSkipData_hero'; + + @override + Iterable serialize( + Serializers serializers, GHeroSkipData_hero object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + 'id', + serializers.serialize(object.id, specifiedType: const FullType(String)), + ]; + Object? value; + value = object.name; + if (value != null) { + result + ..add('name') + ..add(serializers.serialize(value, + specifiedType: const FullType(String))); + } + return result; + } + + @override + GHeroSkipData_hero deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroSkipData_heroBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'name': + result.name = serializers.deserialize(value, + specifiedType: const FullType(String)) as String?; + break; + } + } + + return result.build(); + } +} + +class _$GHeroSkipData extends GHeroSkipData { + @override + final String G__typename; + @override + final GHeroSkipData_hero? hero; + + factory _$GHeroSkipData([void Function(GHeroSkipDataBuilder)? updates]) => + (new GHeroSkipDataBuilder()..update(updates))._build(); + + _$GHeroSkipData._({required this.G__typename, this.hero}) : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroSkipData', 'G__typename'); + } + + @override + GHeroSkipData rebuild(void Function(GHeroSkipDataBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroSkipDataBuilder toBuilder() => new GHeroSkipDataBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroSkipData && + G__typename == other.G__typename && + hero == other.hero; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, hero.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroSkipData') + ..add('G__typename', G__typename) + ..add('hero', hero)) + .toString(); + } +} + +class GHeroSkipDataBuilder + implements Builder { + _$GHeroSkipData? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + GHeroSkipData_heroBuilder? _hero; + GHeroSkipData_heroBuilder get hero => + _$this._hero ??= new GHeroSkipData_heroBuilder(); + set hero(GHeroSkipData_heroBuilder? hero) => _$this._hero = hero; + + GHeroSkipDataBuilder() { + GHeroSkipData._initializeBuilder(this); + } + + GHeroSkipDataBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _hero = $v.hero?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(GHeroSkipData other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroSkipData; + } + + @override + void update(void Function(GHeroSkipDataBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroSkipData build() => _build(); + + _$GHeroSkipData _build() { + _$GHeroSkipData _$result; + try { + _$result = _$v ?? + new _$GHeroSkipData._( + G__typename: BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroSkipData', 'G__typename'), + hero: _hero?.build()); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'hero'; + _hero?.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroSkipData', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$GHeroSkipData_hero extends GHeroSkipData_hero { + @override + final String G__typename; + @override + final String id; + @override + final String? name; + + factory _$GHeroSkipData_hero( + [void Function(GHeroSkipData_heroBuilder)? updates]) => + (new GHeroSkipData_heroBuilder()..update(updates))._build(); + + _$GHeroSkipData_hero._( + {required this.G__typename, required this.id, this.name}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroSkipData_hero', 'G__typename'); + BuiltValueNullFieldError.checkNotNull(id, r'GHeroSkipData_hero', 'id'); + } + + @override + GHeroSkipData_hero rebuild( + void Function(GHeroSkipData_heroBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroSkipData_heroBuilder toBuilder() => + new GHeroSkipData_heroBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroSkipData_hero && + G__typename == other.G__typename && + id == other.id && + name == other.name; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, id.hashCode); + _$hash = $jc(_$hash, name.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroSkipData_hero') + ..add('G__typename', G__typename) + ..add('id', id) + ..add('name', name)) + .toString(); + } +} + +class GHeroSkipData_heroBuilder + implements Builder { + _$GHeroSkipData_hero? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + String? _id; + String? get id => _$this._id; + set id(String? id) => _$this._id = id; + + String? _name; + String? get name => _$this._name; + set name(String? name) => _$this._name = name; + + GHeroSkipData_heroBuilder() { + GHeroSkipData_hero._initializeBuilder(this); + } + + GHeroSkipData_heroBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _id = $v.id; + _name = $v.name; + _$v = null; + } + return this; + } + + @override + void replace(GHeroSkipData_hero other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroSkipData_hero; + } + + @override + void update(void Function(GHeroSkipData_heroBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroSkipData_hero build() => _build(); + + _$GHeroSkipData_hero _build() { + final _$result = _$v ?? + new _$GHeroSkipData_hero._( + G__typename: BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroSkipData_hero', 'G__typename'), + id: BuiltValueNullFieldError.checkNotNull( + id, r'GHeroSkipData_hero', 'id'), + name: name); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip.req.gql.dart b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip.req.gql.dart new file mode 100644 index 00000000..92496f93 --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip.req.gql.dart @@ -0,0 +1,42 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test_tristate/directives/__generated__/hero_skip.ast.gql.dart' + as _i2; +import 'package:end_to_end_test_tristate/directives/__generated__/hero_skip.var.gql.dart' + as _i3; +import 'package:end_to_end_test_tristate/graphql/__generated__/serializers.gql.dart' + as _i4; +import 'package:gql_exec/gql_exec.dart' as _i1; + +part 'hero_skip.req.gql.g.dart'; + +abstract class GHeroSkip implements Built { + GHeroSkip._(); + + factory GHeroSkip([void Function(GHeroSkipBuilder b) updates]) = _$GHeroSkip; + + static void _initializeBuilder(GHeroSkipBuilder b) => b + ..operation = _i1.Operation( + document: _i2.document, + operationName: 'HeroSkip', + ); + + _i3.GHeroSkipVars get vars; + _i1.Operation get operation; + static Serializer get serializer => _$gHeroSkipSerializer; + + Map toJson() => (_i4.serializers.serializeWith( + GHeroSkip.serializer, + this, + ) as Map); + + static GHeroSkip? fromJson(Map json) => + _i4.serializers.deserializeWith( + GHeroSkip.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip.req.gql.g.dart b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip.req.gql.g.dart new file mode 100644 index 00000000..a6995177 --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip.req.gql.g.dart @@ -0,0 +1,170 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_skip.req.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$gHeroSkipSerializer = new _$GHeroSkipSerializer(); + +class _$GHeroSkipSerializer implements StructuredSerializer { + @override + final Iterable types = const [GHeroSkip, _$GHeroSkip]; + @override + final String wireName = 'GHeroSkip'; + + @override + Iterable serialize(Serializers serializers, GHeroSkip object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + 'vars', + serializers.serialize(object.vars, + specifiedType: const FullType(_i3.GHeroSkipVars)), + 'operation', + serializers.serialize(object.operation, + specifiedType: const FullType(_i1.Operation)), + ]; + + return result; + } + + @override + GHeroSkip deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroSkipBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'vars': + result.vars.replace(serializers.deserialize(value, + specifiedType: const FullType(_i3.GHeroSkipVars))! + as _i3.GHeroSkipVars); + break; + case 'operation': + result.operation = serializers.deserialize(value, + specifiedType: const FullType(_i1.Operation))! as _i1.Operation; + break; + } + } + + return result.build(); + } +} + +class _$GHeroSkip extends GHeroSkip { + @override + final _i3.GHeroSkipVars vars; + @override + final _i1.Operation operation; + + factory _$GHeroSkip([void Function(GHeroSkipBuilder)? updates]) => + (new GHeroSkipBuilder()..update(updates))._build(); + + _$GHeroSkip._({required this.vars, required this.operation}) : super._() { + BuiltValueNullFieldError.checkNotNull(vars, r'GHeroSkip', 'vars'); + BuiltValueNullFieldError.checkNotNull(operation, r'GHeroSkip', 'operation'); + } + + @override + GHeroSkip rebuild(void Function(GHeroSkipBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroSkipBuilder toBuilder() => new GHeroSkipBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroSkip && + vars == other.vars && + operation == other.operation; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, vars.hashCode); + _$hash = $jc(_$hash, operation.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroSkip') + ..add('vars', vars) + ..add('operation', operation)) + .toString(); + } +} + +class GHeroSkipBuilder implements Builder { + _$GHeroSkip? _$v; + + _i3.GHeroSkipVarsBuilder? _vars; + _i3.GHeroSkipVarsBuilder get vars => + _$this._vars ??= new _i3.GHeroSkipVarsBuilder(); + set vars(_i3.GHeroSkipVarsBuilder? vars) => _$this._vars = vars; + + _i1.Operation? _operation; + _i1.Operation? get operation => _$this._operation; + set operation(_i1.Operation? operation) => _$this._operation = operation; + + GHeroSkipBuilder() { + GHeroSkip._initializeBuilder(this); + } + + GHeroSkipBuilder get _$this { + final $v = _$v; + if ($v != null) { + _vars = $v.vars.toBuilder(); + _operation = $v.operation; + _$v = null; + } + return this; + } + + @override + void replace(GHeroSkip other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroSkip; + } + + @override + void update(void Function(GHeroSkipBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroSkip build() => _build(); + + _$GHeroSkip _build() { + _$GHeroSkip _$result; + try { + _$result = _$v ?? + new _$GHeroSkip._( + vars: vars.build(), + operation: BuiltValueNullFieldError.checkNotNull( + operation, r'GHeroSkip', 'operation')); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'vars'; + vars.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroSkip', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip.var.gql.dart b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip.var.gql.dart new file mode 100644 index 00000000..ddd00b33 --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip.var.gql.dart @@ -0,0 +1,74 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test_tristate/graphql/__generated__/serializers.gql.dart' + as _i1; + +part 'hero_skip.var.gql.g.dart'; + +abstract class GHeroSkipVars + implements Built { + GHeroSkipVars._(); + + factory GHeroSkipVars([void Function(GHeroSkipVarsBuilder b) updates]) = + _$GHeroSkipVars; + + bool get skipName; + Map toJson() => (_i1.serializers.serializeWith( + GHeroSkipVars.serializer, + this, + ) as Map); + + static GHeroSkipVars? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroSkipVars.serializer, + json, + ); + + @BuiltValueSerializer(custom: true, serializeNulls: true) + static Serializer get serializer => GHeroSkipVarsSerializer(); +} + +final class GHeroSkipVarsSerializer + extends StructuredSerializer { + final String wireName = 'GHeroSkipVars'; + + final Iterable types = const [GHeroSkipVars, _$GHeroSkipVars]; + + Iterable serialize( + Serializers serializers, + GHeroSkipVars object, { + FullType specifiedType = FullType.unspecified, + }) { + final result = []; + result.add('skipName'); + result.add(serializers.serialize(object.skipName, + specifiedType: const FullType(bool))); + return result; + } + + GHeroSkipVars deserialize( + Serializers serializers, + Iterable serialized, { + FullType specifiedType = FullType.unspecified, + }) { + final builder = GHeroSkipVarsBuilder(); + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'skipName': + var _$fieldValue = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + builder.skipName = _$fieldValue; + break; + } + } + return builder.build(); + } +} diff --git a/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip.var.gql.g.dart b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip.var.gql.g.dart new file mode 100644 index 00000000..85375464 --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip.var.gql.g.dart @@ -0,0 +1,93 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_skip.var.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +class _$GHeroSkipVars extends GHeroSkipVars { + @override + final bool skipName; + + factory _$GHeroSkipVars([void Function(GHeroSkipVarsBuilder)? updates]) => + (new GHeroSkipVarsBuilder()..update(updates))._build(); + + _$GHeroSkipVars._({required this.skipName}) : super._() { + BuiltValueNullFieldError.checkNotNull( + skipName, r'GHeroSkipVars', 'skipName'); + } + + @override + GHeroSkipVars rebuild(void Function(GHeroSkipVarsBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroSkipVarsBuilder toBuilder() => new GHeroSkipVarsBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroSkipVars && skipName == other.skipName; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, skipName.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroSkipVars') + ..add('skipName', skipName)) + .toString(); + } +} + +class GHeroSkipVarsBuilder + implements Builder { + _$GHeroSkipVars? _$v; + + bool? _skipName; + bool? get skipName => _$this._skipName; + set skipName(bool? skipName) => _$this._skipName = skipName; + + GHeroSkipVarsBuilder(); + + GHeroSkipVarsBuilder get _$this { + final $v = _$v; + if ($v != null) { + _skipName = $v.skipName; + _$v = null; + } + return this; + } + + @override + void replace(GHeroSkipVars other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroSkipVars; + } + + @override + void update(void Function(GHeroSkipVarsBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroSkipVars build() => _build(); + + _$GHeroSkipVars _build() { + final _$result = _$v ?? + new _$GHeroSkipVars._( + skipName: BuiltValueNullFieldError.checkNotNull( + skipName, r'GHeroSkipVars', 'skipName')); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip_fragment.ast.gql.dart b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip_fragment.ast.gql.dart new file mode 100644 index 00000000..1cbd4aaa --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip_fragment.ast.gql.dart @@ -0,0 +1,105 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:gql/ast.dart' as _i1; + +const HeroSkipFragment = _i1.OperationDefinitionNode( + type: _i1.OperationType.query, + name: _i1.NameNode(value: 'HeroSkipFragment'), + variableDefinitions: [ + _i1.VariableDefinitionNode( + variable: _i1.VariableNode(name: _i1.NameNode(value: 'skipDetails')), + type: _i1.NamedTypeNode( + name: _i1.NameNode(value: 'Boolean'), + isNonNull: true, + ), + defaultValue: _i1.DefaultValueNode(value: null), + directives: [], + ) + ], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'hero'), + alias: null, + arguments: [], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'id'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ), + _i1.FragmentSpreadNode( + name: _i1.NameNode(value: 'HeroDetail'), + directives: [ + _i1.DirectiveNode( + name: _i1.NameNode(value: 'skip'), + arguments: [ + _i1.ArgumentNode( + name: _i1.NameNode(value: 'if'), + value: _i1.VariableNode( + name: _i1.NameNode(value: 'skipDetails')), + ) + ], + ) + ], + ), + ]), + ) + ]), +); +const HeroDetail = _i1.FragmentDefinitionNode( + name: _i1.NameNode(value: 'HeroDetail'), + typeCondition: _i1.TypeConditionNode( + on: _i1.NamedTypeNode( + name: _i1.NameNode(value: 'Character'), + isNonNull: false, + )), + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'id'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ), + _i1.FieldNode( + name: _i1.NameNode(value: 'name'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ), + _i1.FieldNode( + name: _i1.NameNode(value: 'friends'), + alias: null, + arguments: [], + directives: [], + selectionSet: _i1.SelectionSetNode(selections: [ + _i1.FieldNode( + name: _i1.NameNode(value: 'id'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ), + _i1.FieldNode( + name: _i1.NameNode(value: 'name'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ), + ]), + ), + ]), +); +const document = _i1.DocumentNode(definitions: [ + HeroSkipFragment, + HeroDetail, +]); diff --git a/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip_fragment.data.gql.dart b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip_fragment.data.gql.dart new file mode 100644 index 00000000..b390c734 --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip_fragment.data.gql.dart @@ -0,0 +1,202 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_collection/built_collection.dart'; +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test_tristate/graphql/__generated__/serializers.gql.dart' + as _i1; + +part 'hero_skip_fragment.data.gql.g.dart'; + +abstract class GHeroSkipFragmentData + implements Built { + GHeroSkipFragmentData._(); + + factory GHeroSkipFragmentData( + [void Function(GHeroSkipFragmentDataBuilder b) updates]) = + _$GHeroSkipFragmentData; + + static void _initializeBuilder(GHeroSkipFragmentDataBuilder b) => + b..G__typename = 'Query'; + + @BuiltValueField(wireName: '__typename') + String get G__typename; + GHeroSkipFragmentData_hero? get hero; + static Serializer get serializer => + _$gHeroSkipFragmentDataSerializer; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroSkipFragmentData.serializer, + this, + ) as Map); + + static GHeroSkipFragmentData? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroSkipFragmentData.serializer, + json, + ); +} + +abstract class GHeroSkipFragmentData_hero + implements + Built, + GHeroDetail { + GHeroSkipFragmentData_hero._(); + + factory GHeroSkipFragmentData_hero( + [void Function(GHeroSkipFragmentData_heroBuilder b) updates]) = + _$GHeroSkipFragmentData_hero; + + static void _initializeBuilder(GHeroSkipFragmentData_heroBuilder b) => + b..G__typename = 'Character'; + + @override + @BuiltValueField(wireName: '__typename') + String get G__typename; + @override + String get id; + @override + String get name; + @override + BuiltList? get friends; + static Serializer get serializer => + _$gHeroSkipFragmentDataHeroSerializer; + + @override + Map toJson() => (_i1.serializers.serializeWith( + GHeroSkipFragmentData_hero.serializer, + this, + ) as Map); + + static GHeroSkipFragmentData_hero? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroSkipFragmentData_hero.serializer, + json, + ); +} + +abstract class GHeroSkipFragmentData_hero_friends + implements + Built, + GHeroDetail_friends { + GHeroSkipFragmentData_hero_friends._(); + + factory GHeroSkipFragmentData_hero_friends( + [void Function(GHeroSkipFragmentData_hero_friendsBuilder b) + updates]) = _$GHeroSkipFragmentData_hero_friends; + + static void _initializeBuilder(GHeroSkipFragmentData_hero_friendsBuilder b) => + b..G__typename = 'Character'; + + @override + @BuiltValueField(wireName: '__typename') + String get G__typename; + @override + String get id; + @override + String get name; + static Serializer get serializer => + _$gHeroSkipFragmentDataHeroFriendsSerializer; + + @override + Map toJson() => (_i1.serializers.serializeWith( + GHeroSkipFragmentData_hero_friends.serializer, + this, + ) as Map); + + static GHeroSkipFragmentData_hero_friends? fromJson( + Map json) => + _i1.serializers.deserializeWith( + GHeroSkipFragmentData_hero_friends.serializer, + json, + ); +} + +abstract class GHeroDetail { + String get G__typename; + String get id; + String get name; + BuiltList? get friends; + Map toJson(); +} + +abstract class GHeroDetail_friends { + String get G__typename; + String get id; + String get name; + Map toJson(); +} + +abstract class GHeroDetailData + implements Built, GHeroDetail { + GHeroDetailData._(); + + factory GHeroDetailData([void Function(GHeroDetailDataBuilder b) updates]) = + _$GHeroDetailData; + + static void _initializeBuilder(GHeroDetailDataBuilder b) => + b..G__typename = 'Character'; + + @override + @BuiltValueField(wireName: '__typename') + String get G__typename; + @override + String get id; + @override + String get name; + @override + BuiltList? get friends; + static Serializer get serializer => + _$gHeroDetailDataSerializer; + + @override + Map toJson() => (_i1.serializers.serializeWith( + GHeroDetailData.serializer, + this, + ) as Map); + + static GHeroDetailData? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroDetailData.serializer, + json, + ); +} + +abstract class GHeroDetailData_friends + implements + Built, + GHeroDetail_friends { + GHeroDetailData_friends._(); + + factory GHeroDetailData_friends( + [void Function(GHeroDetailData_friendsBuilder b) updates]) = + _$GHeroDetailData_friends; + + static void _initializeBuilder(GHeroDetailData_friendsBuilder b) => + b..G__typename = 'Character'; + + @override + @BuiltValueField(wireName: '__typename') + String get G__typename; + @override + String get id; + @override + String get name; + static Serializer get serializer => + _$gHeroDetailDataFriendsSerializer; + + @override + Map toJson() => (_i1.serializers.serializeWith( + GHeroDetailData_friends.serializer, + this, + ) as Map); + + static GHeroDetailData_friends? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroDetailData_friends.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip_fragment.data.gql.g.dart b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip_fragment.data.gql.g.dart new file mode 100644 index 00000000..4d7c0936 --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip_fragment.data.gql.g.dart @@ -0,0 +1,994 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_skip_fragment.data.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$gHeroSkipFragmentDataSerializer = + new _$GHeroSkipFragmentDataSerializer(); +Serializer _$gHeroSkipFragmentDataHeroSerializer = + new _$GHeroSkipFragmentData_heroSerializer(); +Serializer + _$gHeroSkipFragmentDataHeroFriendsSerializer = + new _$GHeroSkipFragmentData_hero_friendsSerializer(); +Serializer _$gHeroDetailDataSerializer = + new _$GHeroDetailDataSerializer(); +Serializer _$gHeroDetailDataFriendsSerializer = + new _$GHeroDetailData_friendsSerializer(); + +class _$GHeroSkipFragmentDataSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroSkipFragmentData, + _$GHeroSkipFragmentData + ]; + @override + final String wireName = 'GHeroSkipFragmentData'; + + @override + Iterable serialize( + Serializers serializers, GHeroSkipFragmentData object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + ]; + Object? value; + value = object.hero; + if (value != null) { + result + ..add('hero') + ..add(serializers.serialize(value, + specifiedType: const FullType(GHeroSkipFragmentData_hero))); + } + return result; + } + + @override + GHeroSkipFragmentData deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroSkipFragmentDataBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'hero': + result.hero.replace(serializers.deserialize(value, + specifiedType: const FullType(GHeroSkipFragmentData_hero))! + as GHeroSkipFragmentData_hero); + break; + } + } + + return result.build(); + } +} + +class _$GHeroSkipFragmentData_heroSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroSkipFragmentData_hero, + _$GHeroSkipFragmentData_hero + ]; + @override + final String wireName = 'GHeroSkipFragmentData_hero'; + + @override + Iterable serialize( + Serializers serializers, GHeroSkipFragmentData_hero object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + 'id', + serializers.serialize(object.id, specifiedType: const FullType(String)), + 'name', + serializers.serialize(object.name, specifiedType: const FullType(String)), + ]; + Object? value; + value = object.friends; + if (value != null) { + result + ..add('friends') + ..add(serializers.serialize(value, + specifiedType: const FullType(BuiltList, const [ + const FullType.nullable(GHeroSkipFragmentData_hero_friends) + ]))); + } + return result; + } + + @override + GHeroSkipFragmentData_hero deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroSkipFragmentData_heroBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'name': + result.name = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'friends': + result.friends.replace(serializers.deserialize(value, + specifiedType: const FullType(BuiltList, const [ + const FullType.nullable(GHeroSkipFragmentData_hero_friends) + ]))! as BuiltList); + break; + } + } + + return result.build(); + } +} + +class _$GHeroSkipFragmentData_hero_friendsSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroSkipFragmentData_hero_friends, + _$GHeroSkipFragmentData_hero_friends + ]; + @override + final String wireName = 'GHeroSkipFragmentData_hero_friends'; + + @override + Iterable serialize( + Serializers serializers, GHeroSkipFragmentData_hero_friends object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + 'id', + serializers.serialize(object.id, specifiedType: const FullType(String)), + 'name', + serializers.serialize(object.name, specifiedType: const FullType(String)), + ]; + + return result; + } + + @override + GHeroSkipFragmentData_hero_friends deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroSkipFragmentData_hero_friendsBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'name': + result.name = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + } + } + + return result.build(); + } +} + +class _$GHeroDetailDataSerializer + implements StructuredSerializer { + @override + final Iterable types = const [GHeroDetailData, _$GHeroDetailData]; + @override + final String wireName = 'GHeroDetailData'; + + @override + Iterable serialize(Serializers serializers, GHeroDetailData object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + 'id', + serializers.serialize(object.id, specifiedType: const FullType(String)), + 'name', + serializers.serialize(object.name, specifiedType: const FullType(String)), + ]; + Object? value; + value = object.friends; + if (value != null) { + result + ..add('friends') + ..add(serializers.serialize(value, + specifiedType: const FullType(BuiltList, + const [const FullType.nullable(GHeroDetailData_friends)]))); + } + return result; + } + + @override + GHeroDetailData deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroDetailDataBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'name': + result.name = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'friends': + result.friends.replace(serializers.deserialize(value, + specifiedType: const FullType(BuiltList, const [ + const FullType.nullable(GHeroDetailData_friends) + ]))! as BuiltList); + break; + } + } + + return result.build(); + } +} + +class _$GHeroDetailData_friendsSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GHeroDetailData_friends, + _$GHeroDetailData_friends + ]; + @override + final String wireName = 'GHeroDetailData_friends'; + + @override + Iterable serialize( + Serializers serializers, GHeroDetailData_friends object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + 'id', + serializers.serialize(object.id, specifiedType: const FullType(String)), + 'name', + serializers.serialize(object.name, specifiedType: const FullType(String)), + ]; + + return result; + } + + @override + GHeroDetailData_friends deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroDetailData_friendsBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'name': + result.name = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + } + } + + return result.build(); + } +} + +class _$GHeroSkipFragmentData extends GHeroSkipFragmentData { + @override + final String G__typename; + @override + final GHeroSkipFragmentData_hero? hero; + + factory _$GHeroSkipFragmentData( + [void Function(GHeroSkipFragmentDataBuilder)? updates]) => + (new GHeroSkipFragmentDataBuilder()..update(updates))._build(); + + _$GHeroSkipFragmentData._({required this.G__typename, this.hero}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroSkipFragmentData', 'G__typename'); + } + + @override + GHeroSkipFragmentData rebuild( + void Function(GHeroSkipFragmentDataBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroSkipFragmentDataBuilder toBuilder() => + new GHeroSkipFragmentDataBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroSkipFragmentData && + G__typename == other.G__typename && + hero == other.hero; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, hero.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroSkipFragmentData') + ..add('G__typename', G__typename) + ..add('hero', hero)) + .toString(); + } +} + +class GHeroSkipFragmentDataBuilder + implements Builder { + _$GHeroSkipFragmentData? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + GHeroSkipFragmentData_heroBuilder? _hero; + GHeroSkipFragmentData_heroBuilder get hero => + _$this._hero ??= new GHeroSkipFragmentData_heroBuilder(); + set hero(GHeroSkipFragmentData_heroBuilder? hero) => _$this._hero = hero; + + GHeroSkipFragmentDataBuilder() { + GHeroSkipFragmentData._initializeBuilder(this); + } + + GHeroSkipFragmentDataBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _hero = $v.hero?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(GHeroSkipFragmentData other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroSkipFragmentData; + } + + @override + void update(void Function(GHeroSkipFragmentDataBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroSkipFragmentData build() => _build(); + + _$GHeroSkipFragmentData _build() { + _$GHeroSkipFragmentData _$result; + try { + _$result = _$v ?? + new _$GHeroSkipFragmentData._( + G__typename: BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroSkipFragmentData', 'G__typename'), + hero: _hero?.build()); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'hero'; + _hero?.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroSkipFragmentData', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$GHeroSkipFragmentData_hero extends GHeroSkipFragmentData_hero { + @override + final String G__typename; + @override + final String id; + @override + final String name; + @override + final BuiltList? friends; + + factory _$GHeroSkipFragmentData_hero( + [void Function(GHeroSkipFragmentData_heroBuilder)? updates]) => + (new GHeroSkipFragmentData_heroBuilder()..update(updates))._build(); + + _$GHeroSkipFragmentData_hero._( + {required this.G__typename, + required this.id, + required this.name, + this.friends}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroSkipFragmentData_hero', 'G__typename'); + BuiltValueNullFieldError.checkNotNull( + id, r'GHeroSkipFragmentData_hero', 'id'); + BuiltValueNullFieldError.checkNotNull( + name, r'GHeroSkipFragmentData_hero', 'name'); + } + + @override + GHeroSkipFragmentData_hero rebuild( + void Function(GHeroSkipFragmentData_heroBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroSkipFragmentData_heroBuilder toBuilder() => + new GHeroSkipFragmentData_heroBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroSkipFragmentData_hero && + G__typename == other.G__typename && + id == other.id && + name == other.name && + friends == other.friends; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, id.hashCode); + _$hash = $jc(_$hash, name.hashCode); + _$hash = $jc(_$hash, friends.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroSkipFragmentData_hero') + ..add('G__typename', G__typename) + ..add('id', id) + ..add('name', name) + ..add('friends', friends)) + .toString(); + } +} + +class GHeroSkipFragmentData_heroBuilder + implements + Builder { + _$GHeroSkipFragmentData_hero? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + String? _id; + String? get id => _$this._id; + set id(String? id) => _$this._id = id; + + String? _name; + String? get name => _$this._name; + set name(String? name) => _$this._name = name; + + ListBuilder? _friends; + ListBuilder get friends => + _$this._friends ??= + new ListBuilder(); + set friends(ListBuilder? friends) => + _$this._friends = friends; + + GHeroSkipFragmentData_heroBuilder() { + GHeroSkipFragmentData_hero._initializeBuilder(this); + } + + GHeroSkipFragmentData_heroBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _id = $v.id; + _name = $v.name; + _friends = $v.friends?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(GHeroSkipFragmentData_hero other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroSkipFragmentData_hero; + } + + @override + void update(void Function(GHeroSkipFragmentData_heroBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroSkipFragmentData_hero build() => _build(); + + _$GHeroSkipFragmentData_hero _build() { + _$GHeroSkipFragmentData_hero _$result; + try { + _$result = _$v ?? + new _$GHeroSkipFragmentData_hero._( + G__typename: BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroSkipFragmentData_hero', 'G__typename'), + id: BuiltValueNullFieldError.checkNotNull( + id, r'GHeroSkipFragmentData_hero', 'id'), + name: BuiltValueNullFieldError.checkNotNull( + name, r'GHeroSkipFragmentData_hero', 'name'), + friends: _friends?.build()); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'friends'; + _friends?.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroSkipFragmentData_hero', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$GHeroSkipFragmentData_hero_friends + extends GHeroSkipFragmentData_hero_friends { + @override + final String G__typename; + @override + final String id; + @override + final String name; + + factory _$GHeroSkipFragmentData_hero_friends( + [void Function(GHeroSkipFragmentData_hero_friendsBuilder)? + updates]) => + (new GHeroSkipFragmentData_hero_friendsBuilder()..update(updates)) + ._build(); + + _$GHeroSkipFragmentData_hero_friends._( + {required this.G__typename, required this.id, required this.name}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroSkipFragmentData_hero_friends', 'G__typename'); + BuiltValueNullFieldError.checkNotNull( + id, r'GHeroSkipFragmentData_hero_friends', 'id'); + BuiltValueNullFieldError.checkNotNull( + name, r'GHeroSkipFragmentData_hero_friends', 'name'); + } + + @override + GHeroSkipFragmentData_hero_friends rebuild( + void Function(GHeroSkipFragmentData_hero_friendsBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroSkipFragmentData_hero_friendsBuilder toBuilder() => + new GHeroSkipFragmentData_hero_friendsBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroSkipFragmentData_hero_friends && + G__typename == other.G__typename && + id == other.id && + name == other.name; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, id.hashCode); + _$hash = $jc(_$hash, name.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroSkipFragmentData_hero_friends') + ..add('G__typename', G__typename) + ..add('id', id) + ..add('name', name)) + .toString(); + } +} + +class GHeroSkipFragmentData_hero_friendsBuilder + implements + Builder { + _$GHeroSkipFragmentData_hero_friends? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + String? _id; + String? get id => _$this._id; + set id(String? id) => _$this._id = id; + + String? _name; + String? get name => _$this._name; + set name(String? name) => _$this._name = name; + + GHeroSkipFragmentData_hero_friendsBuilder() { + GHeroSkipFragmentData_hero_friends._initializeBuilder(this); + } + + GHeroSkipFragmentData_hero_friendsBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _id = $v.id; + _name = $v.name; + _$v = null; + } + return this; + } + + @override + void replace(GHeroSkipFragmentData_hero_friends other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroSkipFragmentData_hero_friends; + } + + @override + void update( + void Function(GHeroSkipFragmentData_hero_friendsBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroSkipFragmentData_hero_friends build() => _build(); + + _$GHeroSkipFragmentData_hero_friends _build() { + final _$result = _$v ?? + new _$GHeroSkipFragmentData_hero_friends._( + G__typename: BuiltValueNullFieldError.checkNotNull(G__typename, + r'GHeroSkipFragmentData_hero_friends', 'G__typename'), + id: BuiltValueNullFieldError.checkNotNull( + id, r'GHeroSkipFragmentData_hero_friends', 'id'), + name: BuiltValueNullFieldError.checkNotNull( + name, r'GHeroSkipFragmentData_hero_friends', 'name')); + replace(_$result); + return _$result; + } +} + +class _$GHeroDetailData extends GHeroDetailData { + @override + final String G__typename; + @override + final String id; + @override + final String name; + @override + final BuiltList? friends; + + factory _$GHeroDetailData([void Function(GHeroDetailDataBuilder)? updates]) => + (new GHeroDetailDataBuilder()..update(updates))._build(); + + _$GHeroDetailData._( + {required this.G__typename, + required this.id, + required this.name, + this.friends}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroDetailData', 'G__typename'); + BuiltValueNullFieldError.checkNotNull(id, r'GHeroDetailData', 'id'); + BuiltValueNullFieldError.checkNotNull(name, r'GHeroDetailData', 'name'); + } + + @override + GHeroDetailData rebuild(void Function(GHeroDetailDataBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroDetailDataBuilder toBuilder() => + new GHeroDetailDataBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroDetailData && + G__typename == other.G__typename && + id == other.id && + name == other.name && + friends == other.friends; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, id.hashCode); + _$hash = $jc(_$hash, name.hashCode); + _$hash = $jc(_$hash, friends.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroDetailData') + ..add('G__typename', G__typename) + ..add('id', id) + ..add('name', name) + ..add('friends', friends)) + .toString(); + } +} + +class GHeroDetailDataBuilder + implements Builder { + _$GHeroDetailData? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + String? _id; + String? get id => _$this._id; + set id(String? id) => _$this._id = id; + + String? _name; + String? get name => _$this._name; + set name(String? name) => _$this._name = name; + + ListBuilder? _friends; + ListBuilder get friends => + _$this._friends ??= new ListBuilder(); + set friends(ListBuilder? friends) => + _$this._friends = friends; + + GHeroDetailDataBuilder() { + GHeroDetailData._initializeBuilder(this); + } + + GHeroDetailDataBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _id = $v.id; + _name = $v.name; + _friends = $v.friends?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(GHeroDetailData other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroDetailData; + } + + @override + void update(void Function(GHeroDetailDataBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroDetailData build() => _build(); + + _$GHeroDetailData _build() { + _$GHeroDetailData _$result; + try { + _$result = _$v ?? + new _$GHeroDetailData._( + G__typename: BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroDetailData', 'G__typename'), + id: BuiltValueNullFieldError.checkNotNull( + id, r'GHeroDetailData', 'id'), + name: BuiltValueNullFieldError.checkNotNull( + name, r'GHeroDetailData', 'name'), + friends: _friends?.build()); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'friends'; + _friends?.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroDetailData', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$GHeroDetailData_friends extends GHeroDetailData_friends { + @override + final String G__typename; + @override + final String id; + @override + final String name; + + factory _$GHeroDetailData_friends( + [void Function(GHeroDetailData_friendsBuilder)? updates]) => + (new GHeroDetailData_friendsBuilder()..update(updates))._build(); + + _$GHeroDetailData_friends._( + {required this.G__typename, required this.id, required this.name}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroDetailData_friends', 'G__typename'); + BuiltValueNullFieldError.checkNotNull(id, r'GHeroDetailData_friends', 'id'); + BuiltValueNullFieldError.checkNotNull( + name, r'GHeroDetailData_friends', 'name'); + } + + @override + GHeroDetailData_friends rebuild( + void Function(GHeroDetailData_friendsBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroDetailData_friendsBuilder toBuilder() => + new GHeroDetailData_friendsBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroDetailData_friends && + G__typename == other.G__typename && + id == other.id && + name == other.name; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, G__typename.hashCode); + _$hash = $jc(_$hash, id.hashCode); + _$hash = $jc(_$hash, name.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroDetailData_friends') + ..add('G__typename', G__typename) + ..add('id', id) + ..add('name', name)) + .toString(); + } +} + +class GHeroDetailData_friendsBuilder + implements + Builder { + _$GHeroDetailData_friends? _$v; + + String? _G__typename; + String? get G__typename => _$this._G__typename; + set G__typename(String? G__typename) => _$this._G__typename = G__typename; + + String? _id; + String? get id => _$this._id; + set id(String? id) => _$this._id = id; + + String? _name; + String? get name => _$this._name; + set name(String? name) => _$this._name = name; + + GHeroDetailData_friendsBuilder() { + GHeroDetailData_friends._initializeBuilder(this); + } + + GHeroDetailData_friendsBuilder get _$this { + final $v = _$v; + if ($v != null) { + _G__typename = $v.G__typename; + _id = $v.id; + _name = $v.name; + _$v = null; + } + return this; + } + + @override + void replace(GHeroDetailData_friends other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroDetailData_friends; + } + + @override + void update(void Function(GHeroDetailData_friendsBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroDetailData_friends build() => _build(); + + _$GHeroDetailData_friends _build() { + final _$result = _$v ?? + new _$GHeroDetailData_friends._( + G__typename: BuiltValueNullFieldError.checkNotNull( + G__typename, r'GHeroDetailData_friends', 'G__typename'), + id: BuiltValueNullFieldError.checkNotNull( + id, r'GHeroDetailData_friends', 'id'), + name: BuiltValueNullFieldError.checkNotNull( + name, r'GHeroDetailData_friends', 'name')); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip_fragment.req.gql.dart b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip_fragment.req.gql.dart new file mode 100644 index 00000000..f05c2794 --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip_fragment.req.gql.dart @@ -0,0 +1,46 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test_tristate/directives/__generated__/hero_skip_fragment.ast.gql.dart' + as _i2; +import 'package:end_to_end_test_tristate/directives/__generated__/hero_skip_fragment.var.gql.dart' + as _i3; +import 'package:end_to_end_test_tristate/graphql/__generated__/serializers.gql.dart' + as _i4; +import 'package:gql_exec/gql_exec.dart' as _i1; + +part 'hero_skip_fragment.req.gql.g.dart'; + +abstract class GHeroSkipFragment + implements Built { + GHeroSkipFragment._(); + + factory GHeroSkipFragment( + [void Function(GHeroSkipFragmentBuilder b) updates]) = + _$GHeroSkipFragment; + + static void _initializeBuilder(GHeroSkipFragmentBuilder b) => b + ..operation = _i1.Operation( + document: _i2.document, + operationName: 'HeroSkipFragment', + ); + + _i3.GHeroSkipFragmentVars get vars; + _i1.Operation get operation; + static Serializer get serializer => + _$gHeroSkipFragmentSerializer; + + Map toJson() => (_i4.serializers.serializeWith( + GHeroSkipFragment.serializer, + this, + ) as Map); + + static GHeroSkipFragment? fromJson(Map json) => + _i4.serializers.deserializeWith( + GHeroSkipFragment.serializer, + json, + ); +} diff --git a/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip_fragment.req.gql.g.dart b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip_fragment.req.gql.g.dart new file mode 100644 index 00000000..a72b4fca --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip_fragment.req.gql.g.dart @@ -0,0 +1,178 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_skip_fragment.req.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$gHeroSkipFragmentSerializer = + new _$GHeroSkipFragmentSerializer(); + +class _$GHeroSkipFragmentSerializer + implements StructuredSerializer { + @override + final Iterable types = const [GHeroSkipFragment, _$GHeroSkipFragment]; + @override + final String wireName = 'GHeroSkipFragment'; + + @override + Iterable serialize(Serializers serializers, GHeroSkipFragment object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + 'vars', + serializers.serialize(object.vars, + specifiedType: const FullType(_i3.GHeroSkipFragmentVars)), + 'operation', + serializers.serialize(object.operation, + specifiedType: const FullType(_i1.Operation)), + ]; + + return result; + } + + @override + GHeroSkipFragment deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GHeroSkipFragmentBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'vars': + result.vars.replace(serializers.deserialize(value, + specifiedType: const FullType(_i3.GHeroSkipFragmentVars))! + as _i3.GHeroSkipFragmentVars); + break; + case 'operation': + result.operation = serializers.deserialize(value, + specifiedType: const FullType(_i1.Operation))! as _i1.Operation; + break; + } + } + + return result.build(); + } +} + +class _$GHeroSkipFragment extends GHeroSkipFragment { + @override + final _i3.GHeroSkipFragmentVars vars; + @override + final _i1.Operation operation; + + factory _$GHeroSkipFragment( + [void Function(GHeroSkipFragmentBuilder)? updates]) => + (new GHeroSkipFragmentBuilder()..update(updates))._build(); + + _$GHeroSkipFragment._({required this.vars, required this.operation}) + : super._() { + BuiltValueNullFieldError.checkNotNull(vars, r'GHeroSkipFragment', 'vars'); + BuiltValueNullFieldError.checkNotNull( + operation, r'GHeroSkipFragment', 'operation'); + } + + @override + GHeroSkipFragment rebuild(void Function(GHeroSkipFragmentBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroSkipFragmentBuilder toBuilder() => + new GHeroSkipFragmentBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroSkipFragment && + vars == other.vars && + operation == other.operation; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, vars.hashCode); + _$hash = $jc(_$hash, operation.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroSkipFragment') + ..add('vars', vars) + ..add('operation', operation)) + .toString(); + } +} + +class GHeroSkipFragmentBuilder + implements Builder { + _$GHeroSkipFragment? _$v; + + _i3.GHeroSkipFragmentVarsBuilder? _vars; + _i3.GHeroSkipFragmentVarsBuilder get vars => + _$this._vars ??= new _i3.GHeroSkipFragmentVarsBuilder(); + set vars(_i3.GHeroSkipFragmentVarsBuilder? vars) => _$this._vars = vars; + + _i1.Operation? _operation; + _i1.Operation? get operation => _$this._operation; + set operation(_i1.Operation? operation) => _$this._operation = operation; + + GHeroSkipFragmentBuilder() { + GHeroSkipFragment._initializeBuilder(this); + } + + GHeroSkipFragmentBuilder get _$this { + final $v = _$v; + if ($v != null) { + _vars = $v.vars.toBuilder(); + _operation = $v.operation; + _$v = null; + } + return this; + } + + @override + void replace(GHeroSkipFragment other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroSkipFragment; + } + + @override + void update(void Function(GHeroSkipFragmentBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroSkipFragment build() => _build(); + + _$GHeroSkipFragment _build() { + _$GHeroSkipFragment _$result; + try { + _$result = _$v ?? + new _$GHeroSkipFragment._( + vars: vars.build(), + operation: BuiltValueNullFieldError.checkNotNull( + operation, r'GHeroSkipFragment', 'operation')); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'vars'; + vars.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'GHeroSkipFragment', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip_fragment.var.gql.dart b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip_fragment.var.gql.dart new file mode 100644 index 00000000..a7e7e7b1 --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip_fragment.var.gql.dart @@ -0,0 +1,125 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:end_to_end_test_tristate/graphql/__generated__/serializers.gql.dart' + as _i1; + +part 'hero_skip_fragment.var.gql.g.dart'; + +abstract class GHeroSkipFragmentVars + implements Built { + GHeroSkipFragmentVars._(); + + factory GHeroSkipFragmentVars( + [void Function(GHeroSkipFragmentVarsBuilder b) updates]) = + _$GHeroSkipFragmentVars; + + bool get skipDetails; + Map toJson() => (_i1.serializers.serializeWith( + GHeroSkipFragmentVars.serializer, + this, + ) as Map); + + static GHeroSkipFragmentVars? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroSkipFragmentVars.serializer, + json, + ); + + @BuiltValueSerializer(custom: true, serializeNulls: true) + static Serializer get serializer => + GHeroSkipFragmentVarsSerializer(); +} + +abstract class GHeroDetailVars + implements Built { + GHeroDetailVars._(); + + factory GHeroDetailVars([void Function(GHeroDetailVarsBuilder b) updates]) = + _$GHeroDetailVars; + + Map toJson() => (_i1.serializers.serializeWith( + GHeroDetailVars.serializer, + this, + ) as Map); + + static GHeroDetailVars? fromJson(Map json) => + _i1.serializers.deserializeWith( + GHeroDetailVars.serializer, + json, + ); + + @BuiltValueSerializer(custom: true, serializeNulls: true) + static Serializer get serializer => + GHeroDetailVarsSerializer(); +} + +final class GHeroSkipFragmentVarsSerializer + extends StructuredSerializer { + final String wireName = 'GHeroSkipFragmentVars'; + + final Iterable types = const [ + GHeroSkipFragmentVars, + _$GHeroSkipFragmentVars + ]; + + Iterable serialize( + Serializers serializers, + GHeroSkipFragmentVars object, { + FullType specifiedType = FullType.unspecified, + }) { + final result = []; + result.add('skipDetails'); + result.add(serializers.serialize(object.skipDetails, + specifiedType: const FullType(bool))); + return result; + } + + GHeroSkipFragmentVars deserialize( + Serializers serializers, + Iterable serialized, { + FullType specifiedType = FullType.unspecified, + }) { + final builder = GHeroSkipFragmentVarsBuilder(); + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'skipDetails': + var _$fieldValue = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + builder.skipDetails = _$fieldValue; + break; + } + } + return builder.build(); + } +} + +final class GHeroDetailVarsSerializer + extends StructuredSerializer { + final String wireName = 'GHeroDetailVars'; + + final Iterable types = const [GHeroDetailVars, _$GHeroDetailVars]; + + Iterable serialize( + Serializers serializers, + GHeroDetailVars object, { + FullType specifiedType = FullType.unspecified, + }) { + return const []; + } + + GHeroDetailVars deserialize( + Serializers serializers, + Iterable serialized, { + FullType specifiedType = FullType.unspecified, + }) { + return GHeroDetailVars(); + } +} diff --git a/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip_fragment.var.gql.g.dart b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip_fragment.var.gql.g.dart new file mode 100644 index 00000000..269083c0 --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/__generated__/hero_skip_fragment.var.gql.g.dart @@ -0,0 +1,154 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'hero_skip_fragment.var.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +class _$GHeroSkipFragmentVars extends GHeroSkipFragmentVars { + @override + final bool skipDetails; + + factory _$GHeroSkipFragmentVars( + [void Function(GHeroSkipFragmentVarsBuilder)? updates]) => + (new GHeroSkipFragmentVarsBuilder()..update(updates))._build(); + + _$GHeroSkipFragmentVars._({required this.skipDetails}) : super._() { + BuiltValueNullFieldError.checkNotNull( + skipDetails, r'GHeroSkipFragmentVars', 'skipDetails'); + } + + @override + GHeroSkipFragmentVars rebuild( + void Function(GHeroSkipFragmentVarsBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroSkipFragmentVarsBuilder toBuilder() => + new GHeroSkipFragmentVarsBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroSkipFragmentVars && skipDetails == other.skipDetails; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, skipDetails.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'GHeroSkipFragmentVars') + ..add('skipDetails', skipDetails)) + .toString(); + } +} + +class GHeroSkipFragmentVarsBuilder + implements Builder { + _$GHeroSkipFragmentVars? _$v; + + bool? _skipDetails; + bool? get skipDetails => _$this._skipDetails; + set skipDetails(bool? skipDetails) => _$this._skipDetails = skipDetails; + + GHeroSkipFragmentVarsBuilder(); + + GHeroSkipFragmentVarsBuilder get _$this { + final $v = _$v; + if ($v != null) { + _skipDetails = $v.skipDetails; + _$v = null; + } + return this; + } + + @override + void replace(GHeroSkipFragmentVars other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroSkipFragmentVars; + } + + @override + void update(void Function(GHeroSkipFragmentVarsBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroSkipFragmentVars build() => _build(); + + _$GHeroSkipFragmentVars _build() { + final _$result = _$v ?? + new _$GHeroSkipFragmentVars._( + skipDetails: BuiltValueNullFieldError.checkNotNull( + skipDetails, r'GHeroSkipFragmentVars', 'skipDetails')); + replace(_$result); + return _$result; + } +} + +class _$GHeroDetailVars extends GHeroDetailVars { + factory _$GHeroDetailVars([void Function(GHeroDetailVarsBuilder)? updates]) => + (new GHeroDetailVarsBuilder()..update(updates))._build(); + + _$GHeroDetailVars._() : super._(); + + @override + GHeroDetailVars rebuild(void Function(GHeroDetailVarsBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + GHeroDetailVarsBuilder toBuilder() => + new GHeroDetailVarsBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GHeroDetailVars; + } + + @override + int get hashCode { + return 140740630; + } + + @override + String toString() { + return newBuiltValueToStringHelper(r'GHeroDetailVars').toString(); + } +} + +class GHeroDetailVarsBuilder + implements Builder { + _$GHeroDetailVars? _$v; + + GHeroDetailVarsBuilder(); + + @override + void replace(GHeroDetailVars other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$GHeroDetailVars; + } + + @override + void update(void Function(GHeroDetailVarsBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GHeroDetailVars build() => _build(); + + _$GHeroDetailVars _build() { + final _$result = _$v ?? new _$GHeroDetailVars._(); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/codegen/end_to_end_test_tristate/lib/directives/hero_include.graphql b/codegen/end_to_end_test_tristate/lib/directives/hero_include.graphql new file mode 100644 index 00000000..b0ed5d08 --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/hero_include.graphql @@ -0,0 +1,6 @@ +query HeroInclude($includeId: Boolean!) { + hero { + id @include(if: $includeId) + name + } +} diff --git a/codegen/end_to_end_test_tristate/lib/directives/hero_skip.graphql b/codegen/end_to_end_test_tristate/lib/directives/hero_skip.graphql new file mode 100644 index 00000000..9135240c --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/hero_skip.graphql @@ -0,0 +1,6 @@ +query HeroSkip($skipName: Boolean!) { + hero { + id + name @skip(if: $skipName) + } +} diff --git a/codegen/end_to_end_test_tristate/lib/directives/hero_skip_fragment.graphql b/codegen/end_to_end_test_tristate/lib/directives/hero_skip_fragment.graphql new file mode 100644 index 00000000..c1257d3a --- /dev/null +++ b/codegen/end_to_end_test_tristate/lib/directives/hero_skip_fragment.graphql @@ -0,0 +1,15 @@ +query HeroSkipFragment($skipDetails: Boolean!) { + hero { + id + ...HeroDetail @skip(if: $skipDetails) + } +} + +fragment HeroDetail on Character { + id + name + friends { + id + name + } +} diff --git a/codegen/end_to_end_test_tristate/lib/graphql/__generated__/serializers.gql.dart b/codegen/end_to_end_test_tristate/lib/graphql/__generated__/serializers.gql.dart index 15090df8..e4f282bc 100644 --- a/codegen/end_to_end_test_tristate/lib/graphql/__generated__/serializers.gql.dart +++ b/codegen/end_to_end_test_tristate/lib/graphql/__generated__/serializers.gql.dart @@ -28,6 +28,29 @@ import 'package:end_to_end_test_tristate/custom_field_serializer.dart' show CustomFieldSerializer; import 'package:end_to_end_test_tristate/date_serializer.dart' show DateSerializer; +import 'package:end_to_end_test_tristate/directives/__generated__/hero_include.data.gql.dart' + show GHeroIncludeData, GHeroIncludeData_hero; +import 'package:end_to_end_test_tristate/directives/__generated__/hero_include.req.gql.dart' + show GHeroInclude; +import 'package:end_to_end_test_tristate/directives/__generated__/hero_include.var.gql.dart' + show GHeroIncludeVars; +import 'package:end_to_end_test_tristate/directives/__generated__/hero_skip.data.gql.dart' + show GHeroSkipData, GHeroSkipData_hero; +import 'package:end_to_end_test_tristate/directives/__generated__/hero_skip.req.gql.dart' + show GHeroSkip; +import 'package:end_to_end_test_tristate/directives/__generated__/hero_skip.var.gql.dart' + show GHeroSkipVars; +import 'package:end_to_end_test_tristate/directives/__generated__/hero_skip_fragment.data.gql.dart' + show + GHeroDetailData, + GHeroDetailData_friends, + GHeroSkipFragmentData, + GHeroSkipFragmentData_hero, + GHeroSkipFragmentData_hero_friends; +import 'package:end_to_end_test_tristate/directives/__generated__/hero_skip_fragment.req.gql.dart' + show GHeroSkipFragment; +import 'package:end_to_end_test_tristate/directives/__generated__/hero_skip_fragment.var.gql.dart' + show GHeroDetailVars, GHeroSkipFragmentVars; import 'package:end_to_end_test_tristate/fragments/__generated__/fragment_with_scalar_var.data.gql.dart' show GPostFragmentForUser1Data, @@ -177,6 +200,9 @@ final SerializersBuilder _serializersBuilder = _$serializers.toBuilder() GDroidFragmentData, GDroidFragmentVars, GEpisode, + GHeroDetailData, + GHeroDetailData_friends, + GHeroDetailVars, GHeroForEpisode, GHeroForEpisodeData, GHeroForEpisodeData_hero__asDroid, @@ -184,10 +210,23 @@ final SerializersBuilder _serializersBuilder = _$serializers.toBuilder() GHeroForEpisodeData_hero__base, GHeroForEpisodeData_hero__base_friends, GHeroForEpisodeVars, + GHeroInclude, + GHeroIncludeData, + GHeroIncludeData_hero, + GHeroIncludeVars, GHeroNoVars, GHeroNoVarsData, GHeroNoVarsData_hero, GHeroNoVarsVars, + GHeroSkip, + GHeroSkipData, + GHeroSkipData_hero, + GHeroSkipFragment, + GHeroSkipFragmentData, + GHeroSkipFragmentData_hero, + GHeroSkipFragmentData_hero_friends, + GHeroSkipFragmentVars, + GHeroSkipVars, GHeroWith2Fragments, GHeroWith2FragmentsData, GHeroWith2FragmentsData_hero, diff --git a/codegen/end_to_end_test_tristate/lib/graphql/__generated__/serializers.gql.g.dart b/codegen/end_to_end_test_tristate/lib/graphql/__generated__/serializers.gql.g.dart index 86cbb01f..a17f20a3 100644 --- a/codegen/end_to_end_test_tristate/lib/graphql/__generated__/serializers.gql.g.dart +++ b/codegen/end_to_end_test_tristate/lib/graphql/__generated__/serializers.gql.g.dart @@ -24,6 +24,9 @@ Serializers _$serializers = (new Serializers().toBuilder() ..add(GDroidFragmentData.serializer) ..add(GDroidFragmentVars.serializer) ..add(GEpisode.serializer) + ..add(GHeroDetailData.serializer) + ..add(GHeroDetailData_friends.serializer) + ..add(GHeroDetailVars.serializer) ..add(GHeroForEpisode.serializer) ..add(GHeroForEpisodeData.serializer) ..add(GHeroForEpisodeData_hero__asDroid.serializer) @@ -31,10 +34,23 @@ Serializers _$serializers = (new Serializers().toBuilder() ..add(GHeroForEpisodeData_hero__base.serializer) ..add(GHeroForEpisodeData_hero__base_friends.serializer) ..add(GHeroForEpisodeVars.serializer) + ..add(GHeroInclude.serializer) + ..add(GHeroIncludeData.serializer) + ..add(GHeroIncludeData_hero.serializer) + ..add(GHeroIncludeVars.serializer) ..add(GHeroNoVars.serializer) ..add(GHeroNoVarsData.serializer) ..add(GHeroNoVarsData_hero.serializer) ..add(GHeroNoVarsVars.serializer) + ..add(GHeroSkip.serializer) + ..add(GHeroSkipData.serializer) + ..add(GHeroSkipData_hero.serializer) + ..add(GHeroSkipFragment.serializer) + ..add(GHeroSkipFragmentData.serializer) + ..add(GHeroSkipFragmentData_hero.serializer) + ..add(GHeroSkipFragmentData_hero_friends.serializer) + ..add(GHeroSkipFragmentVars.serializer) + ..add(GHeroSkipVars.serializer) ..add(GHeroWith2Fragments.serializer) ..add(GHeroWith2FragmentsData.serializer) ..add(GHeroWith2FragmentsData_hero.serializer) @@ -119,6 +135,10 @@ Serializers _$serializers = (new Serializers().toBuilder() ..addBuilderFactory( const FullType(BuiltList, const [const FullType.nullable(GEpisode)]), () => new ListBuilder()) + ..addBuilderFactory( + const FullType(BuiltList, + const [const FullType.nullable(GHeroDetailData_friends)]), + () => new ListBuilder()) ..addBuilderFactory( const FullType(BuiltList, const [ const FullType.nullable(GHeroForEpisodeData_hero__asDroid_friends) @@ -129,6 +149,11 @@ Serializers _$serializers = (new Serializers().toBuilder() const FullType.nullable(GHeroForEpisodeData_hero__base_friends) ]), () => new ListBuilder()) + ..addBuilderFactory( + const FullType(BuiltList, const [ + const FullType.nullable(GHeroSkipFragmentData_hero_friends) + ]), + () => new ListBuilder()) ..addBuilderFactory( const FullType(BuiltList, const [ const FullType.nullable( diff --git a/codegen/gql_code_builder/lib/src/common.dart b/codegen/gql_code_builder/lib/src/common.dart index 4197daf4..2a5ffe6f 100644 --- a/codegen/gql_code_builder/lib/src/common.dart +++ b/codegen/gql_code_builder/lib/src/common.dart @@ -88,7 +88,11 @@ const defaultTypeMap = { "Boolean": Reference("bool"), }; -Reference _typeRef(TypeNode type, Map typeMap) { +Reference _typeRef( + TypeNode type, + Map typeMap, + bool forceNullable, +) { if (type is NamedTypeNode) { final ref = typeMap[type.name.value] ?? Reference(type.name.value); assert(ref.symbol != null, "Symbol for ${ref} must not be null"); @@ -96,15 +100,15 @@ Reference _typeRef(TypeNode type, Map typeMap) { (b) => b ..url = ref.url ..symbol = ref.symbol - ..isNullable = !type.isNonNull, + ..isNullable = forceNullable || !type.isNonNull, ); } else if (type is ListTypeNode) { return TypeReference( (b) => b ..url = "package:built_collection/built_collection.dart" ..symbol = "BuiltList" - ..isNullable = !type.isNonNull - ..types.add(_typeRef(type.type, typeMap)), + ..isNullable = forceNullable || !type.isNonNull + ..types.add(_typeRef(type.type, typeMap, false)), ); } throw Exception("Unrecognized TypeNode type"); @@ -142,6 +146,7 @@ Method buildGetter({ String? typeRefPrefix, bool built = true, bool isOverride = false, + bool forceNullable = false, }) { final unwrappedTypeNode = unwrapTypeNode(typeNode); final typeName = unwrappedTypeNode.name.value; @@ -164,10 +169,7 @@ Method buildGetter({ ...typeOverrides, }; - final returnType = _typeRef( - typeNode, - typeMap, - ); + final returnType = _typeRef(typeNode, typeMap, forceNullable); return Method( (b) => b diff --git a/codegen/gql_code_builder/lib/src/inline_fragment_classes.dart b/codegen/gql_code_builder/lib/src/inline_fragment_classes.dart index 37fe603c..b1115b61 100644 --- a/codegen/gql_code_builder/lib/src/inline_fragment_classes.dart +++ b/codegen/gql_code_builder/lib/src/inline_fragment_classes.dart @@ -19,6 +19,7 @@ List buildInlineFragmentClasses({ required List fieldGetters, required List selections, required SourceNode schemaSource, + required SourceNode documentSource, required String type, required Map typeOverrides, required Map fragmentMap, @@ -73,6 +74,7 @@ List buildInlineFragmentClasses({ fragmentMap: fragmentMap, dataClassAliasMap: dataClassAliasMap, schemaSource: schemaSource, + docSource: documentSource, type: type, typeOverrides: typeOverrides, superclassSelections: { @@ -109,6 +111,7 @@ List buildInlineFragmentClasses({ fragmentMap: fragmentMap, dataClassAliasMap: dataClassAliasMap, schemaSource: schemaSource, + docSource: documentSource, type: inlineFragment.typeCondition!.on.name.value, typeOverrides: typeOverrides, superclassSelections: { diff --git a/codegen/gql_code_builder/lib/src/operation/data.dart b/codegen/gql_code_builder/lib/src/operation/data.dart index e8fea5ab..7144695f 100644 --- a/codegen/gql_code_builder/lib/src/operation/data.dart +++ b/codegen/gql_code_builder/lib/src/operation/data.dart @@ -1,6 +1,8 @@ import "package:code_builder/code_builder.dart"; import "package:collection/collection.dart"; + import "package:gql/ast.dart"; + import "package:gql_code_builder/src/config/when_extension_config.dart"; import "../../source.dart"; @@ -21,6 +23,24 @@ List buildOperationDataClasses( throw Exception("Operations must be named"); } + final fragmentMap = _fragmentMap(docSource); + + final collectedFields = collectFields( + docSource, + schemaSource, + getTypeDefinitionNode( + schemaSource.flatDocument, + _operationType( + schemaSource.document, + op, + ), + )!, + op.selectionSet.selections, + {}, + ); + + final mergedFields = mergeWithSkipsOrIncludes(collectedFields); + return buildSelectionSetDataClasses( name: "${op.name!.value}Data", selections: mergeSelections( @@ -28,6 +48,7 @@ List buildOperationDataClasses( fragmentMap, ), schemaSource: schemaSource, + docSource: docSource, type: _operationType( schemaSource.document, op, @@ -59,6 +80,7 @@ List buildFragmentDataClasses( name: frag.name.value, selections: selections, schemaSource: schemaSource, + docSource: docSource, type: frag.typeCondition.on.name.value, typeOverrides: typeOverrides, fragmentMap: fragmentMap, @@ -72,6 +94,7 @@ List buildFragmentDataClasses( name: "${frag.name.value}Data", selections: selections, schemaSource: schemaSource, + docSource: docSource, type: frag.typeCondition.on.name.value, typeOverrides: typeOverrides, fragmentMap: fragmentMap, @@ -104,6 +127,16 @@ String _operationType( .value; } +Map _fragmentMap(SourceNode source) => { + for (final def + in source.document.definitions.whereType()) + def.name.value: SourceSelections( + url: source.url, + selections: def.selectionSet.selections, + ), + for (final import in source.imports) ..._fragmentMap(import) + }; + /// Builds one or more data classes, with properties based on [selections]. /// /// For each selection that is a field with nested selections, a descendent @@ -117,6 +150,7 @@ List buildSelectionSetDataClasses({ required String name, required List selections, required SourceNode schemaSource, + required SourceNode docSource, required String type, required Map typeOverrides, required Map fragmentMap, @@ -125,6 +159,7 @@ List buildSelectionSetDataClasses({ bool built = true, required InlineFragmentSpreadWhenExtensionConfig whenExtensionConfig, }) { + for (final selection in selections.whereType()) { if (!fragmentMap.containsKey(selection.name.value)) { throw Exception( @@ -139,6 +174,19 @@ List buildSelectionSetDataClasses({ ); } + final fields = collectFields(docSource, schemaSource, + getTypeDefinitionNode(schemaSource.flatDocument, type)!, selections, {}); + + final mergedFields = mergeWithSkipsOrIncludes(fields); + + + if(fields.values.any((element) => element.any((element) => element.hasSkipOrInlcude))) { + print("has skip or include"); + print("$name \n $fields \n\n $mergedFields"); + } + + + final superclassSelectionNodes = superclassSelections.values .expand((selections) => selections.selections) .toSet(); @@ -154,6 +202,10 @@ List buildSelectionSetDataClasses({ typeDef, node.name.value, ); + final hasSkipOrInclude = node.directives.any( + (directive) => + directive.name.value == "skip" || directive.name.value == "include", + ); return buildGetter( nameNode: nameNode, typeNode: typeNode, @@ -164,6 +216,7 @@ List buildSelectionSetDataClasses({ typeRefPrefix: node.selectionSet != null ? builtClassName(name) : null, built: built, isOverride: superclassSelectionNodes.contains(node), + forceNullable: hasSkipOrInclude, ); }, ).toList(); @@ -177,6 +230,7 @@ List buildSelectionSetDataClasses({ fieldGetters: fieldGetters, selections: selections, schemaSource: schemaSource, + documentSource: docSource, type: type, typeOverrides: typeOverrides, fragmentMap: fragmentMap, @@ -238,6 +292,7 @@ List buildSelectionSetDataClasses({ fragmentMap: fragmentMap, dataClassAliasMap: dataClassAliasMap, schemaSource: schemaSource, + docSource: docSource, type: unwrapTypeNode( _getFieldTypeNode( getTypeDefinitionNode( @@ -459,3 +514,169 @@ TypeNode _getFieldTypeNode( ) .type; } + +typedef FieldNodeWithSkipOrInclude = ({FieldNode fieldNode, bool hasSkipOrInlcude}); + +//https://spec.graphql.org/draft/#CollectFields() +Map> collectFields( + SourceNode document, + SourceNode schema, + TypeDefinitionNode objectType, + List selectionSet, + Set visitedFragments, +) { + + if(visitedFragments.isEmpty || true) { + print("collectFields: ${document.url} ${selectionSet}"); + } + + //Initialize groupedFields to an empty ordered map of lists. + final groupedFields = >{}; + //For each selection in selectionSet: + for (final selection in selectionSet) { + final isSelectionSkipped = selection.directives.any( + (directive) => const {"skip", "include"}.contains(directive.name.value), + ); + + //If the selection is a field: + if (selection is FieldNode) { + + //Append the field to groupedFields under the response name of the aliased field or the field name. + groupedFields + .putIfAbsent( + selection.alias?.value ?? selection.name.value, () => []) + .add((fieldNode: selection, hasSkipOrInlcude: isSelectionSkipped)); + + } + //If the selection is an inline fragment: + else if (selection is InlineFragmentNode) { + //Let fragmentType be the type condition on selection. + final fragmentType = selection.typeCondition; + //If fragmentType is not null and DoesFragmentTypeApply(objectType, fragmentType) is false, continue with the next selection in selectionSet. + if (fragmentType != null && + !doesFragmentTypeApply( + objectType, fragmentType, schema.flatDocument)) { + print("fragmentType is not null and DoesFragmentTypeApply(objectType, fragmentType) is false, continue with the next selection in selectionSet."); + continue; + } + //Let fragmentSelectionSet be the top-level selection set of selection. + final fragmentSelectionSet = selection.selectionSet; + //Let fragmentGroupedFieldSet be the result of calling CollectFields(objectType, fragmentSelectionSet, variableValues, visitedFragments). + final fragmentGroupedFieldSet = collectFields(document, schema, + objectType, fragmentSelectionSet.selections, visitedFragments); + //For each fragmentGroup in fragmentGroupedFieldSet: + for (final fragmentGroup in fragmentGroupedFieldSet.entries) { + //Let responseKey be the response key shared by all fields in fragmentGroup. + final responseKey = fragmentGroup.key; + //Let groupForResponseKey be the list in groupedFields for responseKey; if no such list exists, create it as an empty list. + final groupForResponseKey = + groupedFields.putIfAbsent(responseKey, () => []); + //Append all items in fragmentGroup to groupForResponseKey. + groupForResponseKey.addAll(fragmentGroup.value.map((e) => (fieldNode: e.fieldNode, hasSkipOrInlcude: isSelectionSkipped || e.hasSkipOrInlcude))); + } + + } + + //If the selection is a fragment spread: + else if (selection is FragmentSpreadNode) { + //Let fragmentSpreadName be the name of selection. + final fragmentSpreadName = selection.name.value; + //If fragmentSpreadName is in visitedFragments, continue with the next selection in selectionSet. + if (visitedFragments.contains(fragmentSpreadName)) { + continue; + } + //Add fragmentSpreadName to visitedFragments. + visitedFragments.add(fragmentSpreadName); + //Let fragment be the Fragment in the current Document whose name is fragmentSpreadName. + final fragment = document.flatDocument.definitions.firstWhereOrNull( + (definition) => + definition is FragmentDefinitionNode && + definition.name.value == fragmentSpreadName) + as FragmentDefinitionNode?; + //If no such fragment exists, continue with the next selection in selectionSet. + if (fragment == null) { + continue; + } + //Let fragmentType be the type condition on fragment. + final fragmentType = fragment.typeCondition; + //If DoesFragmentTypeApply(objectType, fragmentType) is false, continue with the next selection in selectionSet. + if (!doesFragmentTypeApply( + objectType, fragmentType, schema.flatDocument)) { + print("DoesFragmentTypeApply(objectType, fragmentType) is false, continue with the next selection in selectionSet."); + continue; + } + //Let fragmentSelectionSet be the top-level selection set of fragment. + final fragmentSelectionSet = fragment.selectionSet; + //Let fragmentGroupedFieldSet be the result of calling CollectFields(objectType, fragmentSelectionSet, variableValues, visitedFragments). + final fragmentGroupedFieldSet = collectFields(document, schema, + objectType, fragmentSelectionSet.selections, visitedFragments); + //For each fragmentGroup in fragmentGroupedFieldSet: + for (final fragmentGroup in fragmentGroupedFieldSet.entries) { + //Let responseKey be the response key shared by all fields in fragmentGroup. + final responseKey = fragmentGroup.key; + //Let groupForResponseKey be the list in groupedFields for responseKey; if no such list exists, create it as an empty list. + final groupForResponseKey = + groupedFields.putIfAbsent(responseKey, () => []); + //Append all items in fragmentGroup to groupForResponseKey. + groupForResponseKey.addAll(fragmentGroup.value.map((e) => (fieldNode: e.fieldNode, hasSkipOrInlcude: isSelectionSkipped || e.hasSkipOrInlcude))); + } + } + } + //Return groupedFields. + return groupedFields; +} + +/// detects field nodes with the same response key, and merges them into one +/// considering skip and include directives; +/// if a field node has skip or include directive on all of its selections, +/// it is potentially skipped and must be made nullable +Map> mergeWithSkipsOrIncludes( + Map> groupedFields, +) { + +final result = >{}; + + for (final group in groupedFields.entries) { + final responseKey = group.key; + final fields = group.value; + + //group fields by alias or name and merge them + final merged = + fields.groupFoldBy((element) => element.fieldNode.alias?.value ?? element.fieldNode.name.value, (previous, element) { + if(previous == null) { + return element; + } + if(element.hasSkipOrInlcude) { + print("gggggg \n previous: $previous, element: $element merge!"); + } + return (fieldNode: element.fieldNode, hasSkipOrInlcude: previous.hasSkipOrInlcude && element.hasSkipOrInlcude); + }); + + result[responseKey] = merged.values.toList(); + +} + + return result; + } + +//https://spec.graphql.org/draft/#DoesFragmentTypeApply() +bool doesFragmentTypeApply(TypeDefinitionNode objectType, + TypeConditionNode fragmentConditionType, DocumentNode schema) { + final fragmentType = schema.definitions.firstWhereOrNull((definition) => + definition is TypeDefinitionNode && + definition.name.value == fragmentConditionType.on.name.value) + as TypeDefinitionNode?; + + if (fragmentType is UnionTypeDefinitionNode) { + return fragmentType.types + .any((type) => type.name.value == objectType.name.value); + } else if (fragmentType is InterfaceTypeDefinitionNode) { + return objectType is ObjectTypeDefinitionNode && + objectType.interfaces + .any((type) => type.name.value == fragmentType.name.value); + } else if (fragmentType is ObjectTypeDefinitionNode) { + return objectType.name.value == fragmentType.name.value; + } else { + throw Exception("Unknown fragment type ${fragmentType.runtimeType}"); + } +} diff --git a/gql/lib/src/ast/ast.dart b/gql/lib/src/ast/ast.dart index 1662fae0..6875ae6c 100644 --- a/gql/lib/src/ast/ast.dart +++ b/gql/lib/src/ast/ast.dart @@ -169,6 +169,8 @@ class SelectionSetNode extends Node { abstract class SelectionNode extends Node { const SelectionNode(FileSpan? span) : super(span); + + List get directives; } class FieldNode extends SelectionNode { @@ -178,6 +180,7 @@ class FieldNode extends SelectionNode { final List arguments; + @override final List directives; final SelectionSetNode? selectionSet; @@ -228,6 +231,7 @@ class ArgumentNode extends Node { class FragmentSpreadNode extends SelectionNode { final NameNode name; + @override final List directives; const FragmentSpreadNode({ @@ -249,6 +253,7 @@ class FragmentSpreadNode extends SelectionNode { class InlineFragmentNode extends SelectionNode { final TypeConditionNode? typeCondition; + @override final List directives; final SelectionSetNode selectionSet;