summaryrefslogtreecommitdiff
path: root/school/node_modules/graphql/graphql.mjs
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2023-01-10 14:54:04 +0100
committerMinteck <contact@minteck.org>2023-01-10 14:54:04 +0100
commit99c1d9af689e5325f3cf535c4007b3aeb8325229 (patch)
treee663b3c2ebdbd67c818ac0c5147f0ce1d2463cda /school/node_modules/graphql/graphql.mjs
parent9871b03912fc28ad38b4037ebf26a78aa937baba (diff)
downloadpluralconnect-99c1d9af689e5325f3cf535c4007b3aeb8325229.tar.gz
pluralconnect-99c1d9af689e5325f3cf535c4007b3aeb8325229.tar.bz2
pluralconnect-99c1d9af689e5325f3cf535c4007b3aeb8325229.zip
Update - This is an automated commit
Diffstat (limited to 'school/node_modules/graphql/graphql.mjs')
-rw-r--r--school/node_modules/graphql/graphql.mjs142
1 files changed, 142 insertions, 0 deletions
diff --git a/school/node_modules/graphql/graphql.mjs b/school/node_modules/graphql/graphql.mjs
new file mode 100644
index 0000000..aa3cb91
--- /dev/null
+++ b/school/node_modules/graphql/graphql.mjs
@@ -0,0 +1,142 @@
+import isPromise from "./jsutils/isPromise.mjs";
+import { parse } from "./language/parser.mjs";
+import { validate } from "./validation/validate.mjs";
+import { validateSchema } from "./type/validate.mjs";
+import { execute } from "./execution/execute.mjs";
+/**
+ * This is the primary entry point function for fulfilling GraphQL operations
+ * by parsing, validating, and executing a GraphQL document along side a
+ * GraphQL schema.
+ *
+ * More sophisticated GraphQL servers, such as those which persist queries,
+ * may wish to separate the validation and execution phases to a static time
+ * tooling step, and a server runtime step.
+ *
+ * Accepts either an object with named arguments, or individual arguments:
+ *
+ * schema:
+ * The GraphQL type system to use when validating and executing a query.
+ * source:
+ * A GraphQL language formatted string representing the requested operation.
+ * rootValue:
+ * The value provided as the first argument to resolver functions on the top
+ * level type (e.g. the query object type).
+ * contextValue:
+ * The context value is provided as an argument to resolver functions after
+ * field arguments. It is used to pass shared information useful at any point
+ * during executing this query, for example the currently logged in user and
+ * connections to databases or other services.
+ * variableValues:
+ * A mapping of variable name to runtime value to use for all variables
+ * defined in the requestString.
+ * operationName:
+ * The name of the operation to use if requestString contains multiple
+ * possible operations. Can be omitted if requestString contains only
+ * one operation.
+ * fieldResolver:
+ * A resolver function to use when one is not provided by the schema.
+ * If not provided, the default field resolver is used (which looks for a
+ * value or method on the source value with the field's name).
+ * typeResolver:
+ * A type resolver function to use when none is provided by the schema.
+ * If not provided, the default type resolver is used (which looks for a
+ * `__typename` field or alternatively calls the `isTypeOf` method).
+ */
+
+export function graphql(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {
+ var _arguments = arguments;
+
+ /* eslint-enable no-redeclare */
+ // Always return a Promise for a consistent API.
+ return new Promise(function (resolve) {
+ return resolve( // Extract arguments from object args if provided.
+ _arguments.length === 1 ? graphqlImpl(argsOrSchema) : graphqlImpl({
+ schema: argsOrSchema,
+ source: source,
+ rootValue: rootValue,
+ contextValue: contextValue,
+ variableValues: variableValues,
+ operationName: operationName,
+ fieldResolver: fieldResolver,
+ typeResolver: typeResolver
+ }));
+ });
+}
+/**
+ * The graphqlSync function also fulfills GraphQL operations by parsing,
+ * validating, and executing a GraphQL document along side a GraphQL schema.
+ * However, it guarantees to complete synchronously (or throw an error) assuming
+ * that all field resolvers are also synchronous.
+ */
+
+export function graphqlSync(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {
+ /* eslint-enable no-redeclare */
+ // Extract arguments from object args if provided.
+ var result = arguments.length === 1 ? graphqlImpl(argsOrSchema) : graphqlImpl({
+ schema: argsOrSchema,
+ source: source,
+ rootValue: rootValue,
+ contextValue: contextValue,
+ variableValues: variableValues,
+ operationName: operationName,
+ fieldResolver: fieldResolver,
+ typeResolver: typeResolver
+ }); // Assert that the execution was synchronous.
+
+ if (isPromise(result)) {
+ throw new Error('GraphQL execution failed to complete synchronously.');
+ }
+
+ return result;
+}
+
+function graphqlImpl(args) {
+ var schema = args.schema,
+ source = args.source,
+ rootValue = args.rootValue,
+ contextValue = args.contextValue,
+ variableValues = args.variableValues,
+ operationName = args.operationName,
+ fieldResolver = args.fieldResolver,
+ typeResolver = args.typeResolver; // Validate Schema
+
+ var schemaValidationErrors = validateSchema(schema);
+
+ if (schemaValidationErrors.length > 0) {
+ return {
+ errors: schemaValidationErrors
+ };
+ } // Parse
+
+
+ var document;
+
+ try {
+ document = parse(source);
+ } catch (syntaxError) {
+ return {
+ errors: [syntaxError]
+ };
+ } // Validate
+
+
+ var validationErrors = validate(schema, document);
+
+ if (validationErrors.length > 0) {
+ return {
+ errors: validationErrors
+ };
+ } // Execute
+
+
+ return execute({
+ schema: schema,
+ document: document,
+ rootValue: rootValue,
+ contextValue: contextValue,
+ variableValues: variableValues,
+ operationName: operationName,
+ fieldResolver: fieldResolver,
+ typeResolver: typeResolver
+ });
+}