@graphitation/supermassive 3.8.0 → 3.8.1

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.
package/CHANGELOG.md CHANGED
@@ -1,12 +1,12 @@
1
1
  # Change Log - @graphitation/supermassive
2
2
 
3
- <!-- This log was last generated on Thu, 02 Jan 2025 12:43:33 GMT and should not be manually modified. -->
3
+ <!-- This log was last generated on Thu, 02 Jan 2025 12:43:51 GMT and should not be manually modified. -->
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
7
  ## 3.8.0
8
8
 
9
- Thu, 02 Jan 2025 12:43:33 GMT
9
+ Thu, 02 Jan 2025 12:43:51 GMT
10
10
 
11
11
  ### Minor changes
12
12
 
@@ -1,4 +1,8 @@
1
- import { IExecutableSchemaDefinition } from "@graphql-tools/schema";
2
- declare const resolvers: IExecutableSchemaDefinition["resolvers"];
1
+ import { Resolvers } from "../../types";
2
+ import type { JsonDB } from "node-json-db";
3
+ type SwapiContext = {
4
+ models: JsonDB;
5
+ };
6
+ declare const resolvers: Resolvers<any, SwapiContext>;
3
7
  export default resolvers;
4
8
  //# sourceMappingURL=resolvers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../../src/benchmarks/swapi-schema/resolvers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAkPpE,QAAA,MAAM,SAAS,EAAE,2BAA2B,CAAC,WAAW,CAkNvD,CAAC;AAKF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../../src/benchmarks/swapi-schema/resolvers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,SAAS,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,KAAK,YAAY,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AA6OvC,QAAA,MAAM,SAAS,EAAE,SAAS,CAAC,GAAG,EAAE,YAAY,CAiN3C,CAAC;AAKF,eAAe,SAAS,CAAC"}
@@ -60,20 +60,6 @@ __export(resolvers_exports, {
60
60
  module.exports = __toCommonJS(resolvers_exports);
61
61
  var import_iterall = require("iterall");
62
62
  var import_mapAsyncIterator = require("../../utilities/mapAsyncIterator");
63
- const films = (parent, _args, { models }) => {
64
- return (0, import_mapAsyncIterator.mapAsyncIterator)(
65
- (0, import_iterall.getAsyncIterator)(
66
- (0, import_iterall.createAsyncIterator)(
67
- models.getData("/films").filter(({ id }) => parent.films.includes(id))
68
- )
69
- ),
70
- // this ensures it's a awaitable iterator
71
- (item) => __async(void 0, null, function* () {
72
- yield new Promise((resolve) => setTimeout(resolve, 0));
73
- return item;
74
- })
75
- );
76
- };
77
63
  const starships = (parent, _args, { models }) => {
78
64
  return (0, import_mapAsyncIterator.mapAsyncIterator)(
79
65
  (0, import_iterall.getAsyncIterator)(
@@ -111,6 +97,9 @@ const person = (parent, { id }, { models }) => {
111
97
  const planet = (parent, { id }, { models }) => {
112
98
  return models.getData("/planets").find((planet2) => planet2.id === id);
113
99
  };
100
+ const films = (parent, _args, { models }) => {
101
+ return models.getData("/films");
102
+ };
114
103
  const film = (parent, { id }, { models }) => {
115
104
  return models.getData("/films").find((film2) => film2.id === id);
116
105
  };
@@ -141,20 +130,43 @@ const searchStarshipsByName = (parent, { search }, { models }) => {
141
130
  const searchVehiclesByName = (parent, { search }, { models }) => {
142
131
  return models.getData("/vehicles").filter((vehicle2) => new RegExp(search, "i").test(vehicle2.name));
143
132
  };
144
- const emitPersons = function(_0, _1, _2) {
145
- return __async(this, arguments, function* (parent, { limit, throwError }, { models }) {
146
- if (throwError) {
147
- throw new Error("error");
148
- return;
149
- }
150
- const persons = yield models.getData("/people");
151
- const personsLimit = Math.min(limit, persons.length);
152
- const output = { length: personsLimit };
153
- for (let i = 0; i < personsLimit; i++) {
154
- output[i] = { emitPersons: persons[i] };
133
+ const emitPersons = {
134
+ subscribe: function(_0, _1, _2) {
135
+ return __async(this, arguments, function* (parent, { limit, throwError }, { models }) {
136
+ if (throwError) {
137
+ throw new Error("error");
138
+ }
139
+ const persons = yield models.getData("/people");
140
+ const personsLimit = Math.min(limit, persons.length);
141
+ const output = [];
142
+ for (let i = 0; i < personsLimit; i++) {
143
+ output.push({ emitPersons: persons[i] });
144
+ }
145
+ return (0, import_iterall.createAsyncIterator)(output);
146
+ });
147
+ }
148
+ };
149
+ const emitPersonsV2 = {
150
+ subscribe: function(_0, _1, _2) {
151
+ return __async(this, arguments, function* (parent, { limit, throwError }, { models }) {
152
+ if (throwError) {
153
+ throw new Error("error");
154
+ }
155
+ const persons = yield models.getData("/people");
156
+ const personsLimit = Math.min(limit, persons.length);
157
+ const output = [];
158
+ for (let i = 0; i < personsLimit; i++) {
159
+ output.push({ emitPersons: persons[i] });
160
+ }
161
+ return (0, import_iterall.createAsyncIterator)(output);
162
+ });
163
+ },
164
+ resolve: (parent, { emitError }) => {
165
+ if (emitError && parent.emitPersons.name === "R2-D2") {
166
+ throw new Error("No robots allowed");
155
167
  }
156
- return (0, import_iterall.createAsyncIterator)(output);
157
- });
168
+ return parent.emitPersons;
169
+ }
158
170
  };
159
171
  const searchTransportsByName = (parent, { search }, { models }) => {
160
172
  return models.getData("/transport").filter((transport2) => new RegExp(search, "i").test(transport2.name));
@@ -166,9 +178,8 @@ const resolvers = {
166
178
  }
167
179
  },
168
180
  Subscription: {
169
- emitPersons: {
170
- subscribe: emitPersons
171
- },
181
+ emitPersons,
182
+ emitPersonsV2,
172
183
  nonNullWithError: {
173
184
  subscribe() {
174
185
  throw new Error("Subscribe error");
@@ -193,27 +204,13 @@ const resolvers = {
193
204
  Query: {
194
205
  search(parent, { search }, { models }, info) {
195
206
  const result = [
196
- ...searchFilmsByTitle(parent, { search }, { models }, info).map(
197
- (r) => (r.__typename = "Film") && r
198
- ),
199
- ...searchPeopleByName(parent, { search }, { models }, info).map(
200
- (r) => (r.__typename = "Person") && r
201
- ),
202
- ...searchPlanetsByName(parent, { search }, { models }, info).map(
203
- (r) => (r.__typename = "Planet") && r
204
- ),
205
- ...searchSpeciesByName(parent, { search }, { models }, info).map(
206
- (r) => (r.__typename = "Species") && r
207
- ),
208
- ...searchStarshipsByName(parent, { search }, { models }, info).map(
209
- (r) => (r.__typename = "Starship") && r
210
- ),
211
- ...searchTransportsByName(parent, { search }, { models }, info).map(
212
- (r) => (r.__typename = "Transport") && r
213
- ),
214
- ...searchVehiclesByName(parent, { search }, { models }, info).map(
215
- (r) => (r.__typename = "Vehicle") && r
216
- )
207
+ ...searchFilmsByTitle(parent, { search }, { models }, info).map((r) => (r.__typename = "Film") && r),
208
+ ...searchPeopleByName(parent, { search }, { models }, info).map((r) => (r.__typename = "Person") && r),
209
+ ...searchPlanetsByName(parent, { search }, { models }, info).map((r) => (r.__typename = "Planet") && r),
210
+ ...searchSpeciesByName(parent, { search }, { models }, info).map((r) => (r.__typename = "Species") && r),
211
+ ...searchStarshipsByName(parent, { search }, { models }, info).map((r) => (r.__typename = "Starship") && r),
212
+ ...searchTransportsByName(parent, { search }, { models }, info).map((r) => (r.__typename = "Transport") && r),
213
+ ...searchVehiclesByName(parent, { search }, { models }, info).map((r) => (r.__typename = "Vehicle") && r)
217
214
  ];
218
215
  return result;
219
216
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/benchmarks/swapi-schema/resolvers.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { IExecutableSchemaDefinition } from \"@graphql-tools/schema\";\nimport { createAsyncIterator, forAwaitEach, getAsyncIterator } from \"iterall\";\nimport { mapAsyncIterator } from \"../../utilities/mapAsyncIterator\";\n\n// Note: need this for graphql15-graphql17 cross-compatibility\ntype GraphQLFieldResolver<T = any, U = any, I = any> = (\n parent: T,\n args: U,\n context: I,\n info: any,\n) => any;\n\nconst films: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return mapAsyncIterator(\n getAsyncIterator(\n createAsyncIterator(\n models\n .getData(\"/films\")\n .filter(({ id }: { id: any }) => parent.films.includes(id)),\n ),\n ) as unknown as AsyncIterable<any>,\n // this ensures it's a awaitable iterator\n async (item) => {\n await new Promise((resolve) => setTimeout(resolve, 0));\n return item;\n },\n );\n};\n\nconst starships: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return mapAsyncIterator(\n getAsyncIterator(\n createAsyncIterator(\n models\n .getData(\"/starships\")\n .filter(({ id }: { id: any }) => parent.starships.includes(id)),\n ),\n ) as unknown as AsyncIterable<any>,\n // this ensures it's a awaitable iterator\n\n async (item) => {\n await new Promise((resolve) => setTimeout(resolve, 1));\n return item;\n },\n );\n};\n\nfunction people(key: string): GraphQLFieldResolver<any, any, any> {\n return (parent, _args, { models }) => {\n return models\n .getData(\"/people\")\n .filter(({ id }: { id: any }) => parent[key].includes(id));\n };\n}\n\nconst vehicles: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/vehicles\")\n .filter(({ id }: { id: any }) => parent.vehicles.includes(id));\n};\n\nconst planets: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .filter(({ id }: { id: any }) => parent.planets.includes(id));\n};\n\nconst species: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/species\")\n .filter(({ id }: { id: any }) => parent.species.includes(id));\n};\nconst homeworld: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .find((planet: any) => planet.id === parent.homeworld);\n};\n\nconst person: GraphQLFieldResolver<any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/people\").find((person: any) => person.id === id);\n};\n\nconst planet: GraphQLFieldResolver<any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/planets\").find((planet: any) => planet.id === id);\n};\n\nconst film: GraphQLFieldResolver<any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/films\").find((film: any) => film.id === id);\n};\n\nconst starship: GraphQLFieldResolver<any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models\n .getData(\"/starships\")\n .find((starship: any) => starship.id === id);\n};\n\nconst transport: GraphQLFieldResolver<any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models\n .getData(\"/transport\")\n .find((transport: any) => transport.id === id);\n};\n\nconst vehicle: GraphQLFieldResolver<any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/vehicles\").find((vehicle: any) => vehicle.id === id);\n};\n\nconst searchPeopleByName: GraphQLFieldResolver<any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/people\")\n .filter((person: any) => new RegExp(search, \"i\").test(person.name));\n};\n\nconst searchPlanetsByName: GraphQLFieldResolver<any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .filter((planet: any) => new RegExp(search, \"i\").test(planet.name));\n};\n\nconst searchFilmsByTitle: GraphQLFieldResolver<any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/films\")\n .filter((film: any) => new RegExp(search, \"i\").test(film.title));\n};\n\nconst searchSpeciesByName: GraphQLFieldResolver<any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/species\")\n .filter((species: any) => new RegExp(search, \"i\").test(species.name));\n};\n\nconst searchStarshipsByName: GraphQLFieldResolver<any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/starships\")\n .filter((starship: any) => new RegExp(search, \"i\").test(starship.name));\n};\n\nconst searchVehiclesByName: GraphQLFieldResolver<any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/vehicles\")\n .filter((vehicle: any) => new RegExp(search, \"i\").test(vehicle.name));\n};\n\nconst emitPersons: GraphQLFieldResolver<any, any, any> = async function (\n parent,\n { limit, throwError },\n { models },\n) {\n if (throwError) {\n throw new Error(\"error\");\n return;\n }\n const persons = await models.getData(\"/people\");\n const personsLimit = Math.min(limit, persons.length);\n const output: any = { length: personsLimit };\n for (let i = 0; i < personsLimit; i++) {\n output[i] = { emitPersons: persons[i] };\n }\n return createAsyncIterator(output);\n};\n\nconst searchTransportsByName: GraphQLFieldResolver<any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/transport\")\n .filter((transport: any) => new RegExp(search, \"i\").test(transport.name));\n};\n\nconst resolvers: IExecutableSchemaDefinition[\"resolvers\"] = {\n SearchResult: {\n __resolveType(parent: any) {\n return parent.__typename;\n },\n },\n Subscription: {\n emitPersons: {\n subscribe: emitPersons,\n },\n nonNullWithError: {\n subscribe() {\n throw new Error(\"Subscribe error\");\n },\n },\n nonNullWithErrorEvent: {\n subscribe() {\n return createAsyncIterator([\"foo\"]);\n },\n resolve() {\n throw new Error(\"Subscription event error\");\n },\n },\n nonNullWithNull: {\n subscribe() {\n return createAsyncIterator([\"foo\"]);\n },\n resolve() {},\n },\n },\n Query: {\n search(parent, { search }, { models }, info) {\n const result = [\n ...searchFilmsByTitle(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Film\") && r,\n ),\n ...searchPeopleByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Person\") && r,\n ),\n ...searchPlanetsByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Planet\") && r,\n ),\n ...searchSpeciesByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Species\") && r,\n ),\n ...searchStarshipsByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Starship\") && r,\n ),\n ...searchTransportsByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Transport\") && r,\n ),\n ...searchVehiclesByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Vehicle\") && r,\n ),\n ];\n\n return result;\n },\n\n node(parent, args, context, info) {\n let result;\n switch (args.nodeType) {\n case \"Person\": {\n result = person(parent, args, context, info);\n break;\n }\n case \"Starship\": {\n result = starship(parent, args, context, info);\n break;\n }\n case \"Transport\": {\n result = transport(parent, args, context, info);\n break;\n }\n case \"Species\": {\n result = species(parent, args, context, info);\n break;\n }\n case \"Vehicle\": {\n result = vehicle(parent, args, context, info);\n break;\n }\n case \"Planet\": {\n result = planet(parent, args, context, info);\n break;\n }\n case \"Film\": {\n result = film(parent, args, context, info);\n break;\n }\n default:\n throw new Error(`Invalid node type ${args.nodeType}`);\n }\n return {\n ...result,\n __typename: args.nodeType,\n };\n },\n\n person,\n planet,\n film,\n transport,\n starship,\n vehicle,\n searchPeopleByName,\n searchStarshipsByName,\n searchTransportsByName,\n searchSpeciesByName,\n searchVehiclesByName,\n searchPlanetsByName,\n searchFilmsByTitle,\n\n allStarships(_parent, _args, { models }) {\n return models.getData(\"/starships\");\n },\n allFilms(_parent, _args, { models }) {\n return models.getData(\"/films\");\n },\n allPeople(_parent, _args, { models }) {\n return models.getData(\"/people\");\n },\n allPlanets(_parent, _args, { models }) {\n return models.getData(\"/planets\");\n },\n allSpecies(_parent, _args, { models }) {\n return models.getData(\"/species\");\n },\n allTransports(_parent, _args, { models }) {\n return models.getData(\"/transport\");\n },\n advancedDefaultInput(_parent, args) {\n return JSON.stringify(args);\n },\n multiArger(_parent, args) {\n return JSON.stringify(args);\n },\n nonNullWithError() {\n throw new Error(\"Query error\");\n },\n nonNullWithNull() {},\n },\n Film: {\n starships,\n vehicles,\n planets,\n characters: people(\"characters\"),\n species,\n },\n Starship: {\n MGLT: (starship) => +starship.MGLT,\n hyperdrive_rating: (starship) => +starship.hyperdrive_rating,\n cargo_capacity: (starship) => +starship.cargo_capacity,\n passengers: (starship) => +starship.passengers,\n max_atmosphering_speed: (starship) => +starship.max_atmosphering_speed,\n length: (starship) => +starship.length,\n cost_in_credits: (starship) => +starship.cost_in_credits,\n pilots: people(\"pilots\"),\n films,\n },\n Person: {\n height: (pilot) => +pilot.height,\n mass: (pilot) => +pilot.mass,\n starships,\n homeworld,\n films,\n bubblingError: () => {\n throw new Error(\"Bubbling!\");\n },\n bubblingListError: () => {\n return forAwaitEach([1, 2, 3], async (item) => {\n await new Promise((resolve) => setTimeout(resolve, 0));\n if (item === 2) {\n throw new Error(\"Bubbling in list!\");\n }\n return item;\n });\n },\n },\n Vehicle: {\n cargo_capacity: (vehicle) => +vehicle.cargo_capacity,\n passengers: (vehicle) => +vehicle.passengers,\n max_atmosphering_speed: (vehicle) => +vehicle.max_atmosphering_speed,\n crew: (vehicle) => forceNumber(vehicle.crew),\n length: (vehicle) => +vehicle.length,\n cost_in_credits: (vehicle) => +vehicle.cost_in_credits,\n pilots: people(\"pilots\"),\n },\n Planet: {\n diameter: (planet) => +planet.diameter,\n rotation_period: (planet) => +planet.rotation_period,\n orbital_period: (planet) => +planet.orbital_period,\n population: (planet) => +planet.population,\n residents: people(\"residents\"),\n films,\n },\n Species: {\n average_lifespan: (species) => +species.average_lifespan,\n average_height: (species) => +species.average_height,\n homeworld,\n people: people(\"people\"),\n },\n Transport: {\n cargo_capacity: (vehicle) => +vehicle.cargo_capacity,\n passengers: (vehicle) => +vehicle.passengers,\n max_atmosphering_speed: (vehicle) => +vehicle.max_atmosphering_speed,\n crew: (vehicle) => forceNumber(vehicle.crew),\n length: (vehicle) => +vehicle.length,\n cost_in_credits: (vehicle) => +vehicle.cost_in_credits,\n },\n};\n\nconst forceNumber = (i: string) =>\n Number(i.split(\",\").join(\"\").split(\"-\")[0]) || -1;\n\nexport default resolvers;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,qBAAoE;AACpE,8BAAiC;AAUjC,MAAM,QAA6C,CACjD,QACA,OACA,EAAE,OAAO,MACN;AACH,aAAO;AAAA,QACL;AAAA,UACE;AAAA,QACE,OACG,QAAQ,QAAQ,EAChB,OAAO,CAAC,EAAE,GAAG,MAAmB,OAAO,MAAM,SAAS,EAAE,CAAC;AAAA,MAC9D;AAAA,IACF;AAAA;AAAA,IAEA,CAAO,SAAS;AACd,YAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,CAAC,CAAC;AACrD,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,MAAM,YAAiD,CACrD,QACA,OACA,EAAE,OAAO,MACN;AACH,aAAO;AAAA,QACL;AAAA,UACE;AAAA,QACE,OACG,QAAQ,YAAY,EACpB,OAAO,CAAC,EAAE,GAAG,MAAmB,OAAO,UAAU,SAAS,EAAE,CAAC;AAAA,MAClE;AAAA,IACF;AAAA;AAAA,IAGA,CAAO,SAAS;AACd,YAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,CAAC,CAAC;AACrD,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,SAAS,OAAO,KAAkD;AAChE,SAAO,CAAC,QAAQ,OAAO,EAAE,OAAO,MAAM;AACpC,WAAO,OACJ,QAAQ,SAAS,EACjB,OAAO,CAAC,EAAE,GAAG,MAAmB,OAAO,GAAG,EAAE,SAAS,EAAE,CAAC;AAAA,EAC7D;AACF;AAEA,MAAM,WAAgD,CACpD,QACA,OACA,EAAE,OAAO,MACN;AACH,SAAO,OACJ,QAAQ,WAAW,EACnB,OAAO,CAAC,EAAE,GAAG,MAAmB,OAAO,SAAS,SAAS,EAAE,CAAC;AACjE;AAEA,MAAM,UAA+C,CACnD,QACA,OACA,EAAE,OAAO,MACN;AACH,SAAO,OACJ,QAAQ,UAAU,EAClB,OAAO,CAAC,EAAE,GAAG,MAAmB,OAAO,QAAQ,SAAS,EAAE,CAAC;AAChE;AAEA,MAAM,UAA+C,CACnD,QACA,OACA,EAAE,OAAO,MACN;AACH,SAAO,OACJ,QAAQ,UAAU,EAClB,OAAO,CAAC,EAAE,GAAG,MAAmB,OAAO,QAAQ,SAAS,EAAE,CAAC;AAChE;AACA,MAAM,YAAiD,CACrD,QACA,OACA,EAAE,OAAO,MACN;AACH,SAAO,OACJ,QAAQ,UAAU,EAClB,KAAK,CAACA,YAAgBA,QAAO,OAAO,OAAO,SAAS;AACzD;AAEA,MAAM,SAA8C,CAClD,QACA,EAAE,GAAG,GACL,EAAE,OAAO,MACN;AACH,SAAO,OAAO,QAAQ,SAAS,EAAE,KAAK,CAACC,YAAgBA,QAAO,OAAO,EAAE;AACzE;AAEA,MAAM,SAA8C,CAClD,QACA,EAAE,GAAG,GACL,EAAE,OAAO,MACN;AACH,SAAO,OAAO,QAAQ,UAAU,EAAE,KAAK,CAACD,YAAgBA,QAAO,OAAO,EAAE;AAC1E;AAEA,MAAM,OAA4C,CAChD,QACA,EAAE,GAAG,GACL,EAAE,OAAO,MACN;AACH,SAAO,OAAO,QAAQ,QAAQ,EAAE,KAAK,CAACE,UAAcA,MAAK,OAAO,EAAE;AACpE;AAEA,MAAM,WAAgD,CACpD,QACA,EAAE,GAAG,GACL,EAAE,OAAO,MACN;AACH,SAAO,OACJ,QAAQ,YAAY,EACpB,KAAK,CAACC,cAAkBA,UAAS,OAAO,EAAE;AAC/C;AAEA,MAAM,YAAiD,CACrD,QACA,EAAE,GAAG,GACL,EAAE,OAAO,MACN;AACH,SAAO,OACJ,QAAQ,YAAY,EACpB,KAAK,CAACC,eAAmBA,WAAU,OAAO,EAAE;AACjD;AAEA,MAAM,UAA+C,CACnD,QACA,EAAE,GAAG,GACL,EAAE,OAAO,MACN;AACH,SAAO,OAAO,QAAQ,WAAW,EAAE,KAAK,CAACC,aAAiBA,SAAQ,OAAO,EAAE;AAC7E;AAEA,MAAM,qBAA0D,CAC9D,QACA,EAAE,OAAO,GACT,EAAE,OAAO,MACN;AACH,SAAO,OACJ,QAAQ,SAAS,EACjB,OAAO,CAACJ,YAAgB,IAAI,OAAO,QAAQ,GAAG,EAAE,KAAKA,QAAO,IAAI,CAAC;AACtE;AAEA,MAAM,sBAA2D,CAC/D,QACA,EAAE,OAAO,GACT,EAAE,OAAO,MACN;AACH,SAAO,OACJ,QAAQ,UAAU,EAClB,OAAO,CAACD,YAAgB,IAAI,OAAO,QAAQ,GAAG,EAAE,KAAKA,QAAO,IAAI,CAAC;AACtE;AAEA,MAAM,qBAA0D,CAC9D,QACA,EAAE,OAAO,GACT,EAAE,OAAO,MACN;AACH,SAAO,OACJ,QAAQ,QAAQ,EAChB,OAAO,CAACE,UAAc,IAAI,OAAO,QAAQ,GAAG,EAAE,KAAKA,MAAK,KAAK,CAAC;AACnE;AAEA,MAAM,sBAA2D,CAC/D,QACA,EAAE,OAAO,GACT,EAAE,OAAO,MACN;AACH,SAAO,OACJ,QAAQ,UAAU,EAClB,OAAO,CAACI,aAAiB,IAAI,OAAO,QAAQ,GAAG,EAAE,KAAKA,SAAQ,IAAI,CAAC;AACxE;AAEA,MAAM,wBAA6D,CACjE,QACA,EAAE,OAAO,GACT,EAAE,OAAO,MACN;AACH,SAAO,OACJ,QAAQ,YAAY,EACpB,OAAO,CAACH,cAAkB,IAAI,OAAO,QAAQ,GAAG,EAAE,KAAKA,UAAS,IAAI,CAAC;AAC1E;AAEA,MAAM,uBAA4D,CAChE,QACA,EAAE,OAAO,GACT,EAAE,OAAO,MACN;AACH,SAAO,OACJ,QAAQ,WAAW,EACnB,OAAO,CAACE,aAAiB,IAAI,OAAO,QAAQ,GAAG,EAAE,KAAKA,SAAQ,IAAI,CAAC;AACxE;AAEA,MAAM,cAAmD,SACvD,IACA,IACA,IACA;AAAA,6CAHA,QACA,EAAE,OAAO,WAAW,GACpB,EAAE,OAAO,GACT;AACA,QAAI,YAAY;AACd,YAAM,IAAI,MAAM,OAAO;AACvB;AAAA,IACF;AACA,UAAM,UAAU,MAAM,OAAO,QAAQ,SAAS;AAC9C,UAAM,eAAe,KAAK,IAAI,OAAO,QAAQ,MAAM;AACnD,UAAM,SAAc,EAAE,QAAQ,aAAa;AAC3C,aAAS,IAAI,GAAG,IAAI,cAAc,KAAK;AACrC,aAAO,CAAC,IAAI,EAAE,aAAa,QAAQ,CAAC,EAAE;AAAA,IACxC;AACA,eAAO,oCAAoB,MAAM;AAAA,EACnC;AAAA;AAEA,MAAM,yBAA8D,CAClE,QACA,EAAE,OAAO,GACT,EAAE,OAAO,MACN;AACH,SAAO,OACJ,QAAQ,YAAY,EACpB,OAAO,CAACD,eAAmB,IAAI,OAAO,QAAQ,GAAG,EAAE,KAAKA,WAAU,IAAI,CAAC;AAC5E;AAEA,MAAM,YAAsD;AAAA,EAC1D,cAAc;AAAA,IACZ,cAAc,QAAa;AACzB,aAAO,OAAO;AAAA,IAChB;AAAA,EACF;AAAA,EACA,cAAc;AAAA,IACZ,aAAa;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,kBAAkB;AAAA,MAChB,YAAY;AACV,cAAM,IAAI,MAAM,iBAAiB;AAAA,MACnC;AAAA,IACF;AAAA,IACA,uBAAuB;AAAA,MACrB,YAAY;AACV,mBAAO,oCAAoB,CAAC,KAAK,CAAC;AAAA,MACpC;AAAA,MACA,UAAU;AACR,cAAM,IAAI,MAAM,0BAA0B;AAAA,MAC5C;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,YAAY;AACV,mBAAO,oCAAoB,CAAC,KAAK,CAAC;AAAA,MACpC;AAAA,MACA,UAAU;AAAA,MAAC;AAAA,IACb;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,OAAO,QAAQ,EAAE,OAAO,GAAG,EAAE,OAAO,GAAG,MAAM;AAC3C,YAAM,SAAS;AAAA,QACb,GAAG,mBAAmB,QAAQ,EAAE,OAAO,GAAG,EAAE,OAAO,GAAG,IAAI,EAAE;AAAA,UAC1D,CAAC,OAAY,EAAE,aAAa,WAAW;AAAA,QACzC;AAAA,QACA,GAAG,mBAAmB,QAAQ,EAAE,OAAO,GAAG,EAAE,OAAO,GAAG,IAAI,EAAE;AAAA,UAC1D,CAAC,OAAY,EAAE,aAAa,aAAa;AAAA,QAC3C;AAAA,QACA,GAAG,oBAAoB,QAAQ,EAAE,OAAO,GAAG,EAAE,OAAO,GAAG,IAAI,EAAE;AAAA,UAC3D,CAAC,OAAY,EAAE,aAAa,aAAa;AAAA,QAC3C;AAAA,QACA,GAAG,oBAAoB,QAAQ,EAAE,OAAO,GAAG,EAAE,OAAO,GAAG,IAAI,EAAE;AAAA,UAC3D,CAAC,OAAY,EAAE,aAAa,cAAc;AAAA,QAC5C;AAAA,QACA,GAAG,sBAAsB,QAAQ,EAAE,OAAO,GAAG,EAAE,OAAO,GAAG,IAAI,EAAE;AAAA,UAC7D,CAAC,OAAY,EAAE,aAAa,eAAe;AAAA,QAC7C;AAAA,QACA,GAAG,uBAAuB,QAAQ,EAAE,OAAO,GAAG,EAAE,OAAO,GAAG,IAAI,EAAE;AAAA,UAC9D,CAAC,OAAY,EAAE,aAAa,gBAAgB;AAAA,QAC9C;AAAA,QACA,GAAG,qBAAqB,QAAQ,EAAE,OAAO,GAAG,EAAE,OAAO,GAAG,IAAI,EAAE;AAAA,UAC5D,CAAC,OAAY,EAAE,aAAa,cAAc;AAAA,QAC5C;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAAA,IAEA,KAAK,QAAQ,MAAM,SAAS,MAAM;AAChC,UAAI;AACJ,cAAQ,KAAK,UAAU;AAAA,QACrB,KAAK,UAAU;AACb,mBAAS,OAAO,QAAQ,MAAM,SAAS,IAAI;AAC3C;AAAA,QACF;AAAA,QACA,KAAK,YAAY;AACf,mBAAS,SAAS,QAAQ,MAAM,SAAS,IAAI;AAC7C;AAAA,QACF;AAAA,QACA,KAAK,aAAa;AAChB,mBAAS,UAAU,QAAQ,MAAM,SAAS,IAAI;AAC9C;AAAA,QACF;AAAA,QACA,KAAK,WAAW;AACd,mBAAS,QAAQ,QAAQ,MAAM,SAAS,IAAI;AAC5C;AAAA,QACF;AAAA,QACA,KAAK,WAAW;AACd,mBAAS,QAAQ,QAAQ,MAAM,SAAS,IAAI;AAC5C;AAAA,QACF;AAAA,QACA,KAAK,UAAU;AACb,mBAAS,OAAO,QAAQ,MAAM,SAAS,IAAI;AAC3C;AAAA,QACF;AAAA,QACA,KAAK,QAAQ;AACX,mBAAS,KAAK,QAAQ,MAAM,SAAS,IAAI;AACzC;AAAA,QACF;AAAA,QACA;AACE,gBAAM,IAAI,MAAM,qBAAqB,KAAK,UAAU;AAAA,MACxD;AACA,aAAO,iCACF,SADE;AAAA,QAEL,YAAY,KAAK;AAAA,MACnB;AAAA,IACF;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA,aAAa,SAAS,OAAO,EAAE,OAAO,GAAG;AACvC,aAAO,OAAO,QAAQ,YAAY;AAAA,IACpC;AAAA,IACA,SAAS,SAAS,OAAO,EAAE,OAAO,GAAG;AACnC,aAAO,OAAO,QAAQ,QAAQ;AAAA,IAChC;AAAA,IACA,UAAU,SAAS,OAAO,EAAE,OAAO,GAAG;AACpC,aAAO,OAAO,QAAQ,SAAS;AAAA,IACjC;AAAA,IACA,WAAW,SAAS,OAAO,EAAE,OAAO,GAAG;AACrC,aAAO,OAAO,QAAQ,UAAU;AAAA,IAClC;AAAA,IACA,WAAW,SAAS,OAAO,EAAE,OAAO,GAAG;AACrC,aAAO,OAAO,QAAQ,UAAU;AAAA,IAClC;AAAA,IACA,cAAc,SAAS,OAAO,EAAE,OAAO,GAAG;AACxC,aAAO,OAAO,QAAQ,YAAY;AAAA,IACpC;AAAA,IACA,qBAAqB,SAAS,MAAM;AAClC,aAAO,KAAK,UAAU,IAAI;AAAA,IAC5B;AAAA,IACA,WAAW,SAAS,MAAM;AACxB,aAAO,KAAK,UAAU,IAAI;AAAA,IAC5B;AAAA,IACA,mBAAmB;AACjB,YAAM,IAAI,MAAM,aAAa;AAAA,IAC/B;AAAA,IACA,kBAAkB;AAAA,IAAC;AAAA,EACrB;AAAA,EACA,MAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY,OAAO,YAAY;AAAA,IAC/B;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,MAAM,CAACD,cAAa,CAACA,UAAS;AAAA,IAC9B,mBAAmB,CAACA,cAAa,CAACA,UAAS;AAAA,IAC3C,gBAAgB,CAACA,cAAa,CAACA,UAAS;AAAA,IACxC,YAAY,CAACA,cAAa,CAACA,UAAS;AAAA,IACpC,wBAAwB,CAACA,cAAa,CAACA,UAAS;AAAA,IAChD,QAAQ,CAACA,cAAa,CAACA,UAAS;AAAA,IAChC,iBAAiB,CAACA,cAAa,CAACA,UAAS;AAAA,IACzC,QAAQ,OAAO,QAAQ;AAAA,IACvB;AAAA,EACF;AAAA,EACA,QAAQ;AAAA,IACN,QAAQ,CAAC,UAAU,CAAC,MAAM;AAAA,IAC1B,MAAM,CAAC,UAAU,CAAC,MAAM;AAAA,IACxB;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe,MAAM;AACnB,YAAM,IAAI,MAAM,WAAW;AAAA,IAC7B;AAAA,IACA,mBAAmB,MAAM;AACvB,iBAAO,6BAAa,CAAC,GAAG,GAAG,CAAC,GAAG,CAAO,SAAS;AAC7C,cAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,CAAC,CAAC;AACrD,YAAI,SAAS,GAAG;AACd,gBAAM,IAAI,MAAM,mBAAmB;AAAA,QACrC;AACA,eAAO;AAAA,MACT,EAAC;AAAA,IACH;AAAA,EACF;AAAA,EACA,SAAS;AAAA,IACP,gBAAgB,CAACE,aAAY,CAACA,SAAQ;AAAA,IACtC,YAAY,CAACA,aAAY,CAACA,SAAQ;AAAA,IAClC,wBAAwB,CAACA,aAAY,CAACA,SAAQ;AAAA,IAC9C,MAAM,CAACA,aAAY,YAAYA,SAAQ,IAAI;AAAA,IAC3C,QAAQ,CAACA,aAAY,CAACA,SAAQ;AAAA,IAC9B,iBAAiB,CAACA,aAAY,CAACA,SAAQ;AAAA,IACvC,QAAQ,OAAO,QAAQ;AAAA,EACzB;AAAA,EACA,QAAQ;AAAA,IACN,UAAU,CAACL,YAAW,CAACA,QAAO;AAAA,IAC9B,iBAAiB,CAACA,YAAW,CAACA,QAAO;AAAA,IACrC,gBAAgB,CAACA,YAAW,CAACA,QAAO;AAAA,IACpC,YAAY,CAACA,YAAW,CAACA,QAAO;AAAA,IAChC,WAAW,OAAO,WAAW;AAAA,IAC7B;AAAA,EACF;AAAA,EACA,SAAS;AAAA,IACP,kBAAkB,CAACM,aAAY,CAACA,SAAQ;AAAA,IACxC,gBAAgB,CAACA,aAAY,CAACA,SAAQ;AAAA,IACtC;AAAA,IACA,QAAQ,OAAO,QAAQ;AAAA,EACzB;AAAA,EACA,WAAW;AAAA,IACT,gBAAgB,CAACD,aAAY,CAACA,SAAQ;AAAA,IACtC,YAAY,CAACA,aAAY,CAACA,SAAQ;AAAA,IAClC,wBAAwB,CAACA,aAAY,CAACA,SAAQ;AAAA,IAC9C,MAAM,CAACA,aAAY,YAAYA,SAAQ,IAAI;AAAA,IAC3C,QAAQ,CAACA,aAAY,CAACA,SAAQ;AAAA,IAC9B,iBAAiB,CAACA,aAAY,CAACA,SAAQ;AAAA,EACzC;AACF;AAEA,MAAM,cAAc,CAAC,MACnB,OAAO,EAAE,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,KAAK;AAEjD,IAAO,oBAAQ;",
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createAsyncIterator, forAwaitEach, getAsyncIterator } from \"iterall\";\nimport { mapAsyncIterator } from \"../../utilities/mapAsyncIterator\";\nimport { FieldResolver, Resolvers } from \"../../types\";\nimport type { JsonDB } from \"node-json-db\";\n\ntype SwapiContext = { models: JsonDB };\n\nconst starships: FieldResolver<any, SwapiContext, any> = (\n parent,\n _args,\n { models },\n) => {\n return mapAsyncIterator(\n getAsyncIterator(\n createAsyncIterator(\n models\n .getData(\"/starships\")\n .filter(({ id }: { id: any }) => parent.starships.includes(id)),\n ),\n ) as unknown as AsyncIterable<any>,\n // this ensures it's a awaitable iterator\n\n async (item) => {\n await new Promise((resolve) => setTimeout(resolve, 1));\n return item;\n },\n );\n};\n\nfunction people(key: string): FieldResolver<any, SwapiContext, any> {\n return (parent, _args, { models }) => {\n return models\n .getData(\"/people\")\n .filter(({ id }: { id: any }) => parent[key].includes(id));\n };\n}\n\nconst vehicles: FieldResolver<any, SwapiContext, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/vehicles\")\n .filter(({ id }: { id: any }) => parent.vehicles.includes(id));\n};\n\nconst planets: FieldResolver<any, SwapiContext, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .filter(({ id }: { id: any }) => parent.planets.includes(id));\n};\n\nconst species: FieldResolver<any, SwapiContext, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/species\")\n .filter(({ id }: { id: any }) => parent.species.includes(id));\n};\nconst homeworld: FieldResolver<any, SwapiContext, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .find((planet: any) => planet.id === parent.homeworld);\n};\n\nconst person: FieldResolver<any, SwapiContext, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/people\").find((person: any) => person.id === id);\n};\n\nconst planet: FieldResolver<any, SwapiContext, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/planets\").find((planet: any) => planet.id === id);\n};\n\nconst films: FieldResolver<any, SwapiContext, any> = (\n parent,\n _args,\n { models },\n) => {\n return models.getData(\"/films\");\n};\n\nconst film: FieldResolver<any, SwapiContext, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/films\").find((film: any) => film.id === id);\n};\n\nconst starship: FieldResolver<any, SwapiContext, any> = (\n parent,\n { id },\n { models },\n) => {\n return models\n .getData(\"/starships\")\n .find((starship: any) => starship.id === id);\n};\n\nconst transport: FieldResolver<any, SwapiContext, any> = (\n parent,\n { id },\n { models },\n) => {\n return models\n .getData(\"/transport\")\n .find((transport: any) => transport.id === id);\n};\n\nconst vehicle: FieldResolver<any, SwapiContext, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/vehicles\").find((vehicle: any) => vehicle.id === id);\n};\n\nconst searchPeopleByName: FieldResolver<any, SwapiContext, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/people\")\n .filter((person: any) => new RegExp(search, \"i\").test(person.name));\n};\n\nconst searchPlanetsByName: FieldResolver<any, SwapiContext, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .filter((planet: any) => new RegExp(search, \"i\").test(planet.name));\n};\n\nconst searchFilmsByTitle: FieldResolver<any, SwapiContext, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/films\")\n .filter((film: any) => new RegExp(search, \"i\").test(film.title));\n};\n\nconst searchSpeciesByName: FieldResolver<any, SwapiContext, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/species\")\n .filter((species: any) => new RegExp(search, \"i\").test(species.name));\n};\n\nconst searchStarshipsByName: FieldResolver<any, SwapiContext, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/starships\")\n .filter((starship: any) => new RegExp(search, \"i\").test(starship.name));\n};\n\nconst searchVehiclesByName: FieldResolver<any, SwapiContext, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/vehicles\")\n .filter((vehicle: any) => new RegExp(search, \"i\").test(vehicle.name));\n};\n\nconst emitPersons: FieldResolver<any, SwapiContext, any> = {\n subscribe: async function (parent, { limit, throwError }, { models }) {\n if (throwError) {\n throw new Error(\"error\");\n }\n const persons = await models.getData(\"/people\");\n const personsLimit = Math.min(limit, persons.length);\n const output = [];\n for (let i = 0; i < personsLimit; i++) {\n output.push({ emitPersons: persons[i] });\n }\n return createAsyncIterator(output);\n },\n};\n\nconst emitPersonsV2: FieldResolver<any, SwapiContext, any> = {\n subscribe: async function (parent, { limit, throwError }, { models }) {\n if (throwError) {\n throw new Error(\"error\");\n }\n const persons = await models.getData(\"/people\");\n const personsLimit = Math.min(limit, persons.length);\n const output = [];\n for (let i = 0; i < personsLimit; i++) {\n output.push({ emitPersons: persons[i] });\n }\n return createAsyncIterator(output);\n },\n resolve: (parent, { emitError }) => {\n if (emitError && parent.emitPersons.name === \"R2-D2\") {\n throw new Error(\"No robots allowed\");\n }\n return parent.emitPersons;\n },\n};\n\nconst searchTransportsByName: FieldResolver<any, SwapiContext, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/transport\")\n .filter((transport: any) => new RegExp(search, \"i\").test(transport.name));\n};\n\nconst resolvers: Resolvers<any, SwapiContext> = {\n SearchResult: {\n __resolveType(parent: any) {\n return parent.__typename;\n },\n },\n Subscription: {\n emitPersons,\n emitPersonsV2,\n nonNullWithError: {\n subscribe() {\n throw new Error(\"Subscribe error\");\n },\n },\n nonNullWithErrorEvent: {\n subscribe() {\n return createAsyncIterator([\"foo\"]);\n },\n resolve() {\n throw new Error(\"Subscription event error\");\n },\n },\n nonNullWithNull: {\n subscribe() {\n return createAsyncIterator([\"foo\"]);\n },\n resolve() {},\n },\n },\n Query: {\n search(parent, { search }, { models }, info) {\n const result = [\n ...(\n searchFilmsByTitle(parent, { search }, { models }, info) as any\n ).map((r: any) => (r.__typename = \"Film\") && r),\n ...(\n searchPeopleByName(parent, { search }, { models }, info) as any\n ).map((r: any) => (r.__typename = \"Person\") && r),\n ...(\n searchPlanetsByName(parent, { search }, { models }, info) as any\n ).map((r: any) => (r.__typename = \"Planet\") && r),\n ...(\n searchSpeciesByName(parent, { search }, { models }, info) as any\n ).map((r: any) => (r.__typename = \"Species\") && r),\n ...(\n searchStarshipsByName(parent, { search }, { models }, info) as any\n ).map((r: any) => (r.__typename = \"Starship\") && r),\n ...(\n searchTransportsByName(parent, { search }, { models }, info) as any\n ).map((r: any) => (r.__typename = \"Transport\") && r),\n ...(\n searchVehiclesByName(parent, { search }, { models }, info) as any\n ).map((r: any) => (r.__typename = \"Vehicle\") && r),\n ];\n\n return result;\n },\n\n node(parent, args: any, context: any, info) {\n let result;\n switch (args.nodeType) {\n case \"Person\": {\n result = person(parent, args, context, info);\n break;\n }\n case \"Starship\": {\n result = starship(parent, args, context, info);\n break;\n }\n case \"Transport\": {\n result = transport(parent, args, context, info);\n break;\n }\n case \"Species\": {\n result = species(parent, args, context, info);\n break;\n }\n case \"Vehicle\": {\n result = vehicle(parent, args, context, info);\n break;\n }\n case \"Planet\": {\n result = planet(parent, args, context, info);\n break;\n }\n case \"Film\": {\n result = film(parent, args, context, info);\n break;\n }\n default:\n throw new Error(`Invalid node type ${args.nodeType}`);\n }\n return {\n ...(result as any),\n __typename: args.nodeType,\n };\n },\n\n person,\n planet,\n film,\n transport,\n starship,\n vehicle,\n searchPeopleByName,\n searchStarshipsByName,\n searchTransportsByName,\n searchSpeciesByName,\n searchVehiclesByName,\n searchPlanetsByName,\n searchFilmsByTitle,\n\n allStarships(_parent, _args, { models }) {\n return models.getData(\"/starships\");\n },\n allFilms(_parent, _args, { models }) {\n return models.getData(\"/films\");\n },\n allPeople(_parent, _args, { models }) {\n return models.getData(\"/people\");\n },\n allPlanets(_parent, _args, { models }) {\n return models.getData(\"/planets\");\n },\n allSpecies(_parent, _args, { models }) {\n return models.getData(\"/species\");\n },\n allTransports(_parent, _args, { models }) {\n return models.getData(\"/transport\");\n },\n advancedDefaultInput(_parent, args) {\n return JSON.stringify(args);\n },\n multiArger(_parent, args) {\n return JSON.stringify(args);\n },\n nonNullWithError() {\n throw new Error(\"Query error\");\n },\n nonNullWithNull() {},\n },\n Film: {\n starships,\n vehicles,\n planets,\n characters: people(\"characters\"),\n species,\n },\n Starship: {\n MGLT: (starship: any) => +starship.MGLT,\n hyperdrive_rating: (starship: any) => +starship.hyperdrive_rating,\n cargo_capacity: (starship: any) => +starship.cargo_capacity,\n passengers: (starship: any) => +starship.passengers,\n max_atmosphering_speed: (starship: any) => +starship.max_atmosphering_speed,\n length: (starship: any) => +starship.length,\n cost_in_credits: (starship: any) => +starship.cost_in_credits,\n pilots: people(\"pilots\"),\n films,\n },\n Person: {\n height: (pilot: any) => +pilot.height,\n mass: (pilot: any) => +pilot.mass,\n starships,\n homeworld,\n films,\n bubblingError: () => {\n throw new Error(\"Bubbling!\");\n },\n bubblingListError: () => {\n return forAwaitEach([1, 2, 3], async (item) => {\n await new Promise((resolve) => setTimeout(resolve, 0));\n if (item === 2) {\n throw new Error(\"Bubbling in list!\");\n }\n return item;\n });\n },\n },\n Vehicle: {\n cargo_capacity: (vehicle) => +vehicle.cargo_capacity,\n passengers: (vehicle) => +vehicle.passengers,\n max_atmosphering_speed: (vehicle) => +vehicle.max_atmosphering_speed,\n crew: (vehicle) => forceNumber(vehicle.crew),\n length: (vehicle) => +vehicle.length,\n cost_in_credits: (vehicle) => +vehicle.cost_in_credits,\n pilots: people(\"pilots\"),\n },\n Planet: {\n diameter: (planet) => +planet.diameter,\n rotation_period: (planet) => +planet.rotation_period,\n orbital_period: (planet) => +planet.orbital_period,\n population: (planet) => +planet.population,\n residents: people(\"residents\"),\n films,\n },\n Species: {\n average_lifespan: (species) => +species.average_lifespan,\n average_height: (species) => +species.average_height,\n homeworld,\n people: people(\"people\"),\n },\n Transport: {\n cargo_capacity: (vehicle) => +vehicle.cargo_capacity,\n passengers: (vehicle) => +vehicle.passengers,\n max_atmosphering_speed: (vehicle) => +vehicle.max_atmosphering_speed,\n crew: (vehicle) => forceNumber(vehicle.crew),\n length: (vehicle) => +vehicle.length,\n cost_in_credits: (vehicle) => +vehicle.cost_in_credits,\n },\n};\n\nconst forceNumber = (i: string) =>\n Number(i.split(\",\").join(\"\").split(\"-\")[0]) || -1;\n\nexport default resolvers;\n"],
5
+ "mappings": "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",
6
6
  "names": ["planet", "person", "film", "starship", "transport", "vehicle", "species"]
7
7
  }
@@ -41,20 +41,6 @@ var __async = (__this, __arguments, generator) => {
41
41
  // src/benchmarks/swapi-schema/resolvers.ts
42
42
  import { createAsyncIterator, forAwaitEach, getAsyncIterator } from "iterall";
43
43
  import { mapAsyncIterator } from "../../utilities/mapAsyncIterator.mjs";
44
- var films = (parent, _args, { models }) => {
45
- return mapAsyncIterator(
46
- getAsyncIterator(
47
- createAsyncIterator(
48
- models.getData("/films").filter(({ id }) => parent.films.includes(id))
49
- )
50
- ),
51
- // this ensures it's a awaitable iterator
52
- (item) => __async(void 0, null, function* () {
53
- yield new Promise((resolve) => setTimeout(resolve, 0));
54
- return item;
55
- })
56
- );
57
- };
58
44
  var starships = (parent, _args, { models }) => {
59
45
  return mapAsyncIterator(
60
46
  getAsyncIterator(
@@ -92,6 +78,9 @@ var person = (parent, { id }, { models }) => {
92
78
  var planet = (parent, { id }, { models }) => {
93
79
  return models.getData("/planets").find((planet2) => planet2.id === id);
94
80
  };
81
+ var films = (parent, _args, { models }) => {
82
+ return models.getData("/films");
83
+ };
95
84
  var film = (parent, { id }, { models }) => {
96
85
  return models.getData("/films").find((film2) => film2.id === id);
97
86
  };
@@ -122,20 +111,43 @@ var searchStarshipsByName = (parent, { search }, { models }) => {
122
111
  var searchVehiclesByName = (parent, { search }, { models }) => {
123
112
  return models.getData("/vehicles").filter((vehicle2) => new RegExp(search, "i").test(vehicle2.name));
124
113
  };
125
- var emitPersons = function(_0, _1, _2) {
126
- return __async(this, arguments, function* (parent, { limit, throwError }, { models }) {
127
- if (throwError) {
128
- throw new Error("error");
129
- return;
130
- }
131
- const persons = yield models.getData("/people");
132
- const personsLimit = Math.min(limit, persons.length);
133
- const output = { length: personsLimit };
134
- for (let i = 0; i < personsLimit; i++) {
135
- output[i] = { emitPersons: persons[i] };
114
+ var emitPersons = {
115
+ subscribe: function(_0, _1, _2) {
116
+ return __async(this, arguments, function* (parent, { limit, throwError }, { models }) {
117
+ if (throwError) {
118
+ throw new Error("error");
119
+ }
120
+ const persons = yield models.getData("/people");
121
+ const personsLimit = Math.min(limit, persons.length);
122
+ const output = [];
123
+ for (let i = 0; i < personsLimit; i++) {
124
+ output.push({ emitPersons: persons[i] });
125
+ }
126
+ return createAsyncIterator(output);
127
+ });
128
+ }
129
+ };
130
+ var emitPersonsV2 = {
131
+ subscribe: function(_0, _1, _2) {
132
+ return __async(this, arguments, function* (parent, { limit, throwError }, { models }) {
133
+ if (throwError) {
134
+ throw new Error("error");
135
+ }
136
+ const persons = yield models.getData("/people");
137
+ const personsLimit = Math.min(limit, persons.length);
138
+ const output = [];
139
+ for (let i = 0; i < personsLimit; i++) {
140
+ output.push({ emitPersons: persons[i] });
141
+ }
142
+ return createAsyncIterator(output);
143
+ });
144
+ },
145
+ resolve: (parent, { emitError }) => {
146
+ if (emitError && parent.emitPersons.name === "R2-D2") {
147
+ throw new Error("No robots allowed");
136
148
  }
137
- return createAsyncIterator(output);
138
- });
149
+ return parent.emitPersons;
150
+ }
139
151
  };
140
152
  var searchTransportsByName = (parent, { search }, { models }) => {
141
153
  return models.getData("/transport").filter((transport2) => new RegExp(search, "i").test(transport2.name));
@@ -147,9 +159,8 @@ var resolvers = {
147
159
  }
148
160
  },
149
161
  Subscription: {
150
- emitPersons: {
151
- subscribe: emitPersons
152
- },
162
+ emitPersons,
163
+ emitPersonsV2,
153
164
  nonNullWithError: {
154
165
  subscribe() {
155
166
  throw new Error("Subscribe error");
@@ -174,27 +185,13 @@ var resolvers = {
174
185
  Query: {
175
186
  search(parent, { search }, { models }, info) {
176
187
  const result = [
177
- ...searchFilmsByTitle(parent, { search }, { models }, info).map(
178
- (r) => (r.__typename = "Film") && r
179
- ),
180
- ...searchPeopleByName(parent, { search }, { models }, info).map(
181
- (r) => (r.__typename = "Person") && r
182
- ),
183
- ...searchPlanetsByName(parent, { search }, { models }, info).map(
184
- (r) => (r.__typename = "Planet") && r
185
- ),
186
- ...searchSpeciesByName(parent, { search }, { models }, info).map(
187
- (r) => (r.__typename = "Species") && r
188
- ),
189
- ...searchStarshipsByName(parent, { search }, { models }, info).map(
190
- (r) => (r.__typename = "Starship") && r
191
- ),
192
- ...searchTransportsByName(parent, { search }, { models }, info).map(
193
- (r) => (r.__typename = "Transport") && r
194
- ),
195
- ...searchVehiclesByName(parent, { search }, { models }, info).map(
196
- (r) => (r.__typename = "Vehicle") && r
197
- )
188
+ ...searchFilmsByTitle(parent, { search }, { models }, info).map((r) => (r.__typename = "Film") && r),
189
+ ...searchPeopleByName(parent, { search }, { models }, info).map((r) => (r.__typename = "Person") && r),
190
+ ...searchPlanetsByName(parent, { search }, { models }, info).map((r) => (r.__typename = "Planet") && r),
191
+ ...searchSpeciesByName(parent, { search }, { models }, info).map((r) => (r.__typename = "Species") && r),
192
+ ...searchStarshipsByName(parent, { search }, { models }, info).map((r) => (r.__typename = "Starship") && r),
193
+ ...searchTransportsByName(parent, { search }, { models }, info).map((r) => (r.__typename = "Transport") && r),
194
+ ...searchVehiclesByName(parent, { search }, { models }, info).map((r) => (r.__typename = "Vehicle") && r)
198
195
  ];
199
196
  return result;
200
197
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/benchmarks/swapi-schema/resolvers.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { IExecutableSchemaDefinition } from \"@graphql-tools/schema\";\nimport { createAsyncIterator, forAwaitEach, getAsyncIterator } from \"iterall\";\nimport { mapAsyncIterator } from \"../../utilities/mapAsyncIterator\";\n\n// Note: need this for graphql15-graphql17 cross-compatibility\ntype GraphQLFieldResolver<T = any, U = any, I = any> = (\n parent: T,\n args: U,\n context: I,\n info: any,\n) => any;\n\nconst films: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return mapAsyncIterator(\n getAsyncIterator(\n createAsyncIterator(\n models\n .getData(\"/films\")\n .filter(({ id }: { id: any }) => parent.films.includes(id)),\n ),\n ) as unknown as AsyncIterable<any>,\n // this ensures it's a awaitable iterator\n async (item) => {\n await new Promise((resolve) => setTimeout(resolve, 0));\n return item;\n },\n );\n};\n\nconst starships: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return mapAsyncIterator(\n getAsyncIterator(\n createAsyncIterator(\n models\n .getData(\"/starships\")\n .filter(({ id }: { id: any }) => parent.starships.includes(id)),\n ),\n ) as unknown as AsyncIterable<any>,\n // this ensures it's a awaitable iterator\n\n async (item) => {\n await new Promise((resolve) => setTimeout(resolve, 1));\n return item;\n },\n );\n};\n\nfunction people(key: string): GraphQLFieldResolver<any, any, any> {\n return (parent, _args, { models }) => {\n return models\n .getData(\"/people\")\n .filter(({ id }: { id: any }) => parent[key].includes(id));\n };\n}\n\nconst vehicles: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/vehicles\")\n .filter(({ id }: { id: any }) => parent.vehicles.includes(id));\n};\n\nconst planets: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .filter(({ id }: { id: any }) => parent.planets.includes(id));\n};\n\nconst species: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/species\")\n .filter(({ id }: { id: any }) => parent.species.includes(id));\n};\nconst homeworld: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .find((planet: any) => planet.id === parent.homeworld);\n};\n\nconst person: GraphQLFieldResolver<any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/people\").find((person: any) => person.id === id);\n};\n\nconst planet: GraphQLFieldResolver<any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/planets\").find((planet: any) => planet.id === id);\n};\n\nconst film: GraphQLFieldResolver<any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/films\").find((film: any) => film.id === id);\n};\n\nconst starship: GraphQLFieldResolver<any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models\n .getData(\"/starships\")\n .find((starship: any) => starship.id === id);\n};\n\nconst transport: GraphQLFieldResolver<any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models\n .getData(\"/transport\")\n .find((transport: any) => transport.id === id);\n};\n\nconst vehicle: GraphQLFieldResolver<any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/vehicles\").find((vehicle: any) => vehicle.id === id);\n};\n\nconst searchPeopleByName: GraphQLFieldResolver<any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/people\")\n .filter((person: any) => new RegExp(search, \"i\").test(person.name));\n};\n\nconst searchPlanetsByName: GraphQLFieldResolver<any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .filter((planet: any) => new RegExp(search, \"i\").test(planet.name));\n};\n\nconst searchFilmsByTitle: GraphQLFieldResolver<any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/films\")\n .filter((film: any) => new RegExp(search, \"i\").test(film.title));\n};\n\nconst searchSpeciesByName: GraphQLFieldResolver<any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/species\")\n .filter((species: any) => new RegExp(search, \"i\").test(species.name));\n};\n\nconst searchStarshipsByName: GraphQLFieldResolver<any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/starships\")\n .filter((starship: any) => new RegExp(search, \"i\").test(starship.name));\n};\n\nconst searchVehiclesByName: GraphQLFieldResolver<any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/vehicles\")\n .filter((vehicle: any) => new RegExp(search, \"i\").test(vehicle.name));\n};\n\nconst emitPersons: GraphQLFieldResolver<any, any, any> = async function (\n parent,\n { limit, throwError },\n { models },\n) {\n if (throwError) {\n throw new Error(\"error\");\n return;\n }\n const persons = await models.getData(\"/people\");\n const personsLimit = Math.min(limit, persons.length);\n const output: any = { length: personsLimit };\n for (let i = 0; i < personsLimit; i++) {\n output[i] = { emitPersons: persons[i] };\n }\n return createAsyncIterator(output);\n};\n\nconst searchTransportsByName: GraphQLFieldResolver<any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/transport\")\n .filter((transport: any) => new RegExp(search, \"i\").test(transport.name));\n};\n\nconst resolvers: IExecutableSchemaDefinition[\"resolvers\"] = {\n SearchResult: {\n __resolveType(parent: any) {\n return parent.__typename;\n },\n },\n Subscription: {\n emitPersons: {\n subscribe: emitPersons,\n },\n nonNullWithError: {\n subscribe() {\n throw new Error(\"Subscribe error\");\n },\n },\n nonNullWithErrorEvent: {\n subscribe() {\n return createAsyncIterator([\"foo\"]);\n },\n resolve() {\n throw new Error(\"Subscription event error\");\n },\n },\n nonNullWithNull: {\n subscribe() {\n return createAsyncIterator([\"foo\"]);\n },\n resolve() {},\n },\n },\n Query: {\n search(parent, { search }, { models }, info) {\n const result = [\n ...searchFilmsByTitle(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Film\") && r,\n ),\n ...searchPeopleByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Person\") && r,\n ),\n ...searchPlanetsByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Planet\") && r,\n ),\n ...searchSpeciesByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Species\") && r,\n ),\n ...searchStarshipsByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Starship\") && r,\n ),\n ...searchTransportsByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Transport\") && r,\n ),\n ...searchVehiclesByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Vehicle\") && r,\n ),\n ];\n\n return result;\n },\n\n node(parent, args, context, info) {\n let result;\n switch (args.nodeType) {\n case \"Person\": {\n result = person(parent, args, context, info);\n break;\n }\n case \"Starship\": {\n result = starship(parent, args, context, info);\n break;\n }\n case \"Transport\": {\n result = transport(parent, args, context, info);\n break;\n }\n case \"Species\": {\n result = species(parent, args, context, info);\n break;\n }\n case \"Vehicle\": {\n result = vehicle(parent, args, context, info);\n break;\n }\n case \"Planet\": {\n result = planet(parent, args, context, info);\n break;\n }\n case \"Film\": {\n result = film(parent, args, context, info);\n break;\n }\n default:\n throw new Error(`Invalid node type ${args.nodeType}`);\n }\n return {\n ...result,\n __typename: args.nodeType,\n };\n },\n\n person,\n planet,\n film,\n transport,\n starship,\n vehicle,\n searchPeopleByName,\n searchStarshipsByName,\n searchTransportsByName,\n searchSpeciesByName,\n searchVehiclesByName,\n searchPlanetsByName,\n searchFilmsByTitle,\n\n allStarships(_parent, _args, { models }) {\n return models.getData(\"/starships\");\n },\n allFilms(_parent, _args, { models }) {\n return models.getData(\"/films\");\n },\n allPeople(_parent, _args, { models }) {\n return models.getData(\"/people\");\n },\n allPlanets(_parent, _args, { models }) {\n return models.getData(\"/planets\");\n },\n allSpecies(_parent, _args, { models }) {\n return models.getData(\"/species\");\n },\n allTransports(_parent, _args, { models }) {\n return models.getData(\"/transport\");\n },\n advancedDefaultInput(_parent, args) {\n return JSON.stringify(args);\n },\n multiArger(_parent, args) {\n return JSON.stringify(args);\n },\n nonNullWithError() {\n throw new Error(\"Query error\");\n },\n nonNullWithNull() {},\n },\n Film: {\n starships,\n vehicles,\n planets,\n characters: people(\"characters\"),\n species,\n },\n Starship: {\n MGLT: (starship) => +starship.MGLT,\n hyperdrive_rating: (starship) => +starship.hyperdrive_rating,\n cargo_capacity: (starship) => +starship.cargo_capacity,\n passengers: (starship) => +starship.passengers,\n max_atmosphering_speed: (starship) => +starship.max_atmosphering_speed,\n length: (starship) => +starship.length,\n cost_in_credits: (starship) => +starship.cost_in_credits,\n pilots: people(\"pilots\"),\n films,\n },\n Person: {\n height: (pilot) => +pilot.height,\n mass: (pilot) => +pilot.mass,\n starships,\n homeworld,\n films,\n bubblingError: () => {\n throw new Error(\"Bubbling!\");\n },\n bubblingListError: () => {\n return forAwaitEach([1, 2, 3], async (item) => {\n await new Promise((resolve) => setTimeout(resolve, 0));\n if (item === 2) {\n throw new Error(\"Bubbling in list!\");\n }\n return item;\n });\n },\n },\n Vehicle: {\n cargo_capacity: (vehicle) => +vehicle.cargo_capacity,\n passengers: (vehicle) => +vehicle.passengers,\n max_atmosphering_speed: (vehicle) => +vehicle.max_atmosphering_speed,\n crew: (vehicle) => forceNumber(vehicle.crew),\n length: (vehicle) => +vehicle.length,\n cost_in_credits: (vehicle) => +vehicle.cost_in_credits,\n pilots: people(\"pilots\"),\n },\n Planet: {\n diameter: (planet) => +planet.diameter,\n rotation_period: (planet) => +planet.rotation_period,\n orbital_period: (planet) => +planet.orbital_period,\n population: (planet) => +planet.population,\n residents: people(\"residents\"),\n films,\n },\n Species: {\n average_lifespan: (species) => +species.average_lifespan,\n average_height: (species) => +species.average_height,\n homeworld,\n people: people(\"people\"),\n },\n Transport: {\n cargo_capacity: (vehicle) => +vehicle.cargo_capacity,\n passengers: (vehicle) => +vehicle.passengers,\n max_atmosphering_speed: (vehicle) => +vehicle.max_atmosphering_speed,\n crew: (vehicle) => forceNumber(vehicle.crew),\n length: (vehicle) => +vehicle.length,\n cost_in_credits: (vehicle) => +vehicle.cost_in_credits,\n },\n};\n\nconst forceNumber = (i: string) =>\n Number(i.split(\",\").join(\"\").split(\"-\")[0]) || -1;\n\nexport default resolvers;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createAsyncIterator, forAwaitEach, getAsyncIterator } from \"iterall\";\nimport { mapAsyncIterator } from \"../../utilities/mapAsyncIterator\";\nimport { FieldResolver, Resolvers } from \"../../types\";\nimport type { JsonDB } from \"node-json-db\";\n\ntype SwapiContext = { models: JsonDB };\n\nconst starships: FieldResolver<any, SwapiContext, any> = (\n parent,\n _args,\n { models },\n) => {\n return mapAsyncIterator(\n getAsyncIterator(\n createAsyncIterator(\n models\n .getData(\"/starships\")\n .filter(({ id }: { id: any }) => parent.starships.includes(id)),\n ),\n ) as unknown as AsyncIterable<any>,\n // this ensures it's a awaitable iterator\n\n async (item) => {\n await new Promise((resolve) => setTimeout(resolve, 1));\n return item;\n },\n );\n};\n\nfunction people(key: string): FieldResolver<any, SwapiContext, any> {\n return (parent, _args, { models }) => {\n return models\n .getData(\"/people\")\n .filter(({ id }: { id: any }) => parent[key].includes(id));\n };\n}\n\nconst vehicles: FieldResolver<any, SwapiContext, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/vehicles\")\n .filter(({ id }: { id: any }) => parent.vehicles.includes(id));\n};\n\nconst planets: FieldResolver<any, SwapiContext, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .filter(({ id }: { id: any }) => parent.planets.includes(id));\n};\n\nconst species: FieldResolver<any, SwapiContext, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/species\")\n .filter(({ id }: { id: any }) => parent.species.includes(id));\n};\nconst homeworld: FieldResolver<any, SwapiContext, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .find((planet: any) => planet.id === parent.homeworld);\n};\n\nconst person: FieldResolver<any, SwapiContext, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/people\").find((person: any) => person.id === id);\n};\n\nconst planet: FieldResolver<any, SwapiContext, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/planets\").find((planet: any) => planet.id === id);\n};\n\nconst films: FieldResolver<any, SwapiContext, any> = (\n parent,\n _args,\n { models },\n) => {\n return models.getData(\"/films\");\n};\n\nconst film: FieldResolver<any, SwapiContext, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/films\").find((film: any) => film.id === id);\n};\n\nconst starship: FieldResolver<any, SwapiContext, any> = (\n parent,\n { id },\n { models },\n) => {\n return models\n .getData(\"/starships\")\n .find((starship: any) => starship.id === id);\n};\n\nconst transport: FieldResolver<any, SwapiContext, any> = (\n parent,\n { id },\n { models },\n) => {\n return models\n .getData(\"/transport\")\n .find((transport: any) => transport.id === id);\n};\n\nconst vehicle: FieldResolver<any, SwapiContext, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/vehicles\").find((vehicle: any) => vehicle.id === id);\n};\n\nconst searchPeopleByName: FieldResolver<any, SwapiContext, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/people\")\n .filter((person: any) => new RegExp(search, \"i\").test(person.name));\n};\n\nconst searchPlanetsByName: FieldResolver<any, SwapiContext, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .filter((planet: any) => new RegExp(search, \"i\").test(planet.name));\n};\n\nconst searchFilmsByTitle: FieldResolver<any, SwapiContext, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/films\")\n .filter((film: any) => new RegExp(search, \"i\").test(film.title));\n};\n\nconst searchSpeciesByName: FieldResolver<any, SwapiContext, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/species\")\n .filter((species: any) => new RegExp(search, \"i\").test(species.name));\n};\n\nconst searchStarshipsByName: FieldResolver<any, SwapiContext, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/starships\")\n .filter((starship: any) => new RegExp(search, \"i\").test(starship.name));\n};\n\nconst searchVehiclesByName: FieldResolver<any, SwapiContext, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/vehicles\")\n .filter((vehicle: any) => new RegExp(search, \"i\").test(vehicle.name));\n};\n\nconst emitPersons: FieldResolver<any, SwapiContext, any> = {\n subscribe: async function (parent, { limit, throwError }, { models }) {\n if (throwError) {\n throw new Error(\"error\");\n }\n const persons = await models.getData(\"/people\");\n const personsLimit = Math.min(limit, persons.length);\n const output = [];\n for (let i = 0; i < personsLimit; i++) {\n output.push({ emitPersons: persons[i] });\n }\n return createAsyncIterator(output);\n },\n};\n\nconst emitPersonsV2: FieldResolver<any, SwapiContext, any> = {\n subscribe: async function (parent, { limit, throwError }, { models }) {\n if (throwError) {\n throw new Error(\"error\");\n }\n const persons = await models.getData(\"/people\");\n const personsLimit = Math.min(limit, persons.length);\n const output = [];\n for (let i = 0; i < personsLimit; i++) {\n output.push({ emitPersons: persons[i] });\n }\n return createAsyncIterator(output);\n },\n resolve: (parent, { emitError }) => {\n if (emitError && parent.emitPersons.name === \"R2-D2\") {\n throw new Error(\"No robots allowed\");\n }\n return parent.emitPersons;\n },\n};\n\nconst searchTransportsByName: FieldResolver<any, SwapiContext, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/transport\")\n .filter((transport: any) => new RegExp(search, \"i\").test(transport.name));\n};\n\nconst resolvers: Resolvers<any, SwapiContext> = {\n SearchResult: {\n __resolveType(parent: any) {\n return parent.__typename;\n },\n },\n Subscription: {\n emitPersons,\n emitPersonsV2,\n nonNullWithError: {\n subscribe() {\n throw new Error(\"Subscribe error\");\n },\n },\n nonNullWithErrorEvent: {\n subscribe() {\n return createAsyncIterator([\"foo\"]);\n },\n resolve() {\n throw new Error(\"Subscription event error\");\n },\n },\n nonNullWithNull: {\n subscribe() {\n return createAsyncIterator([\"foo\"]);\n },\n resolve() {},\n },\n },\n Query: {\n search(parent, { search }, { models }, info) {\n const result = [\n ...(\n searchFilmsByTitle(parent, { search }, { models }, info) as any\n ).map((r: any) => (r.__typename = \"Film\") && r),\n ...(\n searchPeopleByName(parent, { search }, { models }, info) as any\n ).map((r: any) => (r.__typename = \"Person\") && r),\n ...(\n searchPlanetsByName(parent, { search }, { models }, info) as any\n ).map((r: any) => (r.__typename = \"Planet\") && r),\n ...(\n searchSpeciesByName(parent, { search }, { models }, info) as any\n ).map((r: any) => (r.__typename = \"Species\") && r),\n ...(\n searchStarshipsByName(parent, { search }, { models }, info) as any\n ).map((r: any) => (r.__typename = \"Starship\") && r),\n ...(\n searchTransportsByName(parent, { search }, { models }, info) as any\n ).map((r: any) => (r.__typename = \"Transport\") && r),\n ...(\n searchVehiclesByName(parent, { search }, { models }, info) as any\n ).map((r: any) => (r.__typename = \"Vehicle\") && r),\n ];\n\n return result;\n },\n\n node(parent, args: any, context: any, info) {\n let result;\n switch (args.nodeType) {\n case \"Person\": {\n result = person(parent, args, context, info);\n break;\n }\n case \"Starship\": {\n result = starship(parent, args, context, info);\n break;\n }\n case \"Transport\": {\n result = transport(parent, args, context, info);\n break;\n }\n case \"Species\": {\n result = species(parent, args, context, info);\n break;\n }\n case \"Vehicle\": {\n result = vehicle(parent, args, context, info);\n break;\n }\n case \"Planet\": {\n result = planet(parent, args, context, info);\n break;\n }\n case \"Film\": {\n result = film(parent, args, context, info);\n break;\n }\n default:\n throw new Error(`Invalid node type ${args.nodeType}`);\n }\n return {\n ...(result as any),\n __typename: args.nodeType,\n };\n },\n\n person,\n planet,\n film,\n transport,\n starship,\n vehicle,\n searchPeopleByName,\n searchStarshipsByName,\n searchTransportsByName,\n searchSpeciesByName,\n searchVehiclesByName,\n searchPlanetsByName,\n searchFilmsByTitle,\n\n allStarships(_parent, _args, { models }) {\n return models.getData(\"/starships\");\n },\n allFilms(_parent, _args, { models }) {\n return models.getData(\"/films\");\n },\n allPeople(_parent, _args, { models }) {\n return models.getData(\"/people\");\n },\n allPlanets(_parent, _args, { models }) {\n return models.getData(\"/planets\");\n },\n allSpecies(_parent, _args, { models }) {\n return models.getData(\"/species\");\n },\n allTransports(_parent, _args, { models }) {\n return models.getData(\"/transport\");\n },\n advancedDefaultInput(_parent, args) {\n return JSON.stringify(args);\n },\n multiArger(_parent, args) {\n return JSON.stringify(args);\n },\n nonNullWithError() {\n throw new Error(\"Query error\");\n },\n nonNullWithNull() {},\n },\n Film: {\n starships,\n vehicles,\n planets,\n characters: people(\"characters\"),\n species,\n },\n Starship: {\n MGLT: (starship: any) => +starship.MGLT,\n hyperdrive_rating: (starship: any) => +starship.hyperdrive_rating,\n cargo_capacity: (starship: any) => +starship.cargo_capacity,\n passengers: (starship: any) => +starship.passengers,\n max_atmosphering_speed: (starship: any) => +starship.max_atmosphering_speed,\n length: (starship: any) => +starship.length,\n cost_in_credits: (starship: any) => +starship.cost_in_credits,\n pilots: people(\"pilots\"),\n films,\n },\n Person: {\n height: (pilot: any) => +pilot.height,\n mass: (pilot: any) => +pilot.mass,\n starships,\n homeworld,\n films,\n bubblingError: () => {\n throw new Error(\"Bubbling!\");\n },\n bubblingListError: () => {\n return forAwaitEach([1, 2, 3], async (item) => {\n await new Promise((resolve) => setTimeout(resolve, 0));\n if (item === 2) {\n throw new Error(\"Bubbling in list!\");\n }\n return item;\n });\n },\n },\n Vehicle: {\n cargo_capacity: (vehicle) => +vehicle.cargo_capacity,\n passengers: (vehicle) => +vehicle.passengers,\n max_atmosphering_speed: (vehicle) => +vehicle.max_atmosphering_speed,\n crew: (vehicle) => forceNumber(vehicle.crew),\n length: (vehicle) => +vehicle.length,\n cost_in_credits: (vehicle) => +vehicle.cost_in_credits,\n pilots: people(\"pilots\"),\n },\n Planet: {\n diameter: (planet) => +planet.diameter,\n rotation_period: (planet) => +planet.rotation_period,\n orbital_period: (planet) => +planet.orbital_period,\n population: (planet) => +planet.population,\n residents: people(\"residents\"),\n films,\n },\n Species: {\n average_lifespan: (species) => +species.average_lifespan,\n average_height: (species) => +species.average_height,\n homeworld,\n people: people(\"people\"),\n },\n Transport: {\n cargo_capacity: (vehicle) => +vehicle.cargo_capacity,\n passengers: (vehicle) => +vehicle.passengers,\n max_atmosphering_speed: (vehicle) => +vehicle.max_atmosphering_speed,\n crew: (vehicle) => forceNumber(vehicle.crew),\n length: (vehicle) => +vehicle.length,\n cost_in_credits: (vehicle) => +vehicle.cost_in_credits,\n },\n};\n\nconst forceNumber = (i: string) =>\n Number(i.split(\",\").join(\"\").split(\"-\")[0]) || -1;\n\nexport default resolvers;\n"],
5
+ "mappings": "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",
6
6
  "names": ["planet", "person", "film", "starship", "transport", "vehicle", "species"]
7
7
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@graphitation/supermassive",
3
3
  "license": "MIT",
4
- "version": "3.8.0",
4
+ "version": "3.8.1",
5
5
  "main": "./lib/index",
6
6
  "repository": {
7
7
  "type": "git",