From af60b5f9c96c8118ba9ae64706efdb5deb1e546f Mon Sep 17 00:00:00 2001 From: Yaacov Rydzinski Date: Tue, 27 Dec 2022 13:39:30 +0200 Subject: [PATCH] add additional benchmark see https://github.com/graphql/graphql-js/pull/3754#issue-1392076280 --- benchmark/list-async-nested-benchmark.js | 34 ++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 benchmark/list-async-nested-benchmark.js diff --git a/benchmark/list-async-nested-benchmark.js b/benchmark/list-async-nested-benchmark.js new file mode 100644 index 0000000000..70cc5dbe3a --- /dev/null +++ b/benchmark/list-async-nested-benchmark.js @@ -0,0 +1,34 @@ +import { execute } from 'graphql/execution/execute.js'; +import { parse } from 'graphql/language/parser.js'; +import { buildSchema } from 'graphql/utilities/buildASTSchema.js'; + +const schema = buildSchema(` + type Query { + listField: [Object] + } + + type Object { + field: String + } +`); +const document = parse('{ listField { field } }'); + +function listField() { + const results = []; + for (let index = 0; index < 1; index++) { + results.push(Promise.resolve({ field: Promise.resolve(index) })); + } + return results; +} + +export const benchmark = { + name: 'Execute Asynchronous List Field with Nested Asynchronous Fields', + count: 10, + async measure() { + await execute({ + schema, + document, + rootValue: { listField }, + }); + }, +};