@graphitation/supermassive 0.1.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/CHANGELOG.md +34 -2
  2. package/README.md +264 -2
  3. package/bin/supermassive.js +7 -0
  4. package/lib/{src/ast → ast}/TypedAST.d.ts +2 -0
  5. package/lib/ast/TypedAST.d.ts.map +1 -0
  6. package/lib/{src/ast → ast}/addTypesToRequestDocument.d.ts +0 -0
  7. package/lib/ast/addTypesToRequestDocument.d.ts.map +1 -0
  8. package/lib/ast/addTypesToRequestDocument.js +8 -5
  9. package/lib/ast/addTypesToRequestDocument.mjs +12 -6
  10. package/lib/benchmarks/index.d.ts.map +1 -1
  11. package/lib/benchmarks/index.js +127 -0
  12. package/lib/benchmarks/index.mjs +111 -0
  13. package/lib/benchmarks/nice-benchmark.d.ts +1 -1
  14. package/lib/benchmarks/nice-benchmark.d.ts.map +1 -1
  15. package/lib/benchmarks/nice-benchmark.js +72 -0
  16. package/lib/benchmarks/nice-benchmark.mjs +52 -0
  17. package/lib/benchmarks/swapi-schema/index.d.ts +1 -0
  18. package/lib/benchmarks/swapi-schema/index.d.ts.map +1 -1
  19. package/lib/benchmarks/swapi-schema/index.js +39 -0
  20. package/lib/benchmarks/swapi-schema/index.mjs +17 -0
  21. package/lib/benchmarks/swapi-schema/models.d.ts.map +1 -1
  22. package/lib/benchmarks/swapi-schema/models.js +29 -0
  23. package/lib/benchmarks/swapi-schema/models.mjs +7 -0
  24. package/lib/benchmarks/swapi-schema/resolvers.d.ts.map +1 -1
  25. package/lib/benchmarks/swapi-schema/resolvers.js +237 -0
  26. package/lib/benchmarks/swapi-schema/resolvers.mjs +230 -0
  27. package/lib/bin/supermassive.d.ts +3 -0
  28. package/lib/bin/supermassive.d.ts.map +1 -0
  29. package/lib/bin/supermassive.js +83 -0
  30. package/lib/bin/supermassive.mjs +62 -0
  31. package/lib/collectFields.d.ts +17 -0
  32. package/lib/collectFields.d.ts.map +1 -0
  33. package/lib/collectFields.js +83 -0
  34. package/lib/collectFields.mjs +61 -0
  35. package/lib/compiledQuery.d.ts +1 -0
  36. package/lib/compiledQuery.d.ts.map +1 -0
  37. package/lib/compiledQuery.js +0 -0
  38. package/lib/compiledQuery.mjs +0 -0
  39. package/lib/executeWithSchema.d.ts +4 -0
  40. package/lib/executeWithSchema.d.ts.map +1 -0
  41. package/lib/{index.test.js → executeWithSchema.js} +45 -46
  42. package/lib/executeWithSchema.mjs +64 -0
  43. package/lib/executeWithoutSchema.d.ts +99 -0
  44. package/lib/executeWithoutSchema.d.ts.map +1 -0
  45. package/lib/executeWithoutSchema.js +376 -0
  46. package/lib/executeWithoutSchema.mjs +363 -0
  47. package/lib/extractImplicitTypesRuntime.d.ts +4 -0
  48. package/lib/extractImplicitTypesRuntime.d.ts.map +1 -0
  49. package/lib/extractImplicitTypesRuntime.js +103 -0
  50. package/lib/extractImplicitTypesRuntime.mjs +91 -0
  51. package/lib/extractImplicitTypesToTypescript.d.ts +4 -0
  52. package/lib/extractImplicitTypesToTypescript.d.ts.map +1 -0
  53. package/lib/extractImplicitTypesToTypescript.js +169 -0
  54. package/lib/extractImplicitTypesToTypescript.mjs +149 -0
  55. package/lib/index.d.ts +8 -0
  56. package/lib/index.d.ts.map +1 -0
  57. package/lib/index.js +12 -29
  58. package/lib/index.mjs +13 -29
  59. package/lib/jsutils/Maybe.d.ts +3 -0
  60. package/lib/jsutils/Maybe.d.ts.map +1 -0
  61. package/lib/jsutils/Maybe.js +3 -0
  62. package/lib/jsutils/Maybe.mjs +0 -0
  63. package/lib/jsutils/ObjMap.d.ts +13 -0
  64. package/lib/jsutils/ObjMap.d.ts.map +1 -0
  65. package/lib/jsutils/ObjMap.js +3 -0
  66. package/lib/jsutils/ObjMap.mjs +0 -0
  67. package/lib/jsutils/Path.d.ts +15 -0
  68. package/lib/jsutils/Path.d.ts.map +1 -0
  69. package/lib/jsutils/Path.js +23 -0
  70. package/lib/jsutils/Path.mjs +17 -0
  71. package/lib/jsutils/PromiseOrValue.d.ts +2 -0
  72. package/lib/jsutils/PromiseOrValue.d.ts.map +1 -0
  73. package/lib/jsutils/PromiseOrValue.js +3 -0
  74. package/lib/jsutils/PromiseOrValue.mjs +0 -0
  75. package/lib/jsutils/devAssert.d.ts +2 -0
  76. package/lib/jsutils/devAssert.d.ts.map +1 -0
  77. package/lib/jsutils/devAssert.js +16 -0
  78. package/lib/jsutils/devAssert.mjs +10 -0
  79. package/lib/jsutils/didYouMean.d.ts +6 -0
  80. package/lib/jsutils/didYouMean.d.ts.map +1 -0
  81. package/lib/jsutils/didYouMean.js +30 -0
  82. package/lib/jsutils/didYouMean.mjs +24 -0
  83. package/lib/jsutils/identityFunc.d.ts +5 -0
  84. package/lib/jsutils/identityFunc.d.ts.map +1 -0
  85. package/lib/jsutils/identityFunc.js +13 -0
  86. package/lib/jsutils/identityFunc.mjs +7 -0
  87. package/lib/jsutils/inspect.d.ts +5 -0
  88. package/lib/jsutils/inspect.d.ts.map +1 -0
  89. package/lib/jsutils/inspect.js +89 -0
  90. package/lib/jsutils/inspect.mjs +83 -0
  91. package/lib/jsutils/instanceOf.d.ts +14 -0
  92. package/lib/jsutils/instanceOf.d.ts.map +1 -0
  93. package/lib/jsutils/instanceOf.js +55 -0
  94. package/lib/jsutils/instanceOf.mjs +33 -0
  95. package/lib/jsutils/invariant.d.ts +2 -0
  96. package/lib/jsutils/invariant.d.ts.map +1 -0
  97. package/lib/jsutils/invariant.js +16 -0
  98. package/lib/jsutils/invariant.mjs +10 -0
  99. package/lib/jsutils/isAsyncIterable.d.ts +6 -0
  100. package/lib/jsutils/isAsyncIterable.d.ts.map +1 -0
  101. package/lib/jsutils/isAsyncIterable.js +13 -0
  102. package/lib/jsutils/isAsyncIterable.mjs +7 -0
  103. package/lib/jsutils/isIterableObject.d.ts +18 -0
  104. package/lib/jsutils/isIterableObject.d.ts.map +1 -0
  105. package/lib/jsutils/isIterableObject.js +13 -0
  106. package/lib/jsutils/isIterableObject.mjs +7 -0
  107. package/lib/jsutils/isObjectLike.d.ts +8 -0
  108. package/lib/jsutils/isObjectLike.d.ts.map +1 -0
  109. package/lib/jsutils/isObjectLike.js +13 -0
  110. package/lib/jsutils/isObjectLike.mjs +7 -0
  111. package/lib/jsutils/isPromise.d.ts +6 -0
  112. package/lib/jsutils/isPromise.d.ts.map +1 -0
  113. package/lib/jsutils/isPromise.js +13 -0
  114. package/lib/jsutils/isPromise.mjs +7 -0
  115. package/lib/jsutils/keyMap.d.ts +26 -0
  116. package/lib/jsutils/keyMap.d.ts.map +1 -0
  117. package/lib/jsutils/keyMap.js +17 -0
  118. package/lib/jsutils/keyMap.mjs +11 -0
  119. package/lib/jsutils/keyValMap.d.ts +20 -0
  120. package/lib/jsutils/keyValMap.d.ts.map +1 -0
  121. package/lib/jsutils/keyValMap.js +17 -0
  122. package/lib/jsutils/keyValMap.mjs +11 -0
  123. package/lib/jsutils/mapValue.d.ts +7 -0
  124. package/lib/jsutils/mapValue.d.ts.map +1 -0
  125. package/lib/jsutils/mapValue.js +17 -0
  126. package/lib/jsutils/mapValue.mjs +11 -0
  127. package/lib/jsutils/memoize3.d.ts +5 -0
  128. package/lib/jsutils/memoize3.d.ts.map +1 -0
  129. package/lib/jsutils/memoize3.js +34 -0
  130. package/lib/jsutils/memoize3.mjs +28 -0
  131. package/lib/jsutils/naturalCompare.d.ts +9 -0
  132. package/lib/jsutils/naturalCompare.d.ts.map +1 -0
  133. package/lib/jsutils/naturalCompare.js +53 -0
  134. package/lib/jsutils/naturalCompare.mjs +47 -0
  135. package/lib/jsutils/printPathArray.d.ts +5 -0
  136. package/lib/jsutils/printPathArray.d.ts.map +1 -0
  137. package/lib/jsutils/printPathArray.js +13 -0
  138. package/lib/jsutils/printPathArray.mjs +7 -0
  139. package/lib/jsutils/promiseForObject.d.ts +10 -0
  140. package/lib/jsutils/promiseForObject.d.ts.map +1 -0
  141. package/lib/jsutils/promiseForObject.js +19 -0
  142. package/lib/jsutils/promiseForObject.mjs +13 -0
  143. package/lib/jsutils/promiseReduce.d.ts +10 -0
  144. package/lib/jsutils/promiseReduce.d.ts.map +1 -0
  145. package/lib/jsutils/promiseReduce.js +34 -0
  146. package/lib/jsutils/promiseReduce.mjs +12 -0
  147. package/lib/jsutils/suggestionList.d.ts +6 -0
  148. package/lib/jsutils/suggestionList.d.ts.map +1 -0
  149. package/lib/jsutils/suggestionList.js +109 -0
  150. package/lib/jsutils/suggestionList.mjs +87 -0
  151. package/lib/jsutils/toObjMap.d.ts +4 -0
  152. package/lib/jsutils/toObjMap.d.ts.map +1 -0
  153. package/lib/jsutils/toObjMap.js +20 -0
  154. package/lib/jsutils/toObjMap.mjs +14 -0
  155. package/lib/transforms/annotateDocumentGraphQLTransform.d.ts +3 -0
  156. package/lib/transforms/annotateDocumentGraphQLTransform.d.ts.map +1 -0
  157. package/lib/transforms/annotateDocumentGraphQLTransform.js +37 -0
  158. package/lib/transforms/annotateDocumentGraphQLTransform.mjs +17 -0
  159. package/lib/transforms/transformerTestUtils.d.ts +79 -0
  160. package/lib/transforms/transformerTestUtils.d.ts.map +1 -0
  161. package/lib/transforms/transformerTestUtils.js +175 -0
  162. package/lib/transforms/transformerTestUtils.mjs +160 -0
  163. package/lib/types.d.ts +74 -0
  164. package/lib/types.d.ts.map +1 -0
  165. package/lib/types.js +3 -0
  166. package/lib/types.mjs +0 -0
  167. package/lib/utilities/typeNameFromAST.d.ts +3 -0
  168. package/lib/utilities/typeNameFromAST.d.ts.map +1 -0
  169. package/lib/utilities/typeNameFromAST.js +34 -0
  170. package/lib/utilities/typeNameFromAST.mjs +12 -0
  171. package/lib/values.d.ts +64 -0
  172. package/lib/values.d.ts.map +1 -0
  173. package/lib/values.js +145 -0
  174. package/lib/values.mjs +138 -0
  175. package/package.json +21 -6
  176. package/.eslintcache +0 -1
  177. package/CHANGELOG.json +0 -35
  178. package/benchmarks/fixtures/query1.graphql +0 -20
  179. package/benchmarks/index.ts +0 -68
  180. package/benchmarks/nice-benchmark.ts +0 -32
  181. package/benchmarks/swapi-schema/index.ts +0 -13
  182. package/benchmarks/swapi-schema/models.ts +0 -4
  183. package/benchmarks/swapi-schema/resolvers.ts +0 -331
  184. package/benchmarks/swapi-schema/schema.graphql +0 -164
  185. package/benchmarks/swapi-schema/starwars.json +0 -5991
  186. package/lib/index.test.mjs +0 -63
  187. package/lib/src/ast/TypedAST.d.ts.map +0 -1
  188. package/lib/src/ast/addTypesToRequestDocument.d.ts.map +0 -1
  189. package/lib/src/index.d.ts +0 -16
  190. package/lib/src/index.d.ts.map +0 -1
  191. package/lib/src/index.test.d.ts +0 -2
  192. package/lib/src/index.test.d.ts.map +0 -1
@@ -1,331 +0,0 @@
1
- import { GraphQLFieldResolver } from "graphql/type/definition";
2
- import { IExecutableSchemaDefinition } from "@graphql-tools/schema";
3
-
4
- const films: GraphQLFieldResolver<any, any, any> = (
5
- parent,
6
- args,
7
- { models }
8
- ) => {
9
- return models
10
- .getData("/films")
11
- .filter(({ id }: { id: any }) => parent.films.includes(id));
12
- };
13
-
14
- const starships: GraphQLFieldResolver<any, any, any> = (
15
- parent,
16
- { id },
17
- { models }
18
- ) => {
19
- return models
20
- .getData("/starships")
21
- .filter(({ id }: { id: any }) => parent.starships.includes(id));
22
- };
23
-
24
- function people(key: string): GraphQLFieldResolver<any, any, any> {
25
- return (parent, args, { models }) => {
26
- return models
27
- .getData("/people")
28
- .filter(({ id }: { id: any }) => parent[key].includes(id));
29
- };
30
- }
31
-
32
- const vehicles: GraphQLFieldResolver<any, any, any> = (
33
- parent,
34
- args,
35
- { models }
36
- ) => {
37
- return models
38
- .getData("/vehicles")
39
- .filter(({ id }: { id: any }) => parent.vehicles.includes(id));
40
- };
41
-
42
- const transports: GraphQLFieldResolver<any, any, any> = (
43
- parent,
44
- args,
45
- { models }
46
- ) => {
47
- return models
48
- .getData("/transport")
49
- .filter(({ id }: { id: any }) => parent.starships.includes(id));
50
- };
51
-
52
- const planets: GraphQLFieldResolver<any, any, any> = (
53
- parent,
54
- args,
55
- { models }
56
- ) => {
57
- return models
58
- .getData("/planets")
59
- .filter(({ id }: { id: any }) => parent.planets.includes(id));
60
- };
61
-
62
- const species: GraphQLFieldResolver<any, any, any> = (
63
- parent,
64
- args,
65
- { models }
66
- ) => {
67
- return models
68
- .getData("/species")
69
- .filter(({ id }: { id: any }) => parent.species.includes(id));
70
- };
71
- const homeworld: GraphQLFieldResolver<any, any, any> = (
72
- parent,
73
- args,
74
- { models }
75
- ) => {
76
- return models
77
- .getData("/planets")
78
- .find((planet: any) => planet.id === parent.homeworld);
79
- };
80
-
81
- const person: GraphQLFieldResolver<any, any, any> = (
82
- parent,
83
- { id },
84
- { models }
85
- ) => {
86
- return models.getData("/people").find((person: any) => person.id === id);
87
- };
88
-
89
- const planet: GraphQLFieldResolver<any, any, any> = (
90
- parent,
91
- { id },
92
- { models }
93
- ) => {
94
- return models.getData("/planets").find((planet: any) => planet.id === id);
95
- };
96
-
97
- const film: GraphQLFieldResolver<any, any, any> = (
98
- parent,
99
- { id },
100
- { models }
101
- ) => {
102
- return models.getData("/films").find((film: any) => film.id === id);
103
- };
104
-
105
- const starship: GraphQLFieldResolver<any, any, any> = (
106
- parent,
107
- { id },
108
- { models }
109
- ) => {
110
- return models
111
- .getData("/starships")
112
- .find((starship: any) => starship.id === id);
113
- };
114
-
115
- const transport: GraphQLFieldResolver<any, any, any> = (
116
- parent,
117
- { id },
118
- { models }
119
- ) => {
120
- return models
121
- .getData("/transport")
122
- .find((transport: any) => transport.id === id);
123
- };
124
-
125
- const vehicle: GraphQLFieldResolver<any, any, any> = (
126
- parent,
127
- { id },
128
- { models }
129
- ) => {
130
- return models.getData("/vehicles").find((vehicle: any) => vehicle.id === id);
131
- };
132
-
133
- const searchPeopleByName: GraphQLFieldResolver<any, any, any> = (
134
- parent,
135
- { search },
136
- { models }
137
- ) => {
138
- return models
139
- .getData("/people")
140
- .filter((person: any) => new RegExp(search, "i").test(person.name));
141
- };
142
-
143
- const searchPlanetsByName: GraphQLFieldResolver<any, any, any> = (
144
- parent,
145
- { search },
146
- { models }
147
- ) => {
148
- return models
149
- .getData("/planets")
150
- .filter((planet: any) => new RegExp(search, "i").test(planet.name));
151
- };
152
-
153
- const searchFilmsByTitle: GraphQLFieldResolver<any, any, any> = (
154
- parent,
155
- { search },
156
- { models }
157
- ) => {
158
- return models
159
- .getData("/films")
160
- .filter((film: any) => new RegExp(search, "i").test(film.title));
161
- };
162
-
163
- const searchSpeciesByName: GraphQLFieldResolver<any, any, any> = (
164
- parent,
165
- { search },
166
- { models }
167
- ) => {
168
- return models
169
- .getData("/species")
170
- .filter((species: any) => new RegExp(search, "i").test(species.name));
171
- };
172
-
173
- const searchStarshipsByName: GraphQLFieldResolver<any, any, any> = (
174
- parent,
175
- { search },
176
- { models }
177
- ) => {
178
- return models
179
- .getData("/starships")
180
- .filter((starship: any) => new RegExp(search, "i").test(starship.name));
181
- };
182
-
183
- const searchVehiclesByName: GraphQLFieldResolver<any, any, any> = (
184
- parent,
185
- { search },
186
- { models }
187
- ) => {
188
- return models
189
- .getData("/vehicles")
190
- .filter((vehicle: any) => new RegExp(search, "i").test(vehicle.name));
191
- };
192
-
193
- const searchTransportsByName: GraphQLFieldResolver<any, any, any> = (
194
- parent,
195
- { search },
196
- { models }
197
- ) => {
198
- return models
199
- .getData("/transport")
200
- .filter((transport: any) => new RegExp(search, "i").test(transport.name));
201
- };
202
-
203
- const resolvers: IExecutableSchemaDefinition["resolvers"] = {
204
- SearchResult: {
205
- __resolveType(parent: any) {
206
- return parent.__typename;
207
- },
208
- },
209
- Query: {
210
- search(parent, { search }, { models }, info) {
211
- const result = [
212
- ...searchFilmsByTitle(parent, { search }, { models }, info).map(
213
- (r: any) => (r.__typename = "Film") && r
214
- ),
215
- ...searchPeopleByName(parent, { search }, { models }, info).map(
216
- (r: any) => (r.__typename = "Person") && r
217
- ),
218
- ...searchPlanetsByName(parent, { search }, { models }, info).map(
219
- (r: any) => (r.__typename = "Planet") && r
220
- ),
221
- ...searchSpeciesByName(parent, { search }, { models }, info).map(
222
- (r: any) => (r.__typename = "Species") && r
223
- ),
224
- ...searchStarshipsByName(parent, { search }, { models }, info).map(
225
- (r: any) => (r.__typename = "Starship") && r
226
- ),
227
- ...searchTransportsByName(parent, { search }, { models }, info).map(
228
- (r: any) => (r.__typename = "Transport") && r
229
- ),
230
- ...searchVehiclesByName(parent, { search }, { models }, info).map(
231
- (r: any) => (r.__typename = "Vehicle") && r
232
- ),
233
- ];
234
-
235
- return result;
236
- },
237
-
238
- person,
239
- planet,
240
- film,
241
- transport,
242
- starship,
243
- vehicle,
244
- searchPeopleByName,
245
- searchStarshipsByName,
246
- searchTransportsByName,
247
- searchSpeciesByName,
248
- searchVehiclesByName,
249
- searchPlanetsByName,
250
- searchFilmsByTitle,
251
-
252
- allStarships(parent, args, { models }) {
253
- return models.getData("/starships");
254
- },
255
- allFilms(parent, args, { models }) {
256
- return models.getData("/films");
257
- },
258
- allPeople(parent, args, { models }) {
259
- return models.getData("/people");
260
- },
261
- allPlanets(parent, args, { models }) {
262
- return models.getData("/planets");
263
- },
264
- allSpecies(parent, args, { models }) {
265
- return models.getData("/species");
266
- },
267
- allTransports(parent, args, { models }) {
268
- return models.getData("/transport");
269
- },
270
- },
271
- Film: {
272
- starships,
273
- vehicles,
274
- planets,
275
- characters: people("characters"),
276
- species,
277
- },
278
- Starship: {
279
- MGLT: (starship) => +starship.MGLT,
280
- hyperdrive_rating: (starship) => +starship.hyperdrive_rating,
281
- cargo_capacity: (starship) => +starship.cargo_capacity,
282
- passengers: (starship) => +starship.passengers,
283
- max_atmosphering_speed: (starship) => +starship.max_atmosphering_speed,
284
- length: (starship) => +starship.length,
285
- cost_in_credits: (starship) => +starship.cost_in_credits,
286
- pilots: people("pilots"),
287
- films,
288
- },
289
- Person: {
290
- height: (pilot) => +pilot.height,
291
- mass: (pilot) => +pilot.mass,
292
- starships,
293
- homeworld,
294
- },
295
- Vehicle: {
296
- cargo_capacity: (vehicle) => +vehicle.cargo_capacity,
297
- passengers: (vehicle) => +vehicle.passengers,
298
- max_atmosphering_speed: (vehicle) => +vehicle.max_atmosphering_speed,
299
- crew: (vehicle) => forceNumber(vehicle.crew),
300
- length: (vehicle) => +vehicle.length,
301
- cost_in_credits: (vehicle) => +vehicle.cost_in_credits,
302
- pilots: people("pilots"),
303
- },
304
- Planet: {
305
- diameter: (planet) => +planet.diameter,
306
- rotation_period: (planet) => +planet.rotation_period,
307
- orbital_period: (planet) => +planet.orbital_period,
308
- population: (planet) => +planet.population,
309
- residents: people("residents"),
310
- films,
311
- },
312
- Species: {
313
- average_lifespan: (species) => +species.average_lifespan,
314
- average_height: (species) => +species.average_height,
315
- homeworld,
316
- people: people("people"),
317
- },
318
- Transport: {
319
- cargo_capacity: (vehicle) => +vehicle.cargo_capacity,
320
- passengers: (vehicle) => +vehicle.passengers,
321
- max_atmosphering_speed: (vehicle) => +vehicle.max_atmosphering_speed,
322
- crew: (vehicle) => forceNumber(vehicle.crew),
323
- length: (vehicle) => +vehicle.length,
324
- cost_in_credits: (vehicle) => +vehicle.cost_in_credits,
325
- },
326
- };
327
-
328
- const forceNumber = (i: string) =>
329
- Number(i.split(",").join("").split("-")[0]) || -1;
330
-
331
- export default resolvers;
@@ -1,164 +0,0 @@
1
- union SearchResult =
2
- Person
3
- | Starship
4
- | Transport
5
- | Species
6
- | Vehicle
7
- | Planet
8
- | Film
9
-
10
- type Query {
11
- search(search: String): [SearchResult]
12
-
13
- person(id: Int!): Person
14
- planet(id: Int!): Planet
15
- film(id: Int!): Film
16
- transport(id: Int!): Transport
17
- starship(id: Int!): Starship
18
- vehicle(id: Int!): Vehicle
19
-
20
- searchPeopleByName(search: String!): [Person]
21
- searchStarshipsByName(search: String!): [Starship]
22
- searchTransportsByName(search: String!): [Transport]
23
- searchSpeciesByName(search: String!): [Species]
24
- searchVehiclesByName(search: String!): [Vehicle]
25
- searchPlanetsByName(search: String!): [Planet]
26
- searchFilmsByTitle(search: String!): [Film]
27
-
28
- allFilms: [Film]
29
- allStarships: [Starship]
30
- allPeople: [Person]
31
- allPlanets: [Planet]
32
- allSpecies: [Species]
33
- allTransports: [Transport]
34
- }
35
-
36
- type Film {
37
- title: String!
38
- starships: [Starship]
39
- edited: String
40
- vehicles: [Vehicle]
41
- planets: [Planet]
42
- producer: String
43
- created: String
44
- episode_id: Int
45
- director: String
46
- release_date: String
47
- opening_crawl: String
48
- characters: [Person]
49
- species: [Species]
50
- id: Int
51
- }
52
-
53
- type Vehicle {
54
- id: Int
55
- name: String
56
- vehicle_class: String
57
- pilots: [Person]
58
- edited: String
59
- consumables: String
60
- created: String
61
- model: String
62
- manufacturer: String
63
- image: String
64
- cargo_capacity: Int
65
- passengers: Int
66
- max_atmosphering_speed: Int
67
- crew: Int
68
- length: Float
69
- cost_in_credits: Int
70
- }
71
-
72
- type Person {
73
- id: Int
74
- edited: String
75
- name: String
76
- created: String
77
- gender: String
78
- skin_color: String
79
- hair_color: String
80
- height: Int
81
- eye_color: String
82
- mass: Int
83
- homeworld: Planet
84
- birth_year: String
85
- image: String
86
- vehicles: [Vehicle]
87
- starships: [Starship]
88
- films: [Film]
89
- }
90
-
91
- type Starship {
92
- id: Int
93
-
94
- films: [Film]
95
- pilots: [Person]
96
-
97
- MGLT: Int
98
- starship_class: String
99
- hyperdrive_rating: Float
100
- edited: String
101
- consumables: String
102
- name: String
103
- created: String
104
- cargo_capacity: Int
105
- passengers: Int
106
- max_atmosphering_speed: Int
107
- crew: String
108
- length: Int
109
- model: String
110
- cost_in_credits: Int
111
- manufacturer: String
112
- image: String
113
- }
114
-
115
- type Planet {
116
- id: Int
117
- edited: String
118
- climate: String
119
- surface_water: String
120
- name: String
121
- diameter: Int
122
- rotation_period: Int
123
- created: String
124
- terrain: String
125
- gravity: String
126
- orbital_period: Int
127
- population: Int
128
- residents: [Person]
129
- films: [Film]
130
- }
131
-
132
- type Species {
133
- edited: String
134
- classification: String
135
- name: String
136
- designation: String
137
- created: String
138
- eye_colors: String
139
- people: [Person]
140
- skin_colors: String
141
- language: String
142
- hair_colors: String
143
- homeworld: Planet
144
- average_lifespan: Int
145
- average_height: Int
146
- id: Int
147
- }
148
-
149
- type Transport {
150
- edited: String
151
- consumables: String
152
- name: String
153
- created: String
154
- cargo_capacity: Int
155
- passengers: Int
156
- max_atmosphering_speed: Int
157
- crew: String
158
- length: Int
159
- model: String
160
- cost_in_credits: Int
161
- manufacturer: String
162
- image: String
163
- id: Int
164
- }