@graphitation/supermassive 3.0.0-alpha.1 → 3.0.0-alpha.4

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 (207) hide show
  1. package/.eslintcache +1 -1
  2. package/CHANGELOG.md +18 -2
  3. package/lib/__testUtils__/execute.d.ts +13 -0
  4. package/lib/__testUtils__/execute.d.ts.map +1 -0
  5. package/lib/__testUtils__/execute.js +203 -0
  6. package/lib/__testUtils__/execute.js.map +7 -0
  7. package/lib/__testUtils__/execute.mjs +181 -0
  8. package/lib/__testUtils__/execute.mjs.map +7 -0
  9. package/lib/__testUtils__/gql.d.ts +7 -0
  10. package/lib/__testUtils__/gql.d.ts.map +1 -0
  11. package/lib/{supermassive-ast/TypedAST.js → __testUtils__/gql.js} +8 -10
  12. package/lib/__testUtils__/gql.js.map +7 -0
  13. package/lib/__testUtils__/gql.mjs +8 -0
  14. package/lib/__testUtils__/gql.mjs.map +7 -0
  15. package/lib/benchmarks/index.js +15 -20
  16. package/lib/benchmarks/index.js.map +3 -3
  17. package/lib/benchmarks/index.mjs +16 -23
  18. package/lib/benchmarks/index.mjs.map +2 -2
  19. package/lib/collectFields.d.ts +4 -9
  20. package/lib/collectFields.d.ts.map +1 -1
  21. package/lib/collectFields.js +38 -99
  22. package/lib/collectFields.js.map +2 -2
  23. package/lib/collectFields.mjs +41 -100
  24. package/lib/collectFields.mjs.map +2 -2
  25. package/lib/executeWithSchema.d.ts +1 -1
  26. package/lib/executeWithSchema.d.ts.map +1 -1
  27. package/lib/executeWithSchema.js +27 -17
  28. package/lib/executeWithSchema.js.map +2 -2
  29. package/lib/executeWithSchema.mjs +32 -24
  30. package/lib/executeWithSchema.mjs.map +2 -2
  31. package/lib/executeWithoutSchema.d.ts +9 -5
  32. package/lib/executeWithoutSchema.d.ts.map +1 -1
  33. package/lib/executeWithoutSchema.js +217 -242
  34. package/lib/executeWithoutSchema.js.map +3 -3
  35. package/lib/executeWithoutSchema.mjs +225 -249
  36. package/lib/executeWithoutSchema.mjs.map +3 -3
  37. package/lib/index.d.ts +16 -11
  38. package/lib/index.d.ts.map +1 -1
  39. package/lib/index.js +24 -11
  40. package/lib/index.js.map +2 -2
  41. package/lib/index.mjs +32 -11
  42. package/lib/index.mjs.map +2 -2
  43. package/lib/schema/definition.d.ts +100 -0
  44. package/lib/schema/definition.d.ts.map +1 -0
  45. package/lib/schema/definition.js +77 -0
  46. package/lib/schema/definition.js.map +7 -0
  47. package/lib/schema/definition.mjs +58 -0
  48. package/lib/schema/definition.mjs.map +7 -0
  49. package/lib/schema/directives.d.ts +42 -0
  50. package/lib/schema/directives.d.ts.map +1 -0
  51. package/lib/schema/directives.js +87 -0
  52. package/lib/schema/directives.js.map +7 -0
  53. package/lib/schema/directives.mjs +70 -0
  54. package/lib/schema/directives.mjs.map +7 -0
  55. package/lib/schema/fragment.d.ts +63 -0
  56. package/lib/schema/fragment.d.ts.map +1 -0
  57. package/lib/schema/fragment.js +295 -0
  58. package/lib/schema/fragment.js.map +7 -0
  59. package/lib/schema/fragment.mjs +292 -0
  60. package/lib/schema/fragment.mjs.map +7 -0
  61. package/lib/schema/reference.d.ts +12 -0
  62. package/lib/schema/reference.d.ts.map +1 -0
  63. package/lib/schema/reference.js +137 -0
  64. package/lib/schema/reference.js.map +7 -0
  65. package/lib/schema/reference.mjs +118 -0
  66. package/lib/schema/reference.mjs.map +7 -0
  67. package/lib/schema/resolvers.d.ts +9 -0
  68. package/lib/schema/resolvers.d.ts.map +1 -0
  69. package/lib/schema/resolvers.js +47 -0
  70. package/lib/schema/resolvers.js.map +7 -0
  71. package/lib/schema/resolvers.mjs +35 -0
  72. package/lib/schema/resolvers.mjs.map +7 -0
  73. package/lib/subscribeWithSchema.d.ts +1 -1
  74. package/lib/subscribeWithSchema.d.ts.map +1 -1
  75. package/lib/subscribeWithSchema.js +27 -17
  76. package/lib/subscribeWithSchema.js.map +2 -2
  77. package/lib/subscribeWithSchema.mjs +32 -24
  78. package/lib/subscribeWithSchema.mjs.map +2 -2
  79. package/lib/types.d.ts +16 -27
  80. package/lib/types.d.ts.map +1 -1
  81. package/lib/types.js +0 -14
  82. package/lib/types.js.map +2 -2
  83. package/lib/types.mjs +0 -11
  84. package/lib/types.mjs.map +3 -3
  85. package/lib/utilities/addMinimalViableSchemaToRequestDocument.d.ts +12 -0
  86. package/lib/utilities/addMinimalViableSchemaToRequestDocument.d.ts.map +1 -0
  87. package/lib/utilities/addMinimalViableSchemaToRequestDocument.js +116 -0
  88. package/lib/utilities/addMinimalViableSchemaToRequestDocument.js.map +7 -0
  89. package/lib/utilities/addMinimalViableSchemaToRequestDocument.mjs +105 -0
  90. package/lib/utilities/addMinimalViableSchemaToRequestDocument.mjs.map +7 -0
  91. package/lib/utilities/annotateDocumentGraphQLTransform.d.ts +4 -0
  92. package/lib/utilities/annotateDocumentGraphQLTransform.d.ts.map +1 -0
  93. package/lib/{supermassive-ast → utilities}/annotateDocumentGraphQLTransform.js +3 -10
  94. package/lib/utilities/annotateDocumentGraphQLTransform.js.map +7 -0
  95. package/lib/utilities/annotateDocumentGraphQLTransform.mjs +10 -0
  96. package/lib/utilities/annotateDocumentGraphQLTransform.mjs.map +7 -0
  97. package/lib/utilities/coerceInputValue.d.ts +10 -0
  98. package/lib/utilities/coerceInputValue.d.ts.map +1 -0
  99. package/lib/utilities/coerceInputValue.js +181 -0
  100. package/lib/utilities/coerceInputValue.js.map +7 -0
  101. package/lib/utilities/coerceInputValue.mjs +167 -0
  102. package/lib/utilities/coerceInputValue.mjs.map +7 -0
  103. package/lib/utilities/decodeASTSchema.d.ts +7 -0
  104. package/lib/utilities/decodeASTSchema.d.ts.map +1 -0
  105. package/lib/utilities/decodeASTSchema.js +246 -0
  106. package/lib/utilities/decodeASTSchema.js.map +7 -0
  107. package/lib/utilities/decodeASTSchema.mjs +245 -0
  108. package/lib/utilities/decodeASTSchema.mjs.map +7 -0
  109. package/lib/utilities/encodeASTSchema.d.ts +4 -0
  110. package/lib/utilities/encodeASTSchema.d.ts.map +1 -0
  111. package/lib/utilities/encodeASTSchema.js +151 -0
  112. package/lib/utilities/encodeASTSchema.js.map +7 -0
  113. package/lib/utilities/encodeASTSchema.mjs +134 -0
  114. package/lib/utilities/encodeASTSchema.mjs.map +7 -0
  115. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.d.ts +8 -0
  116. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.d.ts.map +1 -0
  117. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.js +238 -0
  118. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.js.map +7 -0
  119. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.mjs +245 -0
  120. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.mjs.map +7 -0
  121. package/lib/utilities/makeReadableErrorPath.d.ts +3 -0
  122. package/lib/utilities/makeReadableErrorPath.d.ts.map +1 -0
  123. package/lib/utilities/makeReadableErrorPath.js +47 -0
  124. package/lib/utilities/makeReadableErrorPath.js.map +7 -0
  125. package/lib/utilities/makeReadableErrorPath.mjs +28 -0
  126. package/lib/utilities/makeReadableErrorPath.mjs.map +7 -0
  127. package/lib/utilities/mergeResolvers.d.ts +2 -2
  128. package/lib/utilities/mergeResolvers.d.ts.map +1 -1
  129. package/lib/utilities/mergeResolvers.js +20 -22
  130. package/lib/utilities/mergeResolvers.js.map +2 -2
  131. package/lib/utilities/mergeResolvers.mjs +20 -25
  132. package/lib/utilities/mergeResolvers.mjs.map +2 -2
  133. package/lib/utilities/mergeSchemaDefinitions.d.ts +8 -0
  134. package/lib/utilities/mergeSchemaDefinitions.d.ts.map +1 -0
  135. package/lib/utilities/mergeSchemaDefinitions.js +126 -0
  136. package/lib/utilities/mergeSchemaDefinitions.js.map +7 -0
  137. package/lib/utilities/mergeSchemaDefinitions.mjs +114 -0
  138. package/lib/utilities/mergeSchemaDefinitions.mjs.map +7 -0
  139. package/lib/utilities/typeNameFromAST.d.ts +1 -1
  140. package/lib/utilities/typeNameFromAST.d.ts.map +1 -1
  141. package/lib/utilities/typeNameFromAST.js.map +2 -2
  142. package/lib/utilities/typeNameFromAST.mjs.map +2 -2
  143. package/lib/utilities/valueFromAST.d.ts +27 -0
  144. package/lib/utilities/valueFromAST.d.ts.map +1 -0
  145. package/lib/utilities/valueFromAST.js +139 -0
  146. package/lib/utilities/valueFromAST.js.map +7 -0
  147. package/lib/utilities/valueFromAST.mjs +125 -0
  148. package/lib/utilities/valueFromAST.mjs.map +7 -0
  149. package/lib/utilities/valueFromASTUntyped.d.ts +21 -0
  150. package/lib/utilities/valueFromASTUntyped.d.ts.map +1 -0
  151. package/lib/utilities/valueFromASTUntyped.js +51 -0
  152. package/lib/utilities/valueFromASTUntyped.js.map +7 -0
  153. package/lib/utilities/valueFromASTUntyped.mjs +32 -0
  154. package/lib/utilities/valueFromASTUntyped.mjs.map +7 -0
  155. package/lib/values.d.ts +8 -12
  156. package/lib/values.d.ts.map +1 -1
  157. package/lib/values.js +75 -63
  158. package/lib/values.js.map +2 -2
  159. package/lib/values.mjs +77 -71
  160. package/lib/values.mjs.map +2 -2
  161. package/package.json +8 -6
  162. package/lib/definition.d.ts +0 -7
  163. package/lib/definition.d.ts.map +0 -1
  164. package/lib/definition.js +0 -59
  165. package/lib/definition.js.map +0 -7
  166. package/lib/definition.mjs +0 -40
  167. package/lib/definition.mjs.map +0 -7
  168. package/lib/directives.d.ts +0 -8
  169. package/lib/directives.d.ts.map +0 -1
  170. package/lib/directives.js +0 -47
  171. package/lib/directives.js.map +0 -7
  172. package/lib/directives.mjs +0 -37
  173. package/lib/directives.mjs.map +0 -7
  174. package/lib/extractImplicitTypesRuntime.d.ts +0 -4
  175. package/lib/extractImplicitTypesRuntime.d.ts.map +0 -1
  176. package/lib/extractImplicitTypesRuntime.js +0 -123
  177. package/lib/extractImplicitTypesRuntime.js.map +0 -7
  178. package/lib/extractImplicitTypesRuntime.mjs +0 -114
  179. package/lib/extractImplicitTypesRuntime.mjs.map +0 -7
  180. package/lib/supermassive-ast/TypedAST.d.ts +0 -370
  181. package/lib/supermassive-ast/TypedAST.d.ts.map +0 -1
  182. package/lib/supermassive-ast/TypedAST.js.map +0 -7
  183. package/lib/supermassive-ast/TypedAST.mjs +0 -10
  184. package/lib/supermassive-ast/TypedAST.mjs.map +0 -7
  185. package/lib/supermassive-ast/addTypesToRequestDocument.d.ts +0 -56
  186. package/lib/supermassive-ast/addTypesToRequestDocument.d.ts.map +0 -1
  187. package/lib/supermassive-ast/addTypesToRequestDocument.js +0 -473
  188. package/lib/supermassive-ast/addTypesToRequestDocument.js.map +0 -7
  189. package/lib/supermassive-ast/addTypesToRequestDocument.mjs +0 -463
  190. package/lib/supermassive-ast/addTypesToRequestDocument.mjs.map +0 -7
  191. package/lib/supermassive-ast/annotateDocumentGraphQLTransform.d.ts +0 -3
  192. package/lib/supermassive-ast/annotateDocumentGraphQLTransform.d.ts.map +0 -1
  193. package/lib/supermassive-ast/annotateDocumentGraphQLTransform.js.map +0 -7
  194. package/lib/supermassive-ast/annotateDocumentGraphQLTransform.mjs +0 -17
  195. package/lib/supermassive-ast/annotateDocumentGraphQLTransform.mjs.map +0 -7
  196. package/lib/supermassive-ast/directives.d.ts +0 -36
  197. package/lib/supermassive-ast/directives.d.ts.map +0 -1
  198. package/lib/supermassive-ast/directives.js +0 -165
  199. package/lib/supermassive-ast/directives.js.map +0 -7
  200. package/lib/supermassive-ast/directives.mjs +0 -153
  201. package/lib/supermassive-ast/directives.mjs.map +0 -7
  202. package/lib/supermassive-ast/index.d.ts +0 -6
  203. package/lib/supermassive-ast/index.d.ts.map +0 -1
  204. package/lib/supermassive-ast/index.js +0 -37
  205. package/lib/supermassive-ast/index.js.map +0 -7
  206. package/lib/supermassive-ast/index.mjs +0 -27
  207. package/lib/supermassive-ast/index.mjs.map +0 -7
package/CHANGELOG.md CHANGED
@@ -1,12 +1,28 @@
1
1
  # Change Log - @graphitation/supermassive
2
2
 
3
- This log was last generated on Tue, 27 Jun 2023 11:47:25 GMT and should not be manually modified.
3
+ This log was last generated on Sun, 10 Sep 2023 20:58:42 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 3.0.0-alpha.4
8
+
9
+ Sun, 10 Sep 2023 20:58:42 GMT
10
+
11
+ ### Changes
12
+
13
+ - Schema fragment loader (vladimir.razuvaev@gmail.com)
14
+
15
+ ## 3.0.0-alpha.3
16
+
17
+ Tue, 29 Aug 2023 15:06:36 GMT
18
+
19
+ ### Changes
20
+
21
+ - New type annotation strategy (vladimir.razuvaev@gmail.com)
22
+
7
23
  ## 3.0.0-alpha.1
8
24
 
9
- Tue, 27 Jun 2023 11:47:25 GMT
25
+ Tue, 27 Jun 2023 11:47:30 GMT
10
26
 
11
27
  ### Changes
12
28
 
@@ -0,0 +1,13 @@
1
+ import { GraphQLSchema, ExecutionArgs, ExecutionArgs as GraphQLExecutionArgs, ExecutionResult as GraphQLExecutionResult } from "graphql";
2
+ import { ExecutionResult } from "../types";
3
+ import { PromiseOrValue } from "graphql/jsutils/PromiseOrValue";
4
+ import { ObjMap } from "../jsutils/ObjMap";
5
+ type GraphQLResult<TData = ObjMap<unknown>, TExtensions = ObjMap<unknown>> = GraphQLExecutionResult<TData, TExtensions> | AsyncGenerator<GraphQLExecutionResult<TData, TExtensions>, void, void>;
6
+ export declare function createExecutionUtils(graphqlExecute: (args: ExecutionArgs) => PromiseOrValue<ExecutionResult>, graphqlSubscribe: (args: ExecutionArgs) => PromiseOrValue<AsyncGenerator<ExecutionResult, void, void> | ExecutionResult>): {
7
+ compareResultForExecuteWithoutSchemaWithMVSAnnotation: (schema: GraphQLSchema, query: string, variables?: Record<string, unknown>) => Promise<void>;
8
+ compareResultsForExecuteWithSchema: (schema: GraphQLSchema, query: string, variables?: Record<string, unknown>) => Promise<void>;
9
+ drainExecution: (result: ExecutionResult | GraphQLResult) => Promise<unknown>;
10
+ graphqlExecuteOrSubscribe: (args: GraphQLExecutionArgs) => PromiseOrValue<GraphQLResult>;
11
+ };
12
+ export {};
13
+ //# sourceMappingURL=execute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/__testUtils__/execute.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAKb,aAAa,EACb,aAAa,IAAI,oBAAoB,EACrC,eAAe,IAAI,sBAAsB,EAC1C,MAAM,SAAS,CAAC;AAIjB,OAAO,EAAE,eAAe,EAAiB,MAAM,UAAU,CAAC;AAI1D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,KAAK,aAAa,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,IACrE,sBAAsB,CAAC,KAAK,EAAE,WAAW,CAAC,GAC1C,cAAc,CAAC,sBAAsB,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAE3E,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,cAAc,CAAC,eAAe,CAAC,EACxE,gBAAgB,EAAE,CAChB,IAAI,EAAE,aAAa,KAChB,cAAc,CACjB,cAAc,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,eAAe,CAC9D;oEAqCS,aAAa,SACd,MAAM,cACF,OAAO,MAAM,EAAE,OAAO,CAAC;iDApC1B,aAAa,SACd,MAAM,cACD,OAAO,MAAM,EAAE,OAAO,CAAC;6BAqG3B,eAAe,GAAG,aAAa,KACtC,QAAQ,OAAO,CAAC;sCAhCX,oBAAoB,KACzB,eAAe,aAAa,CAAC;EA8DjC"}
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __defProps = Object.defineProperties;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
+ var __getProtoOf = Object.getPrototypeOf;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
+ var __spreadValues = (a, b) => {
14
+ for (var prop in b || (b = {}))
15
+ if (__hasOwnProp.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ if (__getOwnPropSymbols)
18
+ for (var prop of __getOwnPropSymbols(b)) {
19
+ if (__propIsEnum.call(b, prop))
20
+ __defNormalProp(a, prop, b[prop]);
21
+ }
22
+ return a;
23
+ };
24
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
25
+ var __export = (target, all) => {
26
+ for (var name in all)
27
+ __defProp(target, name, { get: all[name], enumerable: true });
28
+ };
29
+ var __copyProps = (to, from, except, desc) => {
30
+ if (from && typeof from === "object" || typeof from === "function") {
31
+ for (let key of __getOwnPropNames(from))
32
+ if (!__hasOwnProp.call(to, key) && key !== except)
33
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
34
+ }
35
+ return to;
36
+ };
37
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
38
+ // If the importer is in node compatibility mode or this is not an ESM
39
+ // file that has been converted to a CommonJS file using a Babel-
40
+ // compatible transform (i.e. "__esModule" has not been set), then set
41
+ // "default" to the CommonJS "module.exports" for node compatibility.
42
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
43
+ mod
44
+ ));
45
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
46
+ var __async = (__this, __arguments, generator) => {
47
+ return new Promise((resolve, reject) => {
48
+ var fulfilled = (value) => {
49
+ try {
50
+ step(generator.next(value));
51
+ } catch (e) {
52
+ reject(e);
53
+ }
54
+ };
55
+ var rejected = (value) => {
56
+ try {
57
+ step(generator.throw(value));
58
+ } catch (e) {
59
+ reject(e);
60
+ }
61
+ };
62
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
63
+ step((generator = generator.apply(__this, __arguments)).next());
64
+ });
65
+ };
66
+ var execute_exports = {};
67
+ __export(execute_exports, {
68
+ createExecutionUtils: () => createExecutionUtils
69
+ });
70
+ module.exports = __toCommonJS(execute_exports);
71
+ var import_graphql = require("graphql");
72
+ var import_executeWithSchema = require("../executeWithSchema");
73
+ var import_swapi_schema = require("../benchmarks/swapi-schema");
74
+ var import_resolvers = __toESM(require("../benchmarks/swapi-schema/resolvers"));
75
+ var import_models = __toESM(require("../benchmarks/swapi-schema/models"));
76
+ var import_executeWithoutSchema = require("../executeWithoutSchema");
77
+ var import_extractMinimalViableSchemaForRequestDocument = require("../utilities/extractMinimalViableSchemaForRequestDocument");
78
+ var import_iterall = require("iterall");
79
+ function createExecutionUtils(graphqlExecute, graphqlSubscribe) {
80
+ function compareResultsForExecuteWithSchema(schema, query, variables) {
81
+ return __async(this, null, function* () {
82
+ expect.assertions(1);
83
+ const document = (0, import_graphql.parse)(query);
84
+ const result = yield drainExecution(
85
+ yield (0, import_executeWithSchema.executeWithSchema)({
86
+ document,
87
+ schema: {
88
+ schemaId: "test",
89
+ definitions: import_swapi_schema.typeDefs,
90
+ resolvers: import_resolvers.default
91
+ },
92
+ contextValue: {
93
+ models: import_models.default
94
+ },
95
+ variableValues: variables
96
+ })
97
+ );
98
+ const validResult = yield drainExecution(
99
+ yield graphqlExecuteOrSubscribe({
100
+ document,
101
+ contextValue: {
102
+ models: import_models.default
103
+ },
104
+ schema,
105
+ variableValues: variables
106
+ })
107
+ );
108
+ expect(result).toEqual(validResult);
109
+ });
110
+ }
111
+ function compareResultForExecuteWithoutSchemaWithMVSAnnotation(_0, _1) {
112
+ return __async(this, arguments, function* (schema, query, variables = {}) {
113
+ expect.assertions(1);
114
+ const document = (0, import_graphql.parse)(query);
115
+ const { definitions } = (0, import_extractMinimalViableSchemaForRequestDocument.extractMinimalViableSchemaForRequestDocument)(
116
+ schema,
117
+ document
118
+ );
119
+ const result = yield drainExecution(
120
+ yield (0, import_executeWithoutSchema.executeWithoutSchema)({
121
+ document,
122
+ contextValue: {
123
+ models: import_models.default
124
+ },
125
+ schemaFragment: {
126
+ schemaId: "test",
127
+ definitions,
128
+ resolvers: import_resolvers.default
129
+ },
130
+ variableValues: variables
131
+ })
132
+ );
133
+ const validResult = yield drainExecution(
134
+ yield graphqlExecuteOrSubscribe({
135
+ document,
136
+ contextValue: {
137
+ models: import_models.default
138
+ },
139
+ schema,
140
+ variableValues: variables
141
+ })
142
+ );
143
+ expect(result).toEqual(validResult);
144
+ });
145
+ }
146
+ function graphqlExecuteOrSubscribe(args) {
147
+ var _a;
148
+ const operationName = args.operationName;
149
+ let operation;
150
+ for (const definition of args.document.definitions) {
151
+ switch (definition.kind) {
152
+ case import_graphql.Kind.OPERATION_DEFINITION:
153
+ if (operationName == null) {
154
+ if (operation !== void 0) {
155
+ throw new Error("Bad operation in test");
156
+ }
157
+ operation = definition;
158
+ } else if (((_a = definition.name) == null ? void 0 : _a.value) === operationName) {
159
+ operation = definition;
160
+ }
161
+ break;
162
+ }
163
+ }
164
+ if (!operation) {
165
+ throw new Error("Bad operation in test");
166
+ }
167
+ if (operation.operation === import_graphql.OperationTypeNode.SUBSCRIPTION) {
168
+ return graphqlSubscribe(args);
169
+ } else {
170
+ return graphqlExecute(args);
171
+ }
172
+ }
173
+ function drainExecution(result) {
174
+ return __async(this, null, function* () {
175
+ let processedResult;
176
+ if ((0, import_iterall.isAsyncIterable)(result)) {
177
+ processedResult = yield drainAsyncGeneratorToArray(result);
178
+ } else if ("subsequentResults" in result) {
179
+ processedResult = __spreadProps(__spreadValues({}, result), {
180
+ subsequentResults: yield drainAsyncGeneratorToArray(
181
+ result.subsequentResults
182
+ )
183
+ });
184
+ } else {
185
+ processedResult = result;
186
+ }
187
+ return processedResult;
188
+ });
189
+ }
190
+ function drainAsyncGeneratorToArray(collection) {
191
+ return __async(this, null, function* () {
192
+ const result = [];
193
+ yield (0, import_iterall.forAwaitEach)(collection, (item) => result.push(item));
194
+ return result;
195
+ });
196
+ }
197
+ return {
198
+ compareResultForExecuteWithoutSchemaWithMVSAnnotation,
199
+ compareResultsForExecuteWithSchema,
200
+ drainExecution,
201
+ graphqlExecuteOrSubscribe
202
+ };
203
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/__testUtils__/execute.ts"],
4
+ "sourcesContent": ["import {\n DocumentNode,\n GraphQLSchema,\n Kind,\n OperationDefinitionNode,\n OperationTypeNode,\n parse,\n ExecutionArgs,\n ExecutionArgs as GraphQLExecutionArgs,\n ExecutionResult as GraphQLExecutionResult,\n} from \"graphql\";\nimport { executeWithSchema } from \"../executeWithSchema\";\nimport { typeDefs } from \"../benchmarks/swapi-schema\";\nimport resolvers from \"../benchmarks/swapi-schema/resolvers\";\nimport { ExecutionResult, UserResolvers } from \"../types\";\nimport models from \"../benchmarks/swapi-schema/models\";\nimport { executeWithoutSchema } from \"../executeWithoutSchema\";\nimport { extractMinimalViableSchemaForRequestDocument } from \"../utilities/extractMinimalViableSchemaForRequestDocument\";\nimport { PromiseOrValue } from \"graphql/jsutils/PromiseOrValue\";\nimport { ObjMap } from \"../jsutils/ObjMap\";\nimport { forAwaitEach, isAsyncIterable } from \"iterall\";\n\ntype GraphQLResult<TData = ObjMap<unknown>, TExtensions = ObjMap<unknown>> =\n | GraphQLExecutionResult<TData, TExtensions>\n | AsyncGenerator<GraphQLExecutionResult<TData, TExtensions>, void, void>;\n\nexport function createExecutionUtils(\n graphqlExecute: (args: ExecutionArgs) => PromiseOrValue<ExecutionResult>,\n graphqlSubscribe: (\n args: ExecutionArgs,\n ) => PromiseOrValue<\n AsyncGenerator<ExecutionResult, void, void> | ExecutionResult\n >,\n) {\n async function compareResultsForExecuteWithSchema(\n schema: GraphQLSchema,\n query: string,\n variables?: Record<string, unknown>,\n ) {\n expect.assertions(1);\n const document = parse(query);\n const result = await drainExecution(\n await executeWithSchema({\n document,\n schema: {\n schemaId: \"test\",\n definitions: typeDefs,\n resolvers: resolvers as UserResolvers<unknown, unknown>,\n },\n contextValue: {\n models,\n },\n variableValues: variables,\n }),\n );\n const validResult = await drainExecution(\n await graphqlExecuteOrSubscribe({\n document,\n contextValue: {\n models,\n },\n schema,\n variableValues: variables,\n }),\n );\n expect(result).toEqual(validResult);\n }\n\n async function compareResultForExecuteWithoutSchemaWithMVSAnnotation(\n schema: GraphQLSchema,\n query: string,\n variables: Record<string, unknown> = {},\n ) {\n expect.assertions(1);\n const document = parse(query);\n const { definitions } = extractMinimalViableSchemaForRequestDocument(\n schema,\n document,\n );\n const result = await drainExecution(\n await executeWithoutSchema({\n document,\n contextValue: {\n models,\n },\n schemaFragment: {\n schemaId: \"test\",\n definitions,\n resolvers: resolvers as UserResolvers,\n },\n variableValues: variables,\n }),\n );\n const validResult = await drainExecution(\n await graphqlExecuteOrSubscribe({\n document,\n contextValue: {\n models,\n },\n schema,\n variableValues: variables,\n }),\n );\n expect(result).toEqual(validResult);\n }\n\n function graphqlExecuteOrSubscribe(\n args: GraphQLExecutionArgs,\n ): PromiseOrValue<GraphQLResult> {\n const operationName = args.operationName;\n let operation: OperationDefinitionNode | undefined;\n for (const definition of (args.document as unknown as DocumentNode)\n .definitions) {\n switch (definition.kind) {\n case Kind.OPERATION_DEFINITION:\n if (operationName == null) {\n if (operation !== undefined) {\n throw new Error(\"Bad operation in test\");\n }\n operation = definition;\n } else if (definition.name?.value === operationName) {\n operation = definition;\n }\n break;\n }\n }\n if (!operation) {\n throw new Error(\"Bad operation in test\");\n }\n\n if (operation.operation === OperationTypeNode.SUBSCRIPTION) {\n return graphqlSubscribe(args) as GraphQLResult;\n } else {\n return graphqlExecute(args) as GraphQLResult;\n }\n }\n\n async function drainExecution(\n result: ExecutionResult | GraphQLResult,\n ): Promise<unknown> {\n let processedResult;\n if (isAsyncIterable(result)) {\n processedResult = await drainAsyncGeneratorToArray(result);\n } else if (\"subsequentResults\" in result) {\n processedResult = {\n ...result,\n subsequentResults: await drainAsyncGeneratorToArray(\n result.subsequentResults,\n ),\n };\n } else {\n processedResult = result;\n }\n return processedResult;\n }\n\n async function drainAsyncGeneratorToArray<T>(\n collection: AsyncGenerator<T, void, void>,\n ): Promise<T[]> {\n const result: T[] = [];\n await forAwaitEach(collection, (item) => result.push(item));\n return result;\n }\n\n return {\n compareResultForExecuteWithoutSchemaWithMVSAnnotation,\n compareResultsForExecuteWithSchema,\n drainExecution,\n graphqlExecuteOrSubscribe,\n };\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["resolvers", "models"]
7
+ }
@@ -0,0 +1,181 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __async = (__this, __arguments, generator) => {
21
+ return new Promise((resolve, reject) => {
22
+ var fulfilled = (value) => {
23
+ try {
24
+ step(generator.next(value));
25
+ } catch (e) {
26
+ reject(e);
27
+ }
28
+ };
29
+ var rejected = (value) => {
30
+ try {
31
+ step(generator.throw(value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ };
36
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
37
+ step((generator = generator.apply(__this, __arguments)).next());
38
+ });
39
+ };
40
+
41
+ // src/__testUtils__/execute.ts
42
+ import {
43
+ Kind,
44
+ OperationTypeNode,
45
+ parse
46
+ } from "graphql";
47
+ import { executeWithSchema } from "../executeWithSchema.mjs";
48
+ import { typeDefs } from "../benchmarks/swapi-schema/index.mjs";
49
+ import resolvers from "../benchmarks/swapi-schema/resolvers.mjs";
50
+ import models from "../benchmarks/swapi-schema/models.mjs";
51
+ import { executeWithoutSchema } from "../executeWithoutSchema.mjs";
52
+ import { extractMinimalViableSchemaForRequestDocument } from "../utilities/extractMinimalViableSchemaForRequestDocument.mjs";
53
+ import { forAwaitEach, isAsyncIterable } from "iterall";
54
+ function createExecutionUtils(graphqlExecute, graphqlSubscribe) {
55
+ function compareResultsForExecuteWithSchema(schema, query, variables) {
56
+ return __async(this, null, function* () {
57
+ expect.assertions(1);
58
+ const document = parse(query);
59
+ const result = yield drainExecution(
60
+ yield executeWithSchema({
61
+ document,
62
+ schema: {
63
+ schemaId: "test",
64
+ definitions: typeDefs,
65
+ resolvers
66
+ },
67
+ contextValue: {
68
+ models
69
+ },
70
+ variableValues: variables
71
+ })
72
+ );
73
+ const validResult = yield drainExecution(
74
+ yield graphqlExecuteOrSubscribe({
75
+ document,
76
+ contextValue: {
77
+ models
78
+ },
79
+ schema,
80
+ variableValues: variables
81
+ })
82
+ );
83
+ expect(result).toEqual(validResult);
84
+ });
85
+ }
86
+ function compareResultForExecuteWithoutSchemaWithMVSAnnotation(_0, _1) {
87
+ return __async(this, arguments, function* (schema, query, variables = {}) {
88
+ expect.assertions(1);
89
+ const document = parse(query);
90
+ const { definitions } = extractMinimalViableSchemaForRequestDocument(
91
+ schema,
92
+ document
93
+ );
94
+ const result = yield drainExecution(
95
+ yield executeWithoutSchema({
96
+ document,
97
+ contextValue: {
98
+ models
99
+ },
100
+ schemaFragment: {
101
+ schemaId: "test",
102
+ definitions,
103
+ resolvers
104
+ },
105
+ variableValues: variables
106
+ })
107
+ );
108
+ const validResult = yield drainExecution(
109
+ yield graphqlExecuteOrSubscribe({
110
+ document,
111
+ contextValue: {
112
+ models
113
+ },
114
+ schema,
115
+ variableValues: variables
116
+ })
117
+ );
118
+ expect(result).toEqual(validResult);
119
+ });
120
+ }
121
+ function graphqlExecuteOrSubscribe(args) {
122
+ var _a;
123
+ const operationName = args.operationName;
124
+ let operation;
125
+ for (const definition of args.document.definitions) {
126
+ switch (definition.kind) {
127
+ case Kind.OPERATION_DEFINITION:
128
+ if (operationName == null) {
129
+ if (operation !== void 0) {
130
+ throw new Error("Bad operation in test");
131
+ }
132
+ operation = definition;
133
+ } else if (((_a = definition.name) == null ? void 0 : _a.value) === operationName) {
134
+ operation = definition;
135
+ }
136
+ break;
137
+ }
138
+ }
139
+ if (!operation) {
140
+ throw new Error("Bad operation in test");
141
+ }
142
+ if (operation.operation === OperationTypeNode.SUBSCRIPTION) {
143
+ return graphqlSubscribe(args);
144
+ } else {
145
+ return graphqlExecute(args);
146
+ }
147
+ }
148
+ function drainExecution(result) {
149
+ return __async(this, null, function* () {
150
+ let processedResult;
151
+ if (isAsyncIterable(result)) {
152
+ processedResult = yield drainAsyncGeneratorToArray(result);
153
+ } else if ("subsequentResults" in result) {
154
+ processedResult = __spreadProps(__spreadValues({}, result), {
155
+ subsequentResults: yield drainAsyncGeneratorToArray(
156
+ result.subsequentResults
157
+ )
158
+ });
159
+ } else {
160
+ processedResult = result;
161
+ }
162
+ return processedResult;
163
+ });
164
+ }
165
+ function drainAsyncGeneratorToArray(collection) {
166
+ return __async(this, null, function* () {
167
+ const result = [];
168
+ yield forAwaitEach(collection, (item) => result.push(item));
169
+ return result;
170
+ });
171
+ }
172
+ return {
173
+ compareResultForExecuteWithoutSchemaWithMVSAnnotation,
174
+ compareResultsForExecuteWithSchema,
175
+ drainExecution,
176
+ graphqlExecuteOrSubscribe
177
+ };
178
+ }
179
+ export {
180
+ createExecutionUtils
181
+ };
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/__testUtils__/execute.ts"],
4
+ "sourcesContent": ["import {\n DocumentNode,\n GraphQLSchema,\n Kind,\n OperationDefinitionNode,\n OperationTypeNode,\n parse,\n ExecutionArgs,\n ExecutionArgs as GraphQLExecutionArgs,\n ExecutionResult as GraphQLExecutionResult,\n} from \"graphql\";\nimport { executeWithSchema } from \"../executeWithSchema\";\nimport { typeDefs } from \"../benchmarks/swapi-schema\";\nimport resolvers from \"../benchmarks/swapi-schema/resolvers\";\nimport { ExecutionResult, UserResolvers } from \"../types\";\nimport models from \"../benchmarks/swapi-schema/models\";\nimport { executeWithoutSchema } from \"../executeWithoutSchema\";\nimport { extractMinimalViableSchemaForRequestDocument } from \"../utilities/extractMinimalViableSchemaForRequestDocument\";\nimport { PromiseOrValue } from \"graphql/jsutils/PromiseOrValue\";\nimport { ObjMap } from \"../jsutils/ObjMap\";\nimport { forAwaitEach, isAsyncIterable } from \"iterall\";\n\ntype GraphQLResult<TData = ObjMap<unknown>, TExtensions = ObjMap<unknown>> =\n | GraphQLExecutionResult<TData, TExtensions>\n | AsyncGenerator<GraphQLExecutionResult<TData, TExtensions>, void, void>;\n\nexport function createExecutionUtils(\n graphqlExecute: (args: ExecutionArgs) => PromiseOrValue<ExecutionResult>,\n graphqlSubscribe: (\n args: ExecutionArgs,\n ) => PromiseOrValue<\n AsyncGenerator<ExecutionResult, void, void> | ExecutionResult\n >,\n) {\n async function compareResultsForExecuteWithSchema(\n schema: GraphQLSchema,\n query: string,\n variables?: Record<string, unknown>,\n ) {\n expect.assertions(1);\n const document = parse(query);\n const result = await drainExecution(\n await executeWithSchema({\n document,\n schema: {\n schemaId: \"test\",\n definitions: typeDefs,\n resolvers: resolvers as UserResolvers<unknown, unknown>,\n },\n contextValue: {\n models,\n },\n variableValues: variables,\n }),\n );\n const validResult = await drainExecution(\n await graphqlExecuteOrSubscribe({\n document,\n contextValue: {\n models,\n },\n schema,\n variableValues: variables,\n }),\n );\n expect(result).toEqual(validResult);\n }\n\n async function compareResultForExecuteWithoutSchemaWithMVSAnnotation(\n schema: GraphQLSchema,\n query: string,\n variables: Record<string, unknown> = {},\n ) {\n expect.assertions(1);\n const document = parse(query);\n const { definitions } = extractMinimalViableSchemaForRequestDocument(\n schema,\n document,\n );\n const result = await drainExecution(\n await executeWithoutSchema({\n document,\n contextValue: {\n models,\n },\n schemaFragment: {\n schemaId: \"test\",\n definitions,\n resolvers: resolvers as UserResolvers,\n },\n variableValues: variables,\n }),\n );\n const validResult = await drainExecution(\n await graphqlExecuteOrSubscribe({\n document,\n contextValue: {\n models,\n },\n schema,\n variableValues: variables,\n }),\n );\n expect(result).toEqual(validResult);\n }\n\n function graphqlExecuteOrSubscribe(\n args: GraphQLExecutionArgs,\n ): PromiseOrValue<GraphQLResult> {\n const operationName = args.operationName;\n let operation: OperationDefinitionNode | undefined;\n for (const definition of (args.document as unknown as DocumentNode)\n .definitions) {\n switch (definition.kind) {\n case Kind.OPERATION_DEFINITION:\n if (operationName == null) {\n if (operation !== undefined) {\n throw new Error(\"Bad operation in test\");\n }\n operation = definition;\n } else if (definition.name?.value === operationName) {\n operation = definition;\n }\n break;\n }\n }\n if (!operation) {\n throw new Error(\"Bad operation in test\");\n }\n\n if (operation.operation === OperationTypeNode.SUBSCRIPTION) {\n return graphqlSubscribe(args) as GraphQLResult;\n } else {\n return graphqlExecute(args) as GraphQLResult;\n }\n }\n\n async function drainExecution(\n result: ExecutionResult | GraphQLResult,\n ): Promise<unknown> {\n let processedResult;\n if (isAsyncIterable(result)) {\n processedResult = await drainAsyncGeneratorToArray(result);\n } else if (\"subsequentResults\" in result) {\n processedResult = {\n ...result,\n subsequentResults: await drainAsyncGeneratorToArray(\n result.subsequentResults,\n ),\n };\n } else {\n processedResult = result;\n }\n return processedResult;\n }\n\n async function drainAsyncGeneratorToArray<T>(\n collection: AsyncGenerator<T, void, void>,\n ): Promise<T[]> {\n const result: T[] = [];\n await forAwaitEach(collection, (item) => result.push(item));\n return result;\n }\n\n return {\n compareResultForExecuteWithoutSchemaWithMVSAnnotation,\n compareResultsForExecuteWithSchema,\n drainExecution,\n graphqlExecuteOrSubscribe,\n };\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,7 @@
1
+ import { DocumentNode } from "graphql";
2
+ export type GqlResult = {
3
+ raw: string;
4
+ document: DocumentNode;
5
+ };
6
+ export declare function gql(raw: TemplateStringsArray): GqlResult;
7
+ //# sourceMappingURL=gql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gql.d.ts","sourceRoot":"","sources":["../../src/__testUtils__/gql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAS,MAAM,SAAS,CAAC;AAE9C,MAAM,MAAM,SAAS,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,CAAC;AAEhE,wBAAgB,GAAG,CAAC,GAAG,EAAE,oBAAoB,GAAG,SAAS,CAExD"}
@@ -16,14 +16,12 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var TypedAST_exports = {};
20
- __export(TypedAST_exports, {
21
- OperationTypeNode: () => OperationTypeNode
19
+ var gql_exports = {};
20
+ __export(gql_exports, {
21
+ gql: () => gql
22
22
  });
23
- module.exports = __toCommonJS(TypedAST_exports);
24
- var OperationTypeNode = /* @__PURE__ */ ((OperationTypeNode2) => {
25
- OperationTypeNode2["QUERY"] = "query";
26
- OperationTypeNode2["MUTATION"] = "mutation";
27
- OperationTypeNode2["SUBSCRIPTION"] = "subscription";
28
- return OperationTypeNode2;
29
- })(OperationTypeNode || {});
23
+ module.exports = __toCommonJS(gql_exports);
24
+ var import_graphql = require("graphql");
25
+ function gql(raw) {
26
+ return { raw: raw[0], document: (0, import_graphql.parse)(raw[0]) };
27
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/__testUtils__/gql.ts"],
4
+ "sourcesContent": ["import { DocumentNode, parse } from \"graphql\";\n\nexport type GqlResult = { raw: string; document: DocumentNode };\n\nexport function gql(raw: TemplateStringsArray): GqlResult {\n return { raw: raw[0], document: parse(raw[0]) };\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAoC;AAI7B,SAAS,IAAI,KAAsC;AACxD,SAAO,EAAE,KAAK,IAAI,CAAC,GAAG,cAAU,sBAAM,IAAI,CAAC,CAAC,EAAE;AAChD;",
6
+ "names": []
7
+ }
@@ -0,0 +1,8 @@
1
+ // src/__testUtils__/gql.ts
2
+ import { parse } from "graphql";
3
+ function gql(raw) {
4
+ return { raw: raw[0], document: parse(raw[0]) };
5
+ }
6
+ export {
7
+ gql
8
+ };
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/__testUtils__/gql.ts"],
4
+ "sourcesContent": ["import { DocumentNode, parse } from \"graphql\";\n\nexport type GqlResult = { raw: string; document: DocumentNode };\n\nexport function gql(raw: TemplateStringsArray): GqlResult {\n return { raw: raw[0], document: parse(raw[0]) };\n}\n"],
5
+ "mappings": ";AAAA,SAAuB,aAAa;AAI7B,SAAS,IAAI,KAAsC;AACxD,SAAO,EAAE,KAAK,IAAI,CAAC,GAAG,UAAU,MAAM,IAAI,CAAC,CAAC,EAAE;AAChD;",
6
+ "names": []
7
+ }
@@ -50,9 +50,7 @@ var import_models = __toESM(require("./swapi-schema/models"));
50
50
  var import_graphql = require("graphql");
51
51
  var import_graphql_jit = require("graphql-jit");
52
52
  var import_executeWithoutSchema = require("../executeWithoutSchema");
53
- var import_supermassive_ast = require("../supermassive-ast");
54
- var import_extractImplicitTypesRuntime = require("../extractImplicitTypesRuntime");
55
- var import_values = require("../values");
53
+ var import_extractMinimalViableSchemaForRequestDocument = require("../utilities/extractMinimalViableSchemaForRequestDocument");
56
54
  const query = import_fs.default.readFileSync(
57
55
  import_path.default.join(__dirname, "./fixtures/query1.graphql"),
58
56
  {
@@ -61,12 +59,20 @@ const query = import_fs.default.readFileSync(
61
59
  );
62
60
  const parsedQuery = (0, import_graphql.parse)(query);
63
61
  const compiledQuery = (0, import_graphql_jit.compileQuery)(import_swapi_schema.default, parsedQuery);
64
- const typeAnnotatedQuery = (0, import_supermassive_ast.addTypesToRequestDocument)(import_swapi_schema.default, parsedQuery);
62
+ const { definitions } = (0, import_extractMinimalViableSchemaForRequestDocument.extractMinimalViableSchemaForRequestDocument)(
63
+ import_swapi_schema.default,
64
+ parsedQuery
65
+ );
66
+ const schemaFragment = {
67
+ schemaId: "benchmark",
68
+ definitions,
69
+ resolvers: import_resolvers.default
70
+ };
65
71
  const queryRunningSuite = new import_nice_benchmark.default("Query Running");
66
72
  queryRunningSuite.add("graphql-js - string queries", () => __async(exports, null, function* () {
67
- const result = yield (0, import_graphql.graphql)({
73
+ const result = yield (0, import_graphql.execute)({
68
74
  schema: import_swapi_schema.default,
69
- source: query,
75
+ document: (0, import_graphql.parse)(query),
70
76
  contextValue: { models: import_models.default }
71
77
  });
72
78
  if (result.errors || !result.data) {
@@ -105,20 +111,9 @@ queryRunningSuite.add("graphql-jit - precompiled", () => __async(exports, null,
105
111
  }
106
112
  }));
107
113
  queryRunningSuite.add("supermassive - runtime schemaless", () => __async(exports, null, function* () {
108
- let extractedResolvers = {};
109
- const getTypeByName = (name) => {
110
- const type = import_values.specifiedScalars[name] || extractedResolvers[name];
111
- if ((0, import_graphql.isInputType)(type)) {
112
- return type;
113
- } else {
114
- throw new Error("Invalid type");
115
- }
116
- };
117
- extractedResolvers = (0, import_extractImplicitTypesRuntime.extractImplicitTypes)(parsedQuery, getTypeByName);
118
114
  const result = yield (0, import_executeWithoutSchema.executeWithoutSchema)({
119
- resolvers: import_resolvers.default,
120
- schemaResolvers: extractedResolvers,
121
- document: typeAnnotatedQuery,
115
+ schemaFragment,
116
+ document: parsedQuery,
122
117
  contextValue: { models: import_models.default }
123
118
  });
124
119
  if ("data" in result && (result.errors || !result.data)) {
@@ -135,7 +130,7 @@ queryCompilingSuite.add("graphql-jit", () => __async(exports, null, function* ()
135
130
  }));
136
131
  const queryAnnotationSuite = new import_nice_benchmark.default("Query annotation");
137
132
  queryAnnotationSuite.add("supermassive", () => {
138
- (0, import_supermassive_ast.addTypesToRequestDocument)(import_swapi_schema.default, parsedQuery);
133
+ (0, import_extractMinimalViableSchemaForRequestDocument.extractMinimalViableSchemaForRequestDocument)(import_swapi_schema.default, parsedQuery);
139
134
  });
140
135
  function main() {
141
136
  return __async(this, null, function* () {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/benchmarks/index.ts"],
4
- "sourcesContent": ["import fs from \"fs\";\nimport path from \"path\";\nimport NiceBenchmark from \"./nice-benchmark\";\nimport schema from \"./swapi-schema\";\nimport resolvers from \"./swapi-schema/resolvers\";\nimport models from \"./swapi-schema/models\";\nimport {\n graphql,\n execute as graphqlExecute,\n parse,\n isInputType,\n} from \"graphql\";\nimport { compileQuery, isCompiledQuery } from \"graphql-jit\";\nimport { executeWithoutSchema as supermassiveExecute } from \"../executeWithoutSchema\";\nimport { addTypesToRequestDocument } from \"../supermassive-ast\";\nimport { Resolvers, UserResolvers } from \"../types\";\nimport { extractImplicitTypes } from \"../extractImplicitTypesRuntime\";\nimport { specifiedScalars } from \"../values\";\n\nconst query = fs.readFileSync(\n path.join(__dirname, \"./fixtures/query1.graphql\"),\n {\n encoding: \"utf-8\",\n },\n);\n\nconst parsedQuery = parse(query);\n\nconst compiledQuery = compileQuery(schema, parsedQuery);\n\nconst typeAnnotatedQuery = addTypesToRequestDocument(schema, parsedQuery);\n\nconst queryRunningSuite = new NiceBenchmark(\"Query Running\");\nqueryRunningSuite.add(\"graphql-js - string queries\", async () => {\n const result = await graphql({\n schema,\n source: query,\n contextValue: { models },\n });\n if (result.errors || !result.data) {\n throw new Error(\"Stuff ain't executing\");\n }\n});\nqueryRunningSuite.add(\"graphql-js - parsed queries\", async () => {\n const result = await graphqlExecute({\n schema,\n document: parsedQuery,\n contextValue: { models },\n });\n if (result.errors || !result.data) {\n throw new Error(\"Stuff ain't executing\");\n }\n});\nqueryRunningSuite.add(\"graphql-jit - uncompiled\", async () => {\n const freshCompiledQuery = compileQuery(schema, parsedQuery);\n if (isCompiledQuery(freshCompiledQuery)) {\n const result = await freshCompiledQuery.query({}, { models }, {});\n if (result.errors || !result.data) {\n throw new Error(\"Stuff ain't executing\");\n }\n } else {\n throw new Error(\"Wrong query\");\n }\n});\nqueryRunningSuite.add(\"graphql-jit - precompiled\", async () => {\n if (isCompiledQuery(compiledQuery)) {\n const result = await compiledQuery.query({}, { models }, {});\n if (result.errors || !result.data) {\n throw new Error(\"Stuff ain't executing\");\n }\n } else {\n throw new Error(\"Wrong query\");\n }\n});\nqueryRunningSuite.add(\"supermassive - runtime schemaless\", async () => {\n let extractedResolvers: Resolvers = {};\n const getTypeByName = (name: string) => {\n const type = specifiedScalars[name] || extractedResolvers[name];\n if (isInputType(type)) {\n return type;\n } else {\n throw new Error(\"Invalid type\");\n }\n };\n extractedResolvers = extractImplicitTypes(parsedQuery, getTypeByName);\n\n const result = await supermassiveExecute({\n resolvers: resolvers as UserResolvers,\n schemaResolvers: extractedResolvers,\n document: typeAnnotatedQuery,\n contextValue: { models },\n });\n if (\"data\" in result && (result.errors || !result.data)) {\n throw new Error(\"Stuff ain't executing\");\n }\n});\n\nconst queryParsingSuite = new NiceBenchmark(\"Query parsing\");\nqueryParsingSuite.add(\"graphql-js\", async () => {\n parse(query);\n});\n\nconst queryCompilingSuite = new NiceBenchmark(\"Query compiling\");\nqueryCompilingSuite.add(\"graphql-jit\", async () => {\n await compileQuery(schema, parsedQuery);\n});\n\nconst queryAnnotationSuite = new NiceBenchmark(\"Query annotation\");\nqueryAnnotationSuite.add(\"supermassive\", () => {\n addTypesToRequestDocument(schema, parsedQuery);\n});\n\nasync function main() {\n await queryCompilingSuite.run();\n await queryParsingSuite.run();\n await queryAnnotationSuite.run();\n await queryRunningSuite.run();\n}\n\nmain();\n"],
5
- "mappings": "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",
6
- "names": ["fs", "path", "schema", "NiceBenchmark", "models", "graphqlExecute", "supermassiveExecute", "resolvers"]
4
+ "sourcesContent": ["import fs from \"fs\";\nimport path from \"path\";\nimport NiceBenchmark from \"./nice-benchmark\";\nimport schema from \"./swapi-schema\";\nimport resolvers from \"./swapi-schema/resolvers\";\nimport models from \"./swapi-schema/models\";\nimport {\n execute as graphqlExecute,\n parse,\n // experimentalExecuteIncrementally as graphqlExecute,\n} from \"graphql\";\nimport { compileQuery, isCompiledQuery } from \"graphql-jit\";\nimport { executeWithoutSchema as supermassiveExecute } from \"../executeWithoutSchema\";\nimport { UserResolvers } from \"../types\";\nimport { extractMinimalViableSchemaForRequestDocument } from \"../utilities/extractMinimalViableSchemaForRequestDocument\";\nimport { SchemaFragment } from \"../schema/fragment\";\n\nconst query = fs.readFileSync(\n path.join(__dirname, \"./fixtures/query1.graphql\"),\n {\n encoding: \"utf-8\",\n },\n);\n\nconst parsedQuery = parse(query);\nconst compiledQuery = compileQuery(schema, parsedQuery);\n\nconst { definitions } = extractMinimalViableSchemaForRequestDocument(\n schema,\n parsedQuery,\n);\n\nconst schemaFragment: SchemaFragment = {\n schemaId: \"benchmark\",\n definitions,\n resolvers: resolvers as UserResolvers,\n};\n\nconst queryRunningSuite = new NiceBenchmark(\"Query Running\");\nqueryRunningSuite.add(\"graphql-js - string queries\", async () => {\n const result = await graphqlExecute({\n schema,\n document: parse(query),\n contextValue: { models },\n });\n if (result.errors || !result.data) {\n throw new Error(\"Stuff ain't executing\");\n }\n});\nqueryRunningSuite.add(\"graphql-js - parsed queries\", async () => {\n const result = await graphqlExecute({\n schema,\n document: parsedQuery,\n contextValue: { models },\n });\n if (result.errors || !result.data) {\n throw new Error(\"Stuff ain't executing\");\n }\n});\nqueryRunningSuite.add(\"graphql-jit - uncompiled\", async () => {\n const freshCompiledQuery = compileQuery(schema, parsedQuery);\n if (isCompiledQuery(freshCompiledQuery)) {\n const result = await freshCompiledQuery.query({}, { models }, {});\n if (result.errors || !result.data) {\n throw new Error(\"Stuff ain't executing\");\n }\n } else {\n throw new Error(\"Wrong query\");\n }\n});\nqueryRunningSuite.add(\"graphql-jit - precompiled\", async () => {\n if (isCompiledQuery(compiledQuery)) {\n const result = await compiledQuery.query({}, { models }, {});\n if (result.errors || !result.data) {\n throw new Error(\"Stuff ain't executing\");\n }\n } else {\n throw new Error(\"Wrong query\");\n }\n});\nqueryRunningSuite.add(\"supermassive - runtime schemaless\", async () => {\n const result = await supermassiveExecute({\n schemaFragment,\n document: parsedQuery,\n contextValue: { models },\n });\n if (\"data\" in result && (result.errors || !result.data)) {\n throw new Error(\"Stuff ain't executing\");\n }\n});\n\nconst queryParsingSuite = new NiceBenchmark(\"Query parsing\");\nqueryParsingSuite.add(\"graphql-js\", async () => {\n parse(query);\n});\n\nconst queryCompilingSuite = new NiceBenchmark(\"Query compiling\");\nqueryCompilingSuite.add(\"graphql-jit\", async () => {\n await compileQuery(schema, parsedQuery);\n});\n\nconst queryAnnotationSuite = new NiceBenchmark(\"Query annotation\");\nqueryAnnotationSuite.add(\"supermassive\", () => {\n extractMinimalViableSchemaForRequestDocument(schema, parsedQuery);\n});\n\nasync function main() {\n await queryCompilingSuite.run();\n await queryParsingSuite.run();\n await queryAnnotationSuite.run();\n await queryRunningSuite.run();\n}\n\nmain();\n"],
5
+ "mappings": "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",
6
+ "names": ["fs", "path", "schema", "resolvers", "NiceBenchmark", "graphqlExecute", "models", "supermassiveExecute"]
7
7
  }