Skip to content

Commit dd5ce0a

Browse files
committed
Remove (default) first option on `ConnectionType
Since the EdgeTypeResolver does not define a default first value anymore, there is no need for a `first` option on ConnectionType.
1 parent f9531b4 commit dd5ce0a

File tree

9 files changed

+17
-26
lines changed

9 files changed

+17
-26
lines changed

src/Attribute/Option/ConnectionType.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,5 @@
1111
*/
1212
public function __construct(
1313
public string $edgeType,
14-
public int $first = 10,
1514
) {}
1615
}

src/Node/TypeReference/ConnectionTypeReference.php

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
/**
88
* @phpstan-type ConnectionReferencePayload array{
99
* className: class-string,
10-
* first: int,
1110
* isValueNullable: bool
1211
* }
1312
*
@@ -22,7 +21,6 @@ final class ConnectionTypeReference implements TypeReference
2221
*/
2322
public function __construct(
2423
public readonly string $className,
25-
public readonly int $first,
2624
bool $isValueNullable,
2725
) {
2826
$this->isValueNullable = $isValueNullable;
@@ -31,9 +29,9 @@ public function __construct(
3129
/**
3230
* @param class-string $className
3331
*/
34-
public static function create(string $className, int $first): self
32+
public static function create(string $className): self
3533
{
36-
return new self($className, $first, false);
34+
return new self($className, false);
3735
}
3836

3937
/**
@@ -43,7 +41,6 @@ public function toArray(): array
4341
{
4442
return [
4543
'className' => $this->className,
46-
'first' => $this->first,
4744
'isValueNullable' => $this->isValueNullable(),
4845
];
4946
}
@@ -55,7 +52,6 @@ public static function fromArray(array $payload): ConnectionTypeReference
5552
{
5653
return new self(
5754
$payload['className'],
58-
$payload['first'],
5955
$payload['isValueNullable'],
6056
);
6157
}
@@ -64,7 +60,6 @@ public function equals(TypeReference $reference): bool
6460
{
6561
return $reference instanceof self
6662
&& $reference->className === $this->className
67-
&& $reference->first === $this->first
6863
&& $reference->isValueNullable === $this->isValueNullable;
6964
}
7065
}

src/NodeParser/TypeReferenceDecider.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public function getTypeReference(?ReflectionType $reflectionType, ?TypedAttribut
4040
$attributeType = $attribute->getType();
4141

4242
if ($attributeType instanceof ConnectionType) {
43-
return ConnectionTypeReference::create($attributeType->edgeType, $attributeType->first);
43+
return ConnectionTypeReference::create($attributeType->edgeType);
4444
}
4545

4646
if ($attributeType instanceof ListType) {
@@ -65,7 +65,7 @@ public function getTypeReference(?ReflectionType $reflectionType, ?TypedAttribut
6565

6666
if ($attributeType instanceof NullableType) {
6767
if ($attributeType->type instanceof ConnectionType) {
68-
return ConnectionTypeReference::create($attributeType->type->edgeType, $attributeType->type->first)
68+
return ConnectionTypeReference::create($attributeType->type->edgeType)
6969
->setNullableValue();
7070
}
7171

tests/Node/TypeReference/ConnectionTypeReferenceTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ final class ConnectionTypeReferenceTest extends TestCase
1717
#[Test]
1818
public function itShouldCreateBaseObject(): void
1919
{
20-
$reference = ConnectionTypeReference::create(stdClass::class, 10);
20+
$reference = ConnectionTypeReference::create(stdClass::class);
2121

2222
self::assertSame(stdClass::class, $reference->className);
2323
}
2424

2525
#[Test]
2626
public function itShouldSetValueNullable(): void
2727
{
28-
$reference = ConnectionTypeReference::create(stdClass::class, 10);
28+
$reference = ConnectionTypeReference::create(stdClass::class);
2929

3030
self::assertFalse($reference->isValueNullable());
3131

@@ -37,7 +37,7 @@ public function itShouldSetValueNullable(): void
3737
#[Test]
3838
public function itShouldSerializeAndDeserialize(): void
3939
{
40-
$reference = ConnectionTypeReference::create(stdClass::class, 10)
40+
$reference = ConnectionTypeReference::create(stdClass::class)
4141
->setNullableValue();
4242

4343
self::assertEquals(ConnectionTypeReference::fromArray($reference->toArray()), $reference);

tests/NodeParser/TypeReferenceDeciderTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -266,10 +266,10 @@ public function itShouldReturnConnectionFromAttribute(): void
266266
$parameters = $methods->getParameters();
267267
$type = $parameters[0]->getType();
268268

269-
$reference = $decider->getTypeReference($type, new Mutation(type: new ConnectionType(TestType::class, 12)));
269+
$reference = $decider->getTypeReference($type, new Mutation(type: new ConnectionType(TestType::class)));
270270

271271
self::assertInstanceOf(ReflectionNamedType::class, $type);
272-
self::assertTrue($reference?->equals(ConnectionTypeReference::create(TestType::class, 12)));
272+
self::assertTrue($reference?->equals(ConnectionTypeReference::create(TestType::class)));
273273
}
274274

275275
#[Test]
@@ -282,10 +282,10 @@ public function itShouldReturnNullableConnectionFromAttribute(): void
282282
$parameters = $methods->getParameters();
283283
$type = $parameters[0]->getType();
284284

285-
$reference = $decider->getTypeReference($type, new Mutation(type: new NullableType(new ConnectionType(TestType::class, 12))));
285+
$reference = $decider->getTypeReference($type, new Mutation(type: new NullableType(new ConnectionType(TestType::class))));
286286

287287
self::assertInstanceOf(ReflectionNamedType::class, $type);
288-
self::assertTrue($reference?->equals(ConnectionTypeReference::create(TestType::class, 12)->setNullableValue()));
288+
self::assertTrue($reference?->equals(ConnectionTypeReference::create(TestType::class)->setNullableValue()));
289289
}
290290

291291
#[Test]

tests/ParserTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ public function itShouldParseDirectory(): void
190190
'status',
191191
),
192192
],
193-
ConnectionTypeReference::create(UserType::class, 10),
193+
ConnectionTypeReference::create(UserType::class),
194194
'withConnectionOutput',
195195
null,
196196
),
@@ -547,7 +547,7 @@ public function itShouldParseDirectory(): void
547547
null,
548548
),
549549
new FieldNode(
550-
ConnectionTypeReference::create(AgentType::class, 10)->setNullableValue(),
550+
ConnectionTypeReference::create(AgentType::class)->setNullableValue(),
551551
'users',
552552
null,
553553
[

tests/Resolver/Type/Connection/EdgeTypeResolverTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public function itShouldCreateEdgeTypeAndStoreInRegistry(): void
7878
self::assertFalse($this->builtTypesRegistry->hasType('TestEdge'));
7979

8080
$edgeType = $this->resolver->createEdgeType(
81-
ConnectionTypeReference::create(TestType::class, 10),
81+
ConnectionTypeReference::create(TestType::class),
8282
$typeNode,
8383
new TypeResolverSelector([
8484
new ObjectTypeResolver($this->astContainer, $this->fieldResolver),
@@ -141,7 +141,7 @@ public function itShouldGuardThatCursorIsCustomScalarWhenItsAnObjectType(): void
141141
self::expectExceptionMessage('Invalid object type cursor connection edge type');
142142

143143
$this->resolver->createEdgeType(
144-
ConnectionTypeReference::create(TestType::class, 10),
144+
ConnectionTypeReference::create(TestType::class),
145145
$typeNode,
146146
new TypeResolverSelector([
147147
new ObjectTypeResolver($this->astContainer, $this->fieldResolver),
@@ -175,7 +175,7 @@ public function itShouldGetEdgeTypeFromRegistry(): void
175175
self::assertTrue($this->builtTypesRegistry->hasType('TestEdge'));
176176

177177
$edgeType = $this->resolver->createEdgeType(
178-
ConnectionTypeReference::create(TestType::class, 10),
178+
ConnectionTypeReference::create(TestType::class),
179179
new TypeNode(
180180
TestType::class,
181181
'Test',

tests/Resolver/Type/TypeResolverSelectorTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public function itShouldThrowExceptionWhenNoResolverFound(): void
3939
{
4040
self::expectException(LogicException::class);
4141

42-
$this->selector->getResolver(ConnectionTypeReference::create(stdClass::class, 10));
42+
$this->selector->getResolver(ConnectionTypeReference::create(stdClass::class));
4343
}
4444

4545
#[Test]

tests/SchemaBuilderTest.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,6 @@ public function itShouldBuildSchema(): void
264264
'name' => 'first',
265265
'type' => Type::int(),
266266
'description' => 'Connection: return the first # items',
267-
'defaultValue' => 10,
268267
],
269268
[
270269
'name' => 'after',
@@ -745,7 +744,6 @@ public function itShouldBuildSchema(): void
745744
'name' => 'first',
746745
'type' => Type::int(),
747746
'description' => 'Connection: return the first # items',
748-
'defaultValue' => 10,
749747
],
750748
[
751749
'name' => 'after',
@@ -1160,7 +1158,6 @@ public function itShouldBuildSchema(): void
11601158
'name' => 'first',
11611159
'type' => Type::int(),
11621160
'description' => 'Connection: return the first # items',
1163-
'defaultValue' => 10,
11641161
],
11651162
[
11661163
'name' => 'after',

0 commit comments

Comments
 (0)