@graphitation/supermassive 0.1.3 → 0.4.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.
Files changed (193) hide show
  1. package/CHANGELOG.md +34 -2
  2. package/NOTICE +27 -0
  3. package/README.md +264 -2
  4. package/bin/supermassive.js +7 -0
  5. package/lib/{src/ast → ast}/TypedAST.d.ts +2 -0
  6. package/lib/ast/TypedAST.d.ts.map +1 -0
  7. package/lib/{src/ast → ast}/addTypesToRequestDocument.d.ts +0 -0
  8. package/lib/ast/addTypesToRequestDocument.d.ts.map +1 -0
  9. package/lib/ast/addTypesToRequestDocument.js +8 -5
  10. package/lib/ast/addTypesToRequestDocument.mjs +12 -6
  11. package/lib/benchmarks/index.d.ts.map +1 -1
  12. package/lib/benchmarks/index.js +127 -0
  13. package/lib/benchmarks/index.mjs +111 -0
  14. package/lib/benchmarks/nice-benchmark.d.ts +1 -1
  15. package/lib/benchmarks/nice-benchmark.d.ts.map +1 -1
  16. package/lib/benchmarks/nice-benchmark.js +72 -0
  17. package/lib/benchmarks/nice-benchmark.mjs +52 -0
  18. package/lib/benchmarks/swapi-schema/index.d.ts +1 -0
  19. package/lib/benchmarks/swapi-schema/index.d.ts.map +1 -1
  20. package/lib/benchmarks/swapi-schema/index.js +39 -0
  21. package/lib/benchmarks/swapi-schema/index.mjs +17 -0
  22. package/lib/benchmarks/swapi-schema/models.d.ts.map +1 -1
  23. package/lib/benchmarks/swapi-schema/models.js +29 -0
  24. package/lib/benchmarks/swapi-schema/models.mjs +7 -0
  25. package/lib/benchmarks/swapi-schema/resolvers.d.ts.map +1 -1
  26. package/lib/benchmarks/swapi-schema/resolvers.js +237 -0
  27. package/lib/benchmarks/swapi-schema/resolvers.mjs +230 -0
  28. package/lib/bin/supermassive.d.ts +3 -0
  29. package/lib/bin/supermassive.d.ts.map +1 -0
  30. package/lib/bin/supermassive.js +83 -0
  31. package/lib/bin/supermassive.mjs +62 -0
  32. package/lib/collectFields.d.ts +17 -0
  33. package/lib/collectFields.d.ts.map +1 -0
  34. package/lib/collectFields.js +83 -0
  35. package/lib/collectFields.mjs +61 -0
  36. package/lib/compiledQuery.d.ts +1 -0
  37. package/lib/compiledQuery.d.ts.map +1 -0
  38. package/lib/compiledQuery.js +0 -0
  39. package/lib/compiledQuery.mjs +0 -0
  40. package/lib/executeWithSchema.d.ts +4 -0
  41. package/lib/executeWithSchema.d.ts.map +1 -0
  42. package/lib/{index.test.js → executeWithSchema.js} +45 -46
  43. package/lib/executeWithSchema.mjs +64 -0
  44. package/lib/executeWithoutSchema.d.ts +99 -0
  45. package/lib/executeWithoutSchema.d.ts.map +1 -0
  46. package/lib/executeWithoutSchema.js +376 -0
  47. package/lib/executeWithoutSchema.mjs +363 -0
  48. package/lib/extractImplicitTypesRuntime.d.ts +4 -0
  49. package/lib/extractImplicitTypesRuntime.d.ts.map +1 -0
  50. package/lib/extractImplicitTypesRuntime.js +103 -0
  51. package/lib/extractImplicitTypesRuntime.mjs +91 -0
  52. package/lib/extractImplicitTypesToTypescript.d.ts +4 -0
  53. package/lib/extractImplicitTypesToTypescript.d.ts.map +1 -0
  54. package/lib/extractImplicitTypesToTypescript.js +169 -0
  55. package/lib/extractImplicitTypesToTypescript.mjs +149 -0
  56. package/lib/index.d.ts +8 -0
  57. package/lib/index.d.ts.map +1 -0
  58. package/lib/index.js +12 -29
  59. package/lib/index.mjs +13 -29
  60. package/lib/jsutils/Maybe.d.ts +3 -0
  61. package/lib/jsutils/Maybe.d.ts.map +1 -0
  62. package/lib/jsutils/Maybe.js +3 -0
  63. package/lib/jsutils/Maybe.mjs +0 -0
  64. package/lib/jsutils/ObjMap.d.ts +13 -0
  65. package/lib/jsutils/ObjMap.d.ts.map +1 -0
  66. package/lib/jsutils/ObjMap.js +3 -0
  67. package/lib/jsutils/ObjMap.mjs +0 -0
  68. package/lib/jsutils/Path.d.ts +15 -0
  69. package/lib/jsutils/Path.d.ts.map +1 -0
  70. package/lib/jsutils/Path.js +23 -0
  71. package/lib/jsutils/Path.mjs +17 -0
  72. package/lib/jsutils/PromiseOrValue.d.ts +2 -0
  73. package/lib/jsutils/PromiseOrValue.d.ts.map +1 -0
  74. package/lib/jsutils/PromiseOrValue.js +3 -0
  75. package/lib/jsutils/PromiseOrValue.mjs +0 -0
  76. package/lib/jsutils/devAssert.d.ts +2 -0
  77. package/lib/jsutils/devAssert.d.ts.map +1 -0
  78. package/lib/jsutils/devAssert.js +16 -0
  79. package/lib/jsutils/devAssert.mjs +10 -0
  80. package/lib/jsutils/didYouMean.d.ts +6 -0
  81. package/lib/jsutils/didYouMean.d.ts.map +1 -0
  82. package/lib/jsutils/didYouMean.js +30 -0
  83. package/lib/jsutils/didYouMean.mjs +24 -0
  84. package/lib/jsutils/identityFunc.d.ts +5 -0
  85. package/lib/jsutils/identityFunc.d.ts.map +1 -0
  86. package/lib/jsutils/identityFunc.js +13 -0
  87. package/lib/jsutils/identityFunc.mjs +7 -0
  88. package/lib/jsutils/inspect.d.ts +5 -0
  89. package/lib/jsutils/inspect.d.ts.map +1 -0
  90. package/lib/jsutils/inspect.js +89 -0
  91. package/lib/jsutils/inspect.mjs +83 -0
  92. package/lib/jsutils/instanceOf.d.ts +14 -0
  93. package/lib/jsutils/instanceOf.d.ts.map +1 -0
  94. package/lib/jsutils/instanceOf.js +55 -0
  95. package/lib/jsutils/instanceOf.mjs +33 -0
  96. package/lib/jsutils/invariant.d.ts +2 -0
  97. package/lib/jsutils/invariant.d.ts.map +1 -0
  98. package/lib/jsutils/invariant.js +16 -0
  99. package/lib/jsutils/invariant.mjs +10 -0
  100. package/lib/jsutils/isAsyncIterable.d.ts +6 -0
  101. package/lib/jsutils/isAsyncIterable.d.ts.map +1 -0
  102. package/lib/jsutils/isAsyncIterable.js +13 -0
  103. package/lib/jsutils/isAsyncIterable.mjs +7 -0
  104. package/lib/jsutils/isIterableObject.d.ts +18 -0
  105. package/lib/jsutils/isIterableObject.d.ts.map +1 -0
  106. package/lib/jsutils/isIterableObject.js +13 -0
  107. package/lib/jsutils/isIterableObject.mjs +7 -0
  108. package/lib/jsutils/isObjectLike.d.ts +8 -0
  109. package/lib/jsutils/isObjectLike.d.ts.map +1 -0
  110. package/lib/jsutils/isObjectLike.js +13 -0
  111. package/lib/jsutils/isObjectLike.mjs +7 -0
  112. package/lib/jsutils/isPromise.d.ts +6 -0
  113. package/lib/jsutils/isPromise.d.ts.map +1 -0
  114. package/lib/jsutils/isPromise.js +13 -0
  115. package/lib/jsutils/isPromise.mjs +7 -0
  116. package/lib/jsutils/keyMap.d.ts +26 -0
  117. package/lib/jsutils/keyMap.d.ts.map +1 -0
  118. package/lib/jsutils/keyMap.js +17 -0
  119. package/lib/jsutils/keyMap.mjs +11 -0
  120. package/lib/jsutils/keyValMap.d.ts +20 -0
  121. package/lib/jsutils/keyValMap.d.ts.map +1 -0
  122. package/lib/jsutils/keyValMap.js +17 -0
  123. package/lib/jsutils/keyValMap.mjs +11 -0
  124. package/lib/jsutils/mapValue.d.ts +7 -0
  125. package/lib/jsutils/mapValue.d.ts.map +1 -0
  126. package/lib/jsutils/mapValue.js +17 -0
  127. package/lib/jsutils/mapValue.mjs +11 -0
  128. package/lib/jsutils/memoize3.d.ts +5 -0
  129. package/lib/jsutils/memoize3.d.ts.map +1 -0
  130. package/lib/jsutils/memoize3.js +34 -0
  131. package/lib/jsutils/memoize3.mjs +28 -0
  132. package/lib/jsutils/naturalCompare.d.ts +9 -0
  133. package/lib/jsutils/naturalCompare.d.ts.map +1 -0
  134. package/lib/jsutils/naturalCompare.js +53 -0
  135. package/lib/jsutils/naturalCompare.mjs +47 -0
  136. package/lib/jsutils/printPathArray.d.ts +5 -0
  137. package/lib/jsutils/printPathArray.d.ts.map +1 -0
  138. package/lib/jsutils/printPathArray.js +13 -0
  139. package/lib/jsutils/printPathArray.mjs +7 -0
  140. package/lib/jsutils/promiseForObject.d.ts +10 -0
  141. package/lib/jsutils/promiseForObject.d.ts.map +1 -0
  142. package/lib/jsutils/promiseForObject.js +19 -0
  143. package/lib/jsutils/promiseForObject.mjs +13 -0
  144. package/lib/jsutils/promiseReduce.d.ts +10 -0
  145. package/lib/jsutils/promiseReduce.d.ts.map +1 -0
  146. package/lib/jsutils/promiseReduce.js +34 -0
  147. package/lib/jsutils/promiseReduce.mjs +12 -0
  148. package/lib/jsutils/suggestionList.d.ts +6 -0
  149. package/lib/jsutils/suggestionList.d.ts.map +1 -0
  150. package/lib/jsutils/suggestionList.js +109 -0
  151. package/lib/jsutils/suggestionList.mjs +87 -0
  152. package/lib/jsutils/toObjMap.d.ts +4 -0
  153. package/lib/jsutils/toObjMap.d.ts.map +1 -0
  154. package/lib/jsutils/toObjMap.js +20 -0
  155. package/lib/jsutils/toObjMap.mjs +14 -0
  156. package/lib/transforms/annotateDocumentGraphQLTransform.d.ts +3 -0
  157. package/lib/transforms/annotateDocumentGraphQLTransform.d.ts.map +1 -0
  158. package/lib/transforms/annotateDocumentGraphQLTransform.js +37 -0
  159. package/lib/transforms/annotateDocumentGraphQLTransform.mjs +17 -0
  160. package/lib/transforms/transformerTestUtils.d.ts +79 -0
  161. package/lib/transforms/transformerTestUtils.d.ts.map +1 -0
  162. package/lib/transforms/transformerTestUtils.js +175 -0
  163. package/lib/transforms/transformerTestUtils.mjs +160 -0
  164. package/lib/types.d.ts +74 -0
  165. package/lib/types.d.ts.map +1 -0
  166. package/lib/types.js +3 -0
  167. package/lib/types.mjs +0 -0
  168. package/lib/utilities/typeNameFromAST.d.ts +3 -0
  169. package/lib/utilities/typeNameFromAST.d.ts.map +1 -0
  170. package/lib/utilities/typeNameFromAST.js +34 -0
  171. package/lib/utilities/typeNameFromAST.mjs +12 -0
  172. package/lib/values.d.ts +64 -0
  173. package/lib/values.d.ts.map +1 -0
  174. package/lib/values.js +145 -0
  175. package/lib/values.mjs +138 -0
  176. package/package.json +21 -6
  177. package/.eslintcache +0 -1
  178. package/CHANGELOG.json +0 -65
  179. package/benchmarks/fixtures/query1.graphql +0 -20
  180. package/benchmarks/index.ts +0 -68
  181. package/benchmarks/nice-benchmark.ts +0 -32
  182. package/benchmarks/swapi-schema/index.ts +0 -13
  183. package/benchmarks/swapi-schema/models.ts +0 -4
  184. package/benchmarks/swapi-schema/resolvers.ts +0 -331
  185. package/benchmarks/swapi-schema/schema.graphql +0 -164
  186. package/benchmarks/swapi-schema/starwars.json +0 -5991
  187. package/lib/index.test.mjs +0 -63
  188. package/lib/src/ast/TypedAST.d.ts.map +0 -1
  189. package/lib/src/ast/addTypesToRequestDocument.d.ts.map +0 -1
  190. package/lib/src/index.d.ts +0 -16
  191. package/lib/src/index.d.ts.map +0 -1
  192. package/lib/src/index.test.d.ts +0 -2
  193. package/lib/src/index.test.d.ts.map +0 -1
@@ -0,0 +1,111 @@
1
+ var __async = (__this, __arguments, generator) => {
2
+ return new Promise((resolve, reject) => {
3
+ var fulfilled = (value) => {
4
+ try {
5
+ step(generator.next(value));
6
+ } catch (e) {
7
+ reject(e);
8
+ }
9
+ };
10
+ var rejected = (value) => {
11
+ try {
12
+ step(generator.throw(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ };
17
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
+ step((generator = generator.apply(__this, __arguments)).next());
19
+ });
20
+ };
21
+
22
+ // src/benchmarks/index.ts
23
+ import fs from "fs";
24
+ import path from "path";
25
+ import NiceBenchmark from "./nice-benchmark.mjs";
26
+ import schema from "./swapi-schema.mjs";
27
+ import resolvers from "./swapi-schema/resolvers.mjs";
28
+ import models from "./swapi-schema/models.mjs";
29
+ import {graphql, execute as graphqlExecute, parse} from "graphql";
30
+ import {compileQuery, isCompiledQuery} from "graphql-jit";
31
+ import {executeWithoutSchema as supermassiveExecute} from "../executeWithoutSchema.mjs";
32
+ import {addTypesToRequestDocument} from "../ast/addTypesToRequestDocument.mjs";
33
+ var query = fs.readFileSync(path.join(__dirname, "./fixtures/query1.graphql"), {
34
+ encoding: "utf-8"
35
+ });
36
+ var parsedQuery = parse(query);
37
+ var compiledQuery = compileQuery(schema, parsedQuery);
38
+ var typeAnnotatedQuery = addTypesToRequestDocument(schema, parsedQuery);
39
+ var queryRunningSuite = new NiceBenchmark("Query Running");
40
+ queryRunningSuite.add("graphql-js - string queries", () => __async(void 0, null, function* () {
41
+ const result = yield graphql({
42
+ schema,
43
+ source: query,
44
+ contextValue: {models}
45
+ });
46
+ if (result.errors || !result.data) {
47
+ throw new Error("Stuff ain't executing");
48
+ }
49
+ }));
50
+ queryRunningSuite.add("graphql-js - parsed queries", () => __async(void 0, null, function* () {
51
+ const result = yield graphqlExecute({
52
+ schema,
53
+ document: parsedQuery,
54
+ contextValue: {models}
55
+ });
56
+ if (result.errors || !result.data) {
57
+ throw new Error("Stuff ain't executing");
58
+ }
59
+ }));
60
+ queryRunningSuite.add("graphql-jit - uncompiled", () => __async(void 0, null, function* () {
61
+ const freshCompiledQuery = compileQuery(schema, parsedQuery);
62
+ if (isCompiledQuery(freshCompiledQuery)) {
63
+ const result = yield freshCompiledQuery.query({}, {models}, {});
64
+ if (result.errors || !result.data) {
65
+ throw new Error("Stuff ain't executing");
66
+ }
67
+ } else {
68
+ throw new Error("Wrong query");
69
+ }
70
+ }));
71
+ queryRunningSuite.add("graphql-jit - precompiled", () => __async(void 0, null, function* () {
72
+ if (isCompiledQuery(compiledQuery)) {
73
+ const result = yield compiledQuery.query({}, {models}, {});
74
+ if (result.errors || !result.data) {
75
+ throw new Error("Stuff ain't executing");
76
+ }
77
+ } else {
78
+ throw new Error("Wrong query");
79
+ }
80
+ }));
81
+ queryRunningSuite.add("supermassive - runtime schemaless", () => __async(void 0, null, function* () {
82
+ const result = yield supermassiveExecute({
83
+ resolvers,
84
+ document: typeAnnotatedQuery,
85
+ contextValue: {models}
86
+ });
87
+ if (result.errors || !result.data) {
88
+ throw new Error("Stuff ain't executing");
89
+ }
90
+ }));
91
+ var queryParsingSuite = new NiceBenchmark("Query parsing");
92
+ queryParsingSuite.add("graphql-js", () => __async(void 0, null, function* () {
93
+ parse(query);
94
+ }));
95
+ var queryCompilingSuite = new NiceBenchmark("Query compiling");
96
+ queryCompilingSuite.add("graphql-jit", () => __async(void 0, null, function* () {
97
+ yield compileQuery(schema, parsedQuery);
98
+ }));
99
+ var queryAnnotationSuite = new NiceBenchmark("Query annotation");
100
+ queryAnnotationSuite.add("supermassive", () => {
101
+ addTypesToRequestDocument(schema, parsedQuery);
102
+ });
103
+ function main() {
104
+ return __async(this, null, function* () {
105
+ yield queryCompilingSuite.run();
106
+ yield queryParsingSuite.run();
107
+ yield queryAnnotationSuite.run();
108
+ yield queryRunningSuite.run();
109
+ });
110
+ }
111
+ main();
@@ -2,7 +2,7 @@ export default class NiceBenchmark {
2
2
  private name;
3
3
  private suite;
4
4
  constructor(name: string);
5
- add(name: string, fn: () => Promise<any>): void;
5
+ add(name: string, fn: () => Promise<void> | void): void;
6
6
  run(options?: any): Promise<any>;
7
7
  }
8
8
  //# sourceMappingURL=nice-benchmark.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nice-benchmark.d.ts","sourceRoot":"","sources":["../../benchmarks/nice-benchmark.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAQ;gBAET,IAAI,EAAE,MAAM;IAQxB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;IAUxC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAOjC"}
1
+ {"version":3,"file":"nice-benchmark.d.ts","sourceRoot":"","sources":["../../src/benchmarks/nice-benchmark.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAQ;gBAET,IAAI,EAAE,MAAM;IAQxB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAUhD,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAOjC"}
@@ -0,0 +1,72 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getProtoOf = Object.getPrototypeOf;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, {get: all[name], enumerable: true});
11
+ };
12
+ var __reExport = (target, module2, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && key !== "default")
16
+ __defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
17
+ }
18
+ return target;
19
+ };
20
+ var __toModule = (module2) => {
21
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
22
+ };
23
+ var __async = (__this, __arguments, generator) => {
24
+ return new Promise((resolve, reject) => {
25
+ var fulfilled = (value) => {
26
+ try {
27
+ step(generator.next(value));
28
+ } catch (e) {
29
+ reject(e);
30
+ }
31
+ };
32
+ var rejected = (value) => {
33
+ try {
34
+ step(generator.throw(value));
35
+ } catch (e) {
36
+ reject(e);
37
+ }
38
+ };
39
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
40
+ step((generator = generator.apply(__this, __arguments)).next());
41
+ });
42
+ };
43
+ __markAsModule(exports);
44
+ __export(exports, {
45
+ default: () => NiceBenchmark
46
+ });
47
+ var import_benchmark = __toModule(require("benchmark"));
48
+ class NiceBenchmark {
49
+ constructor(name) {
50
+ this.name = name;
51
+ this.suite = new import_benchmark.Suite(name);
52
+ this.suite.on("cycle", function(event) {
53
+ console.log(String(event.target));
54
+ });
55
+ }
56
+ add(name, fn) {
57
+ this.suite.add(name, {
58
+ defer: true,
59
+ fn: (deferred) => __async(this, null, function* () {
60
+ yield fn();
61
+ deferred.resolve();
62
+ })
63
+ });
64
+ }
65
+ run(options) {
66
+ return new Promise((resolve) => {
67
+ this.suite.on("complete", resolve);
68
+ console.log(this.name);
69
+ this.suite.run(options);
70
+ });
71
+ }
72
+ }
@@ -0,0 +1,52 @@
1
+ var __async = (__this, __arguments, generator) => {
2
+ return new Promise((resolve, reject) => {
3
+ var fulfilled = (value) => {
4
+ try {
5
+ step(generator.next(value));
6
+ } catch (e) {
7
+ reject(e);
8
+ }
9
+ };
10
+ var rejected = (value) => {
11
+ try {
12
+ step(generator.throw(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ };
17
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
+ step((generator = generator.apply(__this, __arguments)).next());
19
+ });
20
+ };
21
+
22
+ // src/benchmarks/nice-benchmark.ts
23
+ import {Suite} from "benchmark";
24
+ var NiceBenchmark = class {
25
+ constructor(name) {
26
+ this.name = name;
27
+ this.suite = new Suite(name);
28
+ this.suite.on("cycle", function(event) {
29
+ console.log(String(event.target));
30
+ });
31
+ }
32
+ add(name, fn) {
33
+ this.suite.add(name, {
34
+ defer: true,
35
+ fn: (deferred) => __async(this, null, function* () {
36
+ yield fn();
37
+ deferred.resolve();
38
+ })
39
+ });
40
+ }
41
+ run(options) {
42
+ return new Promise((resolve) => {
43
+ this.suite.on("complete", resolve);
44
+ console.log(this.name);
45
+ this.suite.run(options);
46
+ });
47
+ }
48
+ };
49
+ var nice_benchmark_default = NiceBenchmark;
50
+ export {
51
+ nice_benchmark_default as default
52
+ };
@@ -1,3 +1,4 @@
1
+ export declare const typeDefs: import("graphql").DocumentNode;
1
2
  declare const _default: import("graphql").GraphQLSchema;
2
3
  export default _default;
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../benchmarks/swapi-schema/index.ts"],"names":[],"mappings":";AASA,wBAGG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/benchmarks/swapi-schema/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,QAAQ,gCAIpB,CAAC;;AAEF,wBAGG"}
@@ -0,0 +1,39 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getProtoOf = Object.getPrototypeOf;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, {get: all[name], enumerable: true});
11
+ };
12
+ var __reExport = (target, module2, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && key !== "default")
16
+ __defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
17
+ }
18
+ return target;
19
+ };
20
+ var __toModule = (module2) => {
21
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
22
+ };
23
+ __markAsModule(exports);
24
+ __export(exports, {
25
+ default: () => swapi_schema_default,
26
+ typeDefs: () => typeDefs
27
+ });
28
+ var import_schema = __toModule(require("@graphql-tools/schema"));
29
+ var import_graphql = __toModule(require("graphql"));
30
+ var import_path = __toModule(require("path"));
31
+ var import_fs = __toModule(require("fs"));
32
+ var import_resolvers = __toModule(require("./resolvers"));
33
+ const typeDefs = (0, import_graphql.parse)((0, import_fs.readFileSync)((0, import_path.join)(__dirname, "./schema.graphql"), {
34
+ encoding: "utf-8"
35
+ }));
36
+ var swapi_schema_default = (0, import_schema.makeExecutableSchema)({
37
+ typeDefs,
38
+ resolvers: import_resolvers.default
39
+ });
@@ -0,0 +1,17 @@
1
+ // src/benchmarks/swapi-schema/index.ts
2
+ import {makeExecutableSchema} from "@graphql-tools/schema";
3
+ import {parse} from "graphql";
4
+ import {join} from "path";
5
+ import {readFileSync} from "fs";
6
+ import resolvers from "./resolvers.mjs";
7
+ var typeDefs = parse(readFileSync(join(__dirname, "./schema.graphql"), {
8
+ encoding: "utf-8"
9
+ }));
10
+ var swapi_schema_default = makeExecutableSchema({
11
+ typeDefs,
12
+ resolvers
13
+ });
14
+ export {
15
+ swapi_schema_default as default,
16
+ typeDefs
17
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../benchmarks/swapi-schema/models.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;;AAEtC,wBAA8D"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/benchmarks/swapi-schema/models.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;;AAEtC,wBAA8D"}
@@ -0,0 +1,29 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getProtoOf = Object.getPrototypeOf;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, {get: all[name], enumerable: true});
11
+ };
12
+ var __reExport = (target, module2, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && key !== "default")
16
+ __defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
17
+ }
18
+ return target;
19
+ };
20
+ var __toModule = (module2) => {
21
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
22
+ };
23
+ __markAsModule(exports);
24
+ __export(exports, {
25
+ default: () => models_default
26
+ });
27
+ var import_path = __toModule(require("path"));
28
+ var import_node_json_db = __toModule(require("node-json-db"));
29
+ var models_default = new import_node_json_db.JsonDB(import_path.default.join(__dirname, "./starwars"));
@@ -0,0 +1,7 @@
1
+ // src/benchmarks/swapi-schema/models.ts
2
+ import path from "path";
3
+ import {JsonDB} from "node-json-db";
4
+ var models_default = new JsonDB(path.join(__dirname, "./starwars"));
5
+ export {
6
+ models_default as default
7
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../../benchmarks/swapi-schema/resolvers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAyMpE,QAAA,MAAM,SAAS,EAAE,2BAA2B,CAAC,WAAW,CA2HvD,CAAC;AAKF,eAAe,SAAS,CAAC"}
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;AAyMpE,QAAA,MAAM,SAAS,EAAE,2BAA2B,CAAC,WAAW,CAmKvD,CAAC;AAKF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,237 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
3
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {enumerable: true, configurable: true, writable: true, value}) : obj[key] = value;
6
+ var __objSpread = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+ var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
18
+ var __export = (target, all) => {
19
+ for (var name in all)
20
+ __defProp(target, name, {get: all[name], enumerable: true});
21
+ };
22
+ __markAsModule(exports);
23
+ __export(exports, {
24
+ default: () => resolvers_default
25
+ });
26
+ const films = (parent, args, {models}) => {
27
+ return models.getData("/films").filter(({id}) => parent.films.includes(id));
28
+ };
29
+ const starships = (parent, {id}, {models}) => {
30
+ return models.getData("/starships").filter(({id: id2}) => parent.starships.includes(id2));
31
+ };
32
+ function people(key) {
33
+ return (parent, args, {models}) => {
34
+ return models.getData("/people").filter(({id}) => parent[key].includes(id));
35
+ };
36
+ }
37
+ const vehicles = (parent, args, {models}) => {
38
+ return models.getData("/vehicles").filter(({id}) => parent.vehicles.includes(id));
39
+ };
40
+ const transports = (parent, args, {models}) => {
41
+ return models.getData("/transport").filter(({id}) => parent.starships.includes(id));
42
+ };
43
+ const planets = (parent, args, {models}) => {
44
+ return models.getData("/planets").filter(({id}) => parent.planets.includes(id));
45
+ };
46
+ const species = (parent, args, {models}) => {
47
+ return models.getData("/species").filter(({id}) => parent.species.includes(id));
48
+ };
49
+ const homeworld = (parent, args, {models}) => {
50
+ return models.getData("/planets").find((planet2) => planet2.id === parent.homeworld);
51
+ };
52
+ const person = (parent, {id}, {models}) => {
53
+ return models.getData("/people").find((person2) => person2.id === id);
54
+ };
55
+ const planet = (parent, {id}, {models}) => {
56
+ return models.getData("/planets").find((planet2) => planet2.id === id);
57
+ };
58
+ const film = (parent, {id}, {models}) => {
59
+ return models.getData("/films").find((film2) => film2.id === id);
60
+ };
61
+ const starship = (parent, {id}, {models}) => {
62
+ return models.getData("/starships").find((starship2) => starship2.id === id);
63
+ };
64
+ const transport = (parent, {id}, {models}) => {
65
+ return models.getData("/transport").find((transport2) => transport2.id === id);
66
+ };
67
+ const vehicle = (parent, {id}, {models}) => {
68
+ return models.getData("/vehicles").find((vehicle2) => vehicle2.id === id);
69
+ };
70
+ const searchPeopleByName = (parent, {search}, {models}) => {
71
+ return models.getData("/people").filter((person2) => new RegExp(search, "i").test(person2.name));
72
+ };
73
+ const searchPlanetsByName = (parent, {search}, {models}) => {
74
+ return models.getData("/planets").filter((planet2) => new RegExp(search, "i").test(planet2.name));
75
+ };
76
+ const searchFilmsByTitle = (parent, {search}, {models}) => {
77
+ return models.getData("/films").filter((film2) => new RegExp(search, "i").test(film2.title));
78
+ };
79
+ const searchSpeciesByName = (parent, {search}, {models}) => {
80
+ return models.getData("/species").filter((species2) => new RegExp(search, "i").test(species2.name));
81
+ };
82
+ const searchStarshipsByName = (parent, {search}, {models}) => {
83
+ return models.getData("/starships").filter((starship2) => new RegExp(search, "i").test(starship2.name));
84
+ };
85
+ const searchVehiclesByName = (parent, {search}, {models}) => {
86
+ return models.getData("/vehicles").filter((vehicle2) => new RegExp(search, "i").test(vehicle2.name));
87
+ };
88
+ const searchTransportsByName = (parent, {search}, {models}) => {
89
+ return models.getData("/transport").filter((transport2) => new RegExp(search, "i").test(transport2.name));
90
+ };
91
+ const resolvers = {
92
+ SearchResult: {
93
+ __resolveType(parent) {
94
+ return parent.__typename;
95
+ }
96
+ },
97
+ Query: {
98
+ search(parent, {search}, {models}, info) {
99
+ const result = [
100
+ ...searchFilmsByTitle(parent, {search}, {models}, info).map((r) => (r.__typename = "Film") && r),
101
+ ...searchPeopleByName(parent, {search}, {models}, info).map((r) => (r.__typename = "Person") && r),
102
+ ...searchPlanetsByName(parent, {search}, {models}, info).map((r) => (r.__typename = "Planet") && r),
103
+ ...searchSpeciesByName(parent, {search}, {models}, info).map((r) => (r.__typename = "Species") && r),
104
+ ...searchStarshipsByName(parent, {search}, {models}, info).map((r) => (r.__typename = "Starship") && r),
105
+ ...searchTransportsByName(parent, {search}, {models}, info).map((r) => (r.__typename = "Transport") && r),
106
+ ...searchVehiclesByName(parent, {search}, {models}, info).map((r) => (r.__typename = "Vehicle") && r)
107
+ ];
108
+ return result;
109
+ },
110
+ node(parent, args, context, info) {
111
+ let result;
112
+ switch (args.nodeType) {
113
+ case "Person": {
114
+ result = person(parent, args, context, info);
115
+ break;
116
+ }
117
+ case "Starship": {
118
+ result = starship(parent, args, context, info);
119
+ break;
120
+ }
121
+ case "Transport": {
122
+ result = transport(parent, args, context, info);
123
+ break;
124
+ }
125
+ case "Species": {
126
+ result = species(parent, args, context, info);
127
+ break;
128
+ }
129
+ case "Vehicle": {
130
+ result = vehicle(parent, args, context, info);
131
+ break;
132
+ }
133
+ case "Planet": {
134
+ result = planet(parent, args, context, info);
135
+ break;
136
+ }
137
+ case "Film": {
138
+ result = film(parent, args, context, info);
139
+ break;
140
+ }
141
+ default:
142
+ throw new Error(`Invalid node type ${args.nodeType}`);
143
+ }
144
+ return __objSpread(__objSpread({}, result), {
145
+ __typename: args.nodeType
146
+ });
147
+ },
148
+ person,
149
+ planet,
150
+ film,
151
+ transport,
152
+ starship,
153
+ vehicle,
154
+ searchPeopleByName,
155
+ searchStarshipsByName,
156
+ searchTransportsByName,
157
+ searchSpeciesByName,
158
+ searchVehiclesByName,
159
+ searchPlanetsByName,
160
+ searchFilmsByTitle,
161
+ allStarships(parent, args, {models}) {
162
+ return models.getData("/starships");
163
+ },
164
+ allFilms(parent, args, {models}) {
165
+ return models.getData("/films");
166
+ },
167
+ allPeople(parent, args, {models}) {
168
+ return models.getData("/people");
169
+ },
170
+ allPlanets(parent, args, {models}) {
171
+ return models.getData("/planets");
172
+ },
173
+ allSpecies(parent, args, {models}) {
174
+ return models.getData("/species");
175
+ },
176
+ allTransports(parent, args, {models}) {
177
+ return models.getData("/transport");
178
+ }
179
+ },
180
+ Film: {
181
+ starships,
182
+ vehicles,
183
+ planets,
184
+ characters: people("characters"),
185
+ species
186
+ },
187
+ Starship: {
188
+ MGLT: (starship2) => +starship2.MGLT,
189
+ hyperdrive_rating: (starship2) => +starship2.hyperdrive_rating,
190
+ cargo_capacity: (starship2) => +starship2.cargo_capacity,
191
+ passengers: (starship2) => +starship2.passengers,
192
+ max_atmosphering_speed: (starship2) => +starship2.max_atmosphering_speed,
193
+ length: (starship2) => +starship2.length,
194
+ cost_in_credits: (starship2) => +starship2.cost_in_credits,
195
+ pilots: people("pilots"),
196
+ films
197
+ },
198
+ Person: {
199
+ height: (pilot) => +pilot.height,
200
+ mass: (pilot) => +pilot.mass,
201
+ starships,
202
+ homeworld
203
+ },
204
+ Vehicle: {
205
+ cargo_capacity: (vehicle2) => +vehicle2.cargo_capacity,
206
+ passengers: (vehicle2) => +vehicle2.passengers,
207
+ max_atmosphering_speed: (vehicle2) => +vehicle2.max_atmosphering_speed,
208
+ crew: (vehicle2) => forceNumber(vehicle2.crew),
209
+ length: (vehicle2) => +vehicle2.length,
210
+ cost_in_credits: (vehicle2) => +vehicle2.cost_in_credits,
211
+ pilots: people("pilots")
212
+ },
213
+ Planet: {
214
+ diameter: (planet2) => +planet2.diameter,
215
+ rotation_period: (planet2) => +planet2.rotation_period,
216
+ orbital_period: (planet2) => +planet2.orbital_period,
217
+ population: (planet2) => +planet2.population,
218
+ residents: people("residents"),
219
+ films
220
+ },
221
+ Species: {
222
+ average_lifespan: (species2) => +species2.average_lifespan,
223
+ average_height: (species2) => +species2.average_height,
224
+ homeworld,
225
+ people: people("people")
226
+ },
227
+ Transport: {
228
+ cargo_capacity: (vehicle2) => +vehicle2.cargo_capacity,
229
+ passengers: (vehicle2) => +vehicle2.passengers,
230
+ max_atmosphering_speed: (vehicle2) => +vehicle2.max_atmosphering_speed,
231
+ crew: (vehicle2) => forceNumber(vehicle2.crew),
232
+ length: (vehicle2) => +vehicle2.length,
233
+ cost_in_credits: (vehicle2) => +vehicle2.cost_in_credits
234
+ }
235
+ };
236
+ const forceNumber = (i) => Number(i.split(",").join("").split("-")[0]) || -1;
237
+ var resolvers_default = resolvers;