@graphitation/supermassive 0.1.2 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintcache +1 -1
- package/CHANGELOG.json +76 -1
- package/CHANGELOG.md +34 -2
- package/README.md +264 -2
- package/bin/supermassive.js +7 -0
- package/lib/{src/ast → ast}/TypedAST.d.ts +2 -0
- package/lib/ast/TypedAST.d.ts.map +1 -0
- package/lib/{src/ast → ast}/addTypesToRequestDocument.d.ts +0 -0
- package/lib/ast/addTypesToRequestDocument.d.ts.map +1 -0
- package/lib/ast/addTypesToRequestDocument.js +8 -5
- package/lib/ast/addTypesToRequestDocument.mjs +12 -6
- package/lib/benchmarks/index.d.ts.map +1 -1
- package/lib/benchmarks/index.js +127 -0
- package/lib/benchmarks/index.mjs +111 -0
- package/lib/benchmarks/nice-benchmark.d.ts +1 -1
- package/lib/benchmarks/nice-benchmark.d.ts.map +1 -1
- package/lib/benchmarks/nice-benchmark.js +72 -0
- package/lib/benchmarks/nice-benchmark.mjs +52 -0
- package/lib/benchmarks/swapi-schema/index.d.ts +1 -0
- package/lib/benchmarks/swapi-schema/index.d.ts.map +1 -1
- package/lib/benchmarks/swapi-schema/index.js +39 -0
- package/lib/benchmarks/swapi-schema/index.mjs +17 -0
- package/lib/benchmarks/swapi-schema/models.d.ts.map +1 -1
- package/lib/benchmarks/swapi-schema/models.js +29 -0
- package/lib/benchmarks/swapi-schema/models.mjs +7 -0
- package/lib/benchmarks/swapi-schema/resolvers.d.ts.map +1 -1
- package/lib/benchmarks/swapi-schema/resolvers.js +237 -0
- package/lib/benchmarks/swapi-schema/resolvers.mjs +230 -0
- package/lib/bin/supermassive.d.ts +3 -0
- package/lib/bin/supermassive.d.ts.map +1 -0
- package/lib/bin/supermassive.js +83 -0
- package/lib/bin/supermassive.mjs +62 -0
- package/lib/collectFields.d.ts +17 -0
- package/lib/collectFields.d.ts.map +1 -0
- package/lib/collectFields.js +83 -0
- package/lib/collectFields.mjs +61 -0
- package/lib/compiledQuery.d.ts +1 -0
- package/lib/compiledQuery.d.ts.map +1 -0
- package/lib/compiledQuery.js +0 -0
- package/lib/compiledQuery.mjs +0 -0
- package/lib/executeWithSchema.d.ts +4 -0
- package/lib/executeWithSchema.d.ts.map +1 -0
- package/lib/{index.test.js → executeWithSchema.js} +45 -46
- package/lib/executeWithSchema.mjs +64 -0
- package/lib/executeWithoutSchema.d.ts +99 -0
- package/lib/executeWithoutSchema.d.ts.map +1 -0
- package/lib/executeWithoutSchema.js +376 -0
- package/lib/executeWithoutSchema.mjs +363 -0
- package/lib/extractImplicitTypesRuntime.d.ts +4 -0
- package/lib/extractImplicitTypesRuntime.d.ts.map +1 -0
- package/lib/extractImplicitTypesRuntime.js +103 -0
- package/lib/extractImplicitTypesRuntime.mjs +91 -0
- package/lib/extractImplicitTypesToTypescript.d.ts +4 -0
- package/lib/extractImplicitTypesToTypescript.d.ts.map +1 -0
- package/lib/extractImplicitTypesToTypescript.js +169 -0
- package/lib/extractImplicitTypesToTypescript.mjs +149 -0
- package/lib/index.d.ts +8 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +12 -29
- package/lib/index.mjs +13 -29
- package/lib/jsutils/Maybe.d.ts +3 -0
- package/lib/jsutils/Maybe.d.ts.map +1 -0
- package/lib/jsutils/Maybe.js +3 -0
- package/lib/jsutils/Maybe.mjs +0 -0
- package/lib/jsutils/ObjMap.d.ts +13 -0
- package/lib/jsutils/ObjMap.d.ts.map +1 -0
- package/lib/jsutils/ObjMap.js +3 -0
- package/lib/jsutils/ObjMap.mjs +0 -0
- package/lib/jsutils/Path.d.ts +15 -0
- package/lib/jsutils/Path.d.ts.map +1 -0
- package/lib/jsutils/Path.js +23 -0
- package/lib/jsutils/Path.mjs +17 -0
- package/lib/jsutils/PromiseOrValue.d.ts +2 -0
- package/lib/jsutils/PromiseOrValue.d.ts.map +1 -0
- package/lib/jsutils/PromiseOrValue.js +3 -0
- package/lib/jsutils/PromiseOrValue.mjs +0 -0
- package/lib/jsutils/devAssert.d.ts +2 -0
- package/lib/jsutils/devAssert.d.ts.map +1 -0
- package/lib/jsutils/devAssert.js +16 -0
- package/lib/jsutils/devAssert.mjs +10 -0
- package/lib/jsutils/didYouMean.d.ts +6 -0
- package/lib/jsutils/didYouMean.d.ts.map +1 -0
- package/lib/jsutils/didYouMean.js +30 -0
- package/lib/jsutils/didYouMean.mjs +24 -0
- package/lib/jsutils/identityFunc.d.ts +5 -0
- package/lib/jsutils/identityFunc.d.ts.map +1 -0
- package/lib/jsutils/identityFunc.js +13 -0
- package/lib/jsutils/identityFunc.mjs +7 -0
- package/lib/jsutils/inspect.d.ts +5 -0
- package/lib/jsutils/inspect.d.ts.map +1 -0
- package/lib/jsutils/inspect.js +89 -0
- package/lib/jsutils/inspect.mjs +83 -0
- package/lib/jsutils/instanceOf.d.ts +14 -0
- package/lib/jsutils/instanceOf.d.ts.map +1 -0
- package/lib/jsutils/instanceOf.js +55 -0
- package/lib/jsutils/instanceOf.mjs +33 -0
- package/lib/jsutils/invariant.d.ts +2 -0
- package/lib/jsutils/invariant.d.ts.map +1 -0
- package/lib/jsutils/invariant.js +16 -0
- package/lib/jsutils/invariant.mjs +10 -0
- package/lib/jsutils/isAsyncIterable.d.ts +6 -0
- package/lib/jsutils/isAsyncIterable.d.ts.map +1 -0
- package/lib/jsutils/isAsyncIterable.js +13 -0
- package/lib/jsutils/isAsyncIterable.mjs +7 -0
- package/lib/jsutils/isIterableObject.d.ts +18 -0
- package/lib/jsutils/isIterableObject.d.ts.map +1 -0
- package/lib/jsutils/isIterableObject.js +13 -0
- package/lib/jsutils/isIterableObject.mjs +7 -0
- package/lib/jsutils/isObjectLike.d.ts +8 -0
- package/lib/jsutils/isObjectLike.d.ts.map +1 -0
- package/lib/jsutils/isObjectLike.js +13 -0
- package/lib/jsutils/isObjectLike.mjs +7 -0
- package/lib/jsutils/isPromise.d.ts +6 -0
- package/lib/jsutils/isPromise.d.ts.map +1 -0
- package/lib/jsutils/isPromise.js +13 -0
- package/lib/jsutils/isPromise.mjs +7 -0
- package/lib/jsutils/keyMap.d.ts +26 -0
- package/lib/jsutils/keyMap.d.ts.map +1 -0
- package/lib/jsutils/keyMap.js +17 -0
- package/lib/jsutils/keyMap.mjs +11 -0
- package/lib/jsutils/keyValMap.d.ts +20 -0
- package/lib/jsutils/keyValMap.d.ts.map +1 -0
- package/lib/jsutils/keyValMap.js +17 -0
- package/lib/jsutils/keyValMap.mjs +11 -0
- package/lib/jsutils/mapValue.d.ts +7 -0
- package/lib/jsutils/mapValue.d.ts.map +1 -0
- package/lib/jsutils/mapValue.js +17 -0
- package/lib/jsutils/mapValue.mjs +11 -0
- package/lib/jsutils/memoize3.d.ts +5 -0
- package/lib/jsutils/memoize3.d.ts.map +1 -0
- package/lib/jsutils/memoize3.js +34 -0
- package/lib/jsutils/memoize3.mjs +28 -0
- package/lib/jsutils/naturalCompare.d.ts +9 -0
- package/lib/jsutils/naturalCompare.d.ts.map +1 -0
- package/lib/jsutils/naturalCompare.js +53 -0
- package/lib/jsutils/naturalCompare.mjs +47 -0
- package/lib/jsutils/printPathArray.d.ts +5 -0
- package/lib/jsutils/printPathArray.d.ts.map +1 -0
- package/lib/jsutils/printPathArray.js +13 -0
- package/lib/jsutils/printPathArray.mjs +7 -0
- package/lib/jsutils/promiseForObject.d.ts +10 -0
- package/lib/jsutils/promiseForObject.d.ts.map +1 -0
- package/lib/jsutils/promiseForObject.js +19 -0
- package/lib/jsutils/promiseForObject.mjs +13 -0
- package/lib/jsutils/promiseReduce.d.ts +10 -0
- package/lib/jsutils/promiseReduce.d.ts.map +1 -0
- package/lib/jsutils/promiseReduce.js +34 -0
- package/lib/jsutils/promiseReduce.mjs +12 -0
- package/lib/jsutils/suggestionList.d.ts +6 -0
- package/lib/jsutils/suggestionList.d.ts.map +1 -0
- package/lib/jsutils/suggestionList.js +109 -0
- package/lib/jsutils/suggestionList.mjs +87 -0
- package/lib/jsutils/toObjMap.d.ts +4 -0
- package/lib/jsutils/toObjMap.d.ts.map +1 -0
- package/lib/jsutils/toObjMap.js +20 -0
- package/lib/jsutils/toObjMap.mjs +14 -0
- package/lib/transforms/annotateDocumentGraphQLTransform.d.ts +3 -0
- package/lib/transforms/annotateDocumentGraphQLTransform.d.ts.map +1 -0
- package/lib/transforms/annotateDocumentGraphQLTransform.js +37 -0
- package/lib/transforms/annotateDocumentGraphQLTransform.mjs +17 -0
- package/lib/transforms/transformerTestUtils.d.ts +79 -0
- package/lib/transforms/transformerTestUtils.d.ts.map +1 -0
- package/lib/transforms/transformerTestUtils.js +175 -0
- package/lib/transforms/transformerTestUtils.mjs +160 -0
- package/lib/types.d.ts +74 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +3 -0
- package/lib/types.mjs +0 -0
- package/lib/utilities/typeNameFromAST.d.ts +3 -0
- package/lib/utilities/typeNameFromAST.d.ts.map +1 -0
- package/lib/utilities/typeNameFromAST.js +34 -0
- package/lib/utilities/typeNameFromAST.mjs +12 -0
- package/lib/values.d.ts +64 -0
- package/lib/values.d.ts.map +1 -0
- package/lib/values.js +145 -0
- package/lib/values.mjs +138 -0
- package/package.json +21 -6
- package/benchmarks/fixtures/query1.graphql +0 -20
- package/benchmarks/index.ts +0 -68
- package/benchmarks/nice-benchmark.ts +0 -32
- package/benchmarks/swapi-schema/index.ts +0 -13
- package/benchmarks/swapi-schema/models.ts +0 -4
- package/benchmarks/swapi-schema/resolvers.ts +0 -331
- package/benchmarks/swapi-schema/schema.graphql +0 -164
- package/benchmarks/swapi-schema/starwars.json +0 -5991
- package/lib/index.test.mjs +0 -63
- package/lib/src/ast/TypedAST.d.ts.map +0 -1
- package/lib/src/ast/addTypesToRequestDocument.d.ts.map +0 -1
- package/lib/src/index.d.ts +0 -16
- package/lib/src/index.d.ts.map +0 -1
- package/lib/src/index.test.d.ts +0 -2
- package/lib/src/index.test.d.ts.map +0 -1
|
@@ -0,0 +1,127 @@
|
|
|
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 __reExport = (target, module2, desc) => {
|
|
9
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
10
|
+
for (let key of __getOwnPropNames(module2))
|
|
11
|
+
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
12
|
+
__defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
|
|
13
|
+
}
|
|
14
|
+
return target;
|
|
15
|
+
};
|
|
16
|
+
var __toModule = (module2) => {
|
|
17
|
+
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);
|
|
18
|
+
};
|
|
19
|
+
var __async = (__this, __arguments, generator) => {
|
|
20
|
+
return new Promise((resolve, reject) => {
|
|
21
|
+
var fulfilled = (value) => {
|
|
22
|
+
try {
|
|
23
|
+
step(generator.next(value));
|
|
24
|
+
} catch (e) {
|
|
25
|
+
reject(e);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
var rejected = (value) => {
|
|
29
|
+
try {
|
|
30
|
+
step(generator.throw(value));
|
|
31
|
+
} catch (e) {
|
|
32
|
+
reject(e);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
36
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
var import_fs = __toModule(require("fs"));
|
|
40
|
+
var import_path = __toModule(require("path"));
|
|
41
|
+
var import_nice_benchmark = __toModule(require("./nice-benchmark"));
|
|
42
|
+
var import_swapi_schema = __toModule(require("./swapi-schema"));
|
|
43
|
+
var import_resolvers = __toModule(require("./swapi-schema/resolvers"));
|
|
44
|
+
var import_models = __toModule(require("./swapi-schema/models"));
|
|
45
|
+
var import_graphql = __toModule(require("graphql"));
|
|
46
|
+
var import_graphql_jit = __toModule(require("graphql-jit"));
|
|
47
|
+
var import_executeWithoutSchema = __toModule(require("../executeWithoutSchema"));
|
|
48
|
+
var import_addTypesToRequestDocument = __toModule(require("../ast/addTypesToRequestDocument"));
|
|
49
|
+
const query = import_fs.default.readFileSync(import_path.default.join(__dirname, "./fixtures/query1.graphql"), {
|
|
50
|
+
encoding: "utf-8"
|
|
51
|
+
});
|
|
52
|
+
const parsedQuery = (0, import_graphql.parse)(query);
|
|
53
|
+
const compiledQuery = (0, import_graphql_jit.compileQuery)(import_swapi_schema.default, parsedQuery);
|
|
54
|
+
const typeAnnotatedQuery = (0, import_addTypesToRequestDocument.addTypesToRequestDocument)(import_swapi_schema.default, parsedQuery);
|
|
55
|
+
const queryRunningSuite = new import_nice_benchmark.default("Query Running");
|
|
56
|
+
queryRunningSuite.add("graphql-js - string queries", () => __async(void 0, null, function* () {
|
|
57
|
+
const result = yield (0, import_graphql.graphql)({
|
|
58
|
+
schema: import_swapi_schema.default,
|
|
59
|
+
source: query,
|
|
60
|
+
contextValue: {models: import_models.default}
|
|
61
|
+
});
|
|
62
|
+
if (result.errors || !result.data) {
|
|
63
|
+
throw new Error("Stuff ain't executing");
|
|
64
|
+
}
|
|
65
|
+
}));
|
|
66
|
+
queryRunningSuite.add("graphql-js - parsed queries", () => __async(void 0, null, function* () {
|
|
67
|
+
const result = yield (0, import_graphql.execute)({
|
|
68
|
+
schema: import_swapi_schema.default,
|
|
69
|
+
document: parsedQuery,
|
|
70
|
+
contextValue: {models: import_models.default}
|
|
71
|
+
});
|
|
72
|
+
if (result.errors || !result.data) {
|
|
73
|
+
throw new Error("Stuff ain't executing");
|
|
74
|
+
}
|
|
75
|
+
}));
|
|
76
|
+
queryRunningSuite.add("graphql-jit - uncompiled", () => __async(void 0, null, function* () {
|
|
77
|
+
const freshCompiledQuery = (0, import_graphql_jit.compileQuery)(import_swapi_schema.default, parsedQuery);
|
|
78
|
+
if ((0, import_graphql_jit.isCompiledQuery)(freshCompiledQuery)) {
|
|
79
|
+
const result = yield freshCompiledQuery.query({}, {models: import_models.default}, {});
|
|
80
|
+
if (result.errors || !result.data) {
|
|
81
|
+
throw new Error("Stuff ain't executing");
|
|
82
|
+
}
|
|
83
|
+
} else {
|
|
84
|
+
throw new Error("Wrong query");
|
|
85
|
+
}
|
|
86
|
+
}));
|
|
87
|
+
queryRunningSuite.add("graphql-jit - precompiled", () => __async(void 0, null, function* () {
|
|
88
|
+
if ((0, import_graphql_jit.isCompiledQuery)(compiledQuery)) {
|
|
89
|
+
const result = yield compiledQuery.query({}, {models: import_models.default}, {});
|
|
90
|
+
if (result.errors || !result.data) {
|
|
91
|
+
throw new Error("Stuff ain't executing");
|
|
92
|
+
}
|
|
93
|
+
} else {
|
|
94
|
+
throw new Error("Wrong query");
|
|
95
|
+
}
|
|
96
|
+
}));
|
|
97
|
+
queryRunningSuite.add("supermassive - runtime schemaless", () => __async(void 0, null, function* () {
|
|
98
|
+
const result = yield (0, import_executeWithoutSchema.executeWithoutSchema)({
|
|
99
|
+
resolvers: import_resolvers.default,
|
|
100
|
+
document: typeAnnotatedQuery,
|
|
101
|
+
contextValue: {models: import_models.default}
|
|
102
|
+
});
|
|
103
|
+
if (result.errors || !result.data) {
|
|
104
|
+
throw new Error("Stuff ain't executing");
|
|
105
|
+
}
|
|
106
|
+
}));
|
|
107
|
+
const queryParsingSuite = new import_nice_benchmark.default("Query parsing");
|
|
108
|
+
queryParsingSuite.add("graphql-js", () => __async(void 0, null, function* () {
|
|
109
|
+
(0, import_graphql.parse)(query);
|
|
110
|
+
}));
|
|
111
|
+
const queryCompilingSuite = new import_nice_benchmark.default("Query compiling");
|
|
112
|
+
queryCompilingSuite.add("graphql-jit", () => __async(void 0, null, function* () {
|
|
113
|
+
yield (0, import_graphql_jit.compileQuery)(import_swapi_schema.default, parsedQuery);
|
|
114
|
+
}));
|
|
115
|
+
const queryAnnotationSuite = new import_nice_benchmark.default("Query annotation");
|
|
116
|
+
queryAnnotationSuite.add("supermassive", () => {
|
|
117
|
+
(0, import_addTypesToRequestDocument.addTypesToRequestDocument)(import_swapi_schema.default, parsedQuery);
|
|
118
|
+
});
|
|
119
|
+
function main() {
|
|
120
|
+
return __async(this, null, function* () {
|
|
121
|
+
yield queryCompilingSuite.run();
|
|
122
|
+
yield queryParsingSuite.run();
|
|
123
|
+
yield queryAnnotationSuite.run();
|
|
124
|
+
yield queryRunningSuite.run();
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
main();
|
|
@@ -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<
|
|
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,
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../benchmarks/swapi-schema/index.ts"],"names":[],"mappings":"
|
|
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"));
|
|
@@ -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,
|
|
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"}
|