diff options
author | Minteck <contact@minteck.org> | 2022-10-18 08:59:09 +0200 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-10-18 08:59:09 +0200 |
commit | 2c4ae43e688a9873e86211ea0e7aeb9ba770dd77 (patch) | |
tree | 17848d95522dab25d3cdeb9c4a6450e2a234861f /alarm/node_modules/graphql/utilities/introspectionFromSchema.js.flow | |
parent | 108525534c28013cfe1897c30e4565f9893f3766 (diff) | |
download | pluralconnect-2c4ae43e688a9873e86211ea0e7aeb9ba770dd77.tar.gz pluralconnect-2c4ae43e688a9873e86211ea0e7aeb9ba770dd77.tar.bz2 pluralconnect-2c4ae43e688a9873e86211ea0e7aeb9ba770dd77.zip |
Update
Diffstat (limited to 'alarm/node_modules/graphql/utilities/introspectionFromSchema.js.flow')
-rw-r--r-- | alarm/node_modules/graphql/utilities/introspectionFromSchema.js.flow | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/alarm/node_modules/graphql/utilities/introspectionFromSchema.js.flow b/alarm/node_modules/graphql/utilities/introspectionFromSchema.js.flow new file mode 100644 index 0000000..0a73fe0 --- /dev/null +++ b/alarm/node_modules/graphql/utilities/introspectionFromSchema.js.flow @@ -0,0 +1,41 @@ +// @flow strict +import invariant from '../jsutils/invariant'; + +import { parse } from '../language/parser'; + +import type { GraphQLSchema } from '../type/schema'; + +import { executeSync } from '../execution/execute'; + +import type { + IntrospectionQuery, + IntrospectionOptions, +} from './getIntrospectionQuery'; +import { getIntrospectionQuery } from './getIntrospectionQuery'; + +/** + * Build an IntrospectionQuery from a GraphQLSchema + * + * IntrospectionQuery is useful for utilities that care about type and field + * relationships, but do not need to traverse through those relationships. + * + * This is the inverse of buildClientSchema. The primary use case is outside + * of the server context, for instance when doing schema comparisons. + */ +export function introspectionFromSchema( + schema: GraphQLSchema, + options?: IntrospectionOptions, +): IntrospectionQuery { + const optionsWithDefaults = { + specifiedByUrl: true, + directiveIsRepeatable: true, + schemaDescription: true, + inputValueDeprecation: true, + ...options, + }; + + const document = parse(getIntrospectionQuery(optionsWithDefaults)); + const result = executeSync({ schema, document }); + invariant(!result.errors && result.data); + return (result.data: any); +} |