Skip to content

Commit a1898dc

Browse files
committed
OBJECT support.
1 parent 3cd4367 commit a1898dc

File tree

2 files changed

+137
-135
lines changed

2 files changed

+137
-135
lines changed

src/Utils/SchemaPrinter.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,7 @@ protected static function printObject(ObjectType $type, array $options): string
334334
return static::printDescription($options, $type) .
335335
sprintf('type %s', $type->name) .
336336
self::printImplementedInterfaces($type) .
337+
static::printTypeDirectives($type, $options) .
337338
static::printFields($options, $type);
338339
}
339340

tests/Utils/SchemaPrinterTest.php

Lines changed: 136 additions & 135 deletions
Original file line numberDiff line numberDiff line change
@@ -1280,142 +1280,143 @@ enum __TypeKind {
12801280
public function testPrintDirectives(): void {
12811281
$text = str_pad('a', 80, 'a');
12821282
$schema = /** @lang GraphQL */ <<<GRAPHQL
1283-
directive @test(
1284-
value: String
1285-
) on SCHEMA |
1286-
SCALAR |
1287-
OBJECT |
1288-
FIELD_DEFINITION |
1289-
ARGUMENT_DEFINITION |
1290-
INTERFACE |
1291-
UNION |
1292-
ENUM |
1293-
ENUM_VALUE |
1294-
INPUT_OBJECT |
1295-
INPUT_FIELD_DEFINITION
1296-
1297-
scalar ScalarA @test
1298-
scalar ScalarB @test(value: "{$text}")
1299-
1300-
enum EnumA @test {
1301-
a @test @deprecated
1302-
b @test(value: "{$text}")
1303-
"{$text}"
1304-
c @test
1305-
"{$text}"
1306-
d @test(value: "{$text}") @deprecated
1307-
}
1308-
1309-
enum EnumB @test(value: "{$text}") {
1310-
a
1311-
}
1312-
1313-
interface InterfaceA @test {
1314-
a: Int @test @deprecated
1315-
b: Int @test(value: "{$text}")
1316-
"{$text}"
1317-
c: Int @test
1318-
"{$text}"
1319-
d: Int @test(value: "{$text}") @deprecated
1320-
}
1321-
1322-
interface InterfaceB @test(value: "{$text}") {
1323-
a: ID
1324-
}
1325-
1326-
type TypeA {
1327-
a: Int @test @deprecated
1328-
b: Int @test(value: "{$text}")
1329-
"{$text}"
1330-
c: Int @test
1331-
"{$text}"
1332-
d: Int @test(value: "{$text}") @deprecated
1333-
}
1334-
1335-
type TypeB {
1336-
a: ID
1337-
}
1338-
GRAPHQL;
1283+
directive @test(
1284+
value: String
1285+
) on SCHEMA |
1286+
SCALAR |
1287+
OBJECT |
1288+
FIELD_DEFINITION |
1289+
ARGUMENT_DEFINITION |
1290+
INTERFACE |
1291+
UNION |
1292+
ENUM |
1293+
ENUM_VALUE |
1294+
INPUT_OBJECT |
1295+
INPUT_FIELD_DEFINITION
1296+
1297+
scalar ScalarA @test
1298+
scalar ScalarB @test(value: "{$text}")
1299+
1300+
enum EnumA @test {
1301+
a @test @deprecated
1302+
b @test(value: "{$text}")
1303+
"{$text}"
1304+
c @test
1305+
"{$text}"
1306+
d @test(value: "{$text}") @deprecated
1307+
}
1308+
1309+
enum EnumB @test(value: "{$text}") {
1310+
a
1311+
}
1312+
1313+
interface InterfaceA @test {
1314+
a: Int @test @deprecated
1315+
b: Int @test(value: "{$text}")
1316+
"{$text}"
1317+
c: Int @test
1318+
"{$text}"
1319+
d: Int @test(value: "{$text}") @deprecated
1320+
}
1321+
1322+
interface InterfaceB implements InterfaceA @test(value: "{$text}") {
1323+
a: ID
1324+
}
1325+
1326+
type TypeA @test {
1327+
a: Int @test @deprecated
1328+
b: Int @test(value: "{$text}")
1329+
"{$text}"
1330+
c: Int @test
1331+
"{$text}"
1332+
d: Int @test(value: "{$text}") @deprecated
1333+
}
1334+
1335+
type TypeB implements InterfaceB @test(value: "{$text}") {
1336+
a: ID
1337+
}
1338+
GRAPHQL;
13391339
$expected = /** @lang GraphQL */ <<<'GRAPHQL'
1340-
directive @test(value: String) on SCHEMA | SCALAR | OBJECT | FIELD_DEFINITION | ARGUMENT_DEFINITION | INTERFACE | UNION | ENUM | ENUM_VALUE | INPUT_OBJECT | INPUT_FIELD_DEFINITION
1341-
1342-
enum EnumA @test {
1343-
a @test @deprecated
1344-
1345-
b
1346-
@test(value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
1347-
1348-
"""
1349-
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1350-
"""
1351-
c @test
1352-
1353-
"""
1354-
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1355-
"""
1356-
d
1357-
@test(value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
1358-
@deprecated
1359-
}
1360-
1361-
enum EnumB
1362-
@test(value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") {
1363-
a
1364-
}
1365-
1366-
interface InterfaceA @test {
1367-
a: Int @test @deprecated
1368-
1369-
b: Int
1370-
@test(value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
1371-
1372-
"""
1373-
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1374-
"""
1375-
c: Int @test
1376-
1377-
"""
1378-
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1379-
"""
1380-
d: Int
1381-
@test(value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
1382-
@deprecated
1383-
}
1384-
1385-
interface InterfaceB
1386-
@test(value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") {
1387-
a: ID
1388-
}
1389-
1390-
scalar ScalarA @test
1391-
1392-
scalar ScalarB
1393-
@test(value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
1394-
1395-
type TypeA {
1396-
a: Int @test @deprecated
1397-
1398-
b: Int
1399-
@test(value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
1400-
1401-
"""
1402-
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1403-
"""
1404-
c: Int @test
1405-
1406-
"""
1407-
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1408-
"""
1409-
d: Int
1410-
@test(value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
1411-
@deprecated
1412-
}
1413-
1414-
type TypeB {
1415-
a: ID
1416-
}
1417-
1418-
GRAPHQL;
1340+
directive @test(value: String) on SCHEMA | SCALAR | OBJECT | FIELD_DEFINITION | ARGUMENT_DEFINITION | INTERFACE | UNION | ENUM | ENUM_VALUE | INPUT_OBJECT | INPUT_FIELD_DEFINITION
1341+
1342+
enum EnumA @test {
1343+
a @test @deprecated
1344+
1345+
b
1346+
@test(value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
1347+
1348+
"""
1349+
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1350+
"""
1351+
c @test
1352+
1353+
"""
1354+
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1355+
"""
1356+
d
1357+
@test(value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
1358+
@deprecated
1359+
}
1360+
1361+
enum EnumB
1362+
@test(value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") {
1363+
a
1364+
}
1365+
1366+
interface InterfaceA @test {
1367+
a: Int @test @deprecated
1368+
1369+
b: Int
1370+
@test(value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
1371+
1372+
"""
1373+
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1374+
"""
1375+
c: Int @test
1376+
1377+
"""
1378+
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1379+
"""
1380+
d: Int
1381+
@test(value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
1382+
@deprecated
1383+
}
1384+
1385+
interface InterfaceB implements InterfaceA
1386+
@test(value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") {
1387+
a: ID
1388+
}
1389+
1390+
scalar ScalarA @test
1391+
1392+
scalar ScalarB
1393+
@test(value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
1394+
1395+
type TypeA @test {
1396+
a: Int @test @deprecated
1397+
1398+
b: Int
1399+
@test(value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
1400+
1401+
"""
1402+
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1403+
"""
1404+
c: Int @test
1405+
1406+
"""
1407+
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1408+
"""
1409+
d: Int
1410+
@test(value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
1411+
@deprecated
1412+
}
1413+
1414+
type TypeB implements InterfaceB
1415+
@test(value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") {
1416+
a: ID
1417+
}
1418+
1419+
GRAPHQL;
14191420
$actual = SchemaPrinter::doPrint(BuildSchema::build($schema), [
14201421
'printDirectives' => static function(): bool {
14211422
return true;

0 commit comments

Comments
 (0)