GraphQL: Add support for union types (#2014)
parent
0222d8eefe
commit
8ec1b40961
|
@ -4,6 +4,7 @@ const docBuilders = require("./doc-builders");
|
|||
const concat = docBuilders.concat;
|
||||
const join = docBuilders.join;
|
||||
const hardline = docBuilders.hardline;
|
||||
const line = docBuilders.line;
|
||||
const softline = docBuilders.softline;
|
||||
const group = docBuilders.group;
|
||||
const indent = docBuilders.indent;
|
||||
|
@ -225,6 +226,23 @@ function genericPrint(path, options, print) {
|
|||
]);
|
||||
}
|
||||
|
||||
case "UnionTypeDefinition": {
|
||||
return group(
|
||||
concat([
|
||||
"union ",
|
||||
path.call(print, "name"),
|
||||
" =",
|
||||
ifBreak("", " "),
|
||||
indent(
|
||||
concat([
|
||||
ifBreak(concat([line, " "])),
|
||||
join(concat([line, "| "]), path.map(print, "types"))
|
||||
])
|
||||
)
|
||||
])
|
||||
);
|
||||
}
|
||||
|
||||
default:
|
||||
throw new Error("unknown graphql type: " + JSON.stringify(n.kind));
|
||||
}
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`union_types.graphql 1`] = `
|
||||
union myUnion = ATypeName | ASecondTypeName
|
||||
|
||||
union tooLongNameeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee = A | B
|
||||
|
||||
union mySecondUnion = ATypeName | ASecondTypeName | AThirdTypeName
|
||||
|
||||
union myThirdUnion = AVeryVeryVeryLongNamedTypeName | ASecondVeryVeryVeryLongedNameTypeName
|
||||
|
||||
union longUnion = A | B | C | D | E | F | G | H | I | J | K | L | A | B | C | D | E | F | G | H | I | J | K | L
|
||||
|
||||
# comment
|
||||
# comment2
|
||||
union union = B | C | D~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
union myUnion = ATypeName | ASecondTypeName
|
||||
|
||||
union tooLongNameeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee =
|
||||
A
|
||||
| B
|
||||
|
||||
union mySecondUnion = ATypeName | ASecondTypeName | AThirdTypeName
|
||||
|
||||
union myThirdUnion =
|
||||
AVeryVeryVeryLongNamedTypeName
|
||||
| ASecondVeryVeryVeryLongedNameTypeName
|
||||
|
||||
union longUnion =
|
||||
A
|
||||
| B
|
||||
| C
|
||||
| D
|
||||
| E
|
||||
| F
|
||||
| G
|
||||
| H
|
||||
| I
|
||||
| J
|
||||
| K
|
||||
| L
|
||||
| A
|
||||
| B
|
||||
| C
|
||||
| D
|
||||
| E
|
||||
| F
|
||||
| G
|
||||
| H
|
||||
| I
|
||||
| J
|
||||
| K
|
||||
| L
|
||||
|
||||
union union = B | C | D
|
||||
`;
|
|
@ -0,0 +1 @@
|
|||
run_spec(__dirname, { parser: "graphql" });
|
|
@ -0,0 +1,13 @@
|
|||
union myUnion = ATypeName | ASecondTypeName
|
||||
|
||||
union tooLongNameeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee = A | B
|
||||
|
||||
union mySecondUnion = ATypeName | ASecondTypeName | AThirdTypeName
|
||||
|
||||
union myThirdUnion = AVeryVeryVeryLongNamedTypeName | ASecondVeryVeryVeryLongedNameTypeName
|
||||
|
||||
union longUnion = A | B | C | D | E | F | G | H | I | J | K | L | A | B | C | D | E | F | G | H | I | J | K | L
|
||||
|
||||
# comment
|
||||
# comment2
|
||||
union union = B | C | D
|
Loading…
Reference in New Issue