MCPcopy Create free account
hub / github.com/UsefulSoftwareCo/executor / extract

Function extract

packages/plugins/graphql/src/sdk/extract.ts:224–252  ·  view source on GitHub ↗
(
  introspection: IntrospectionResult,
)

Source from the content-addressed store, hash-verified

222}
223
224export const extract = (
225 introspection: IntrospectionResult,
226): Effect.Effect<ExtractionOutput, GraphqlExtractionError> =>
227 Effect.try({
228 try: () => {
229 const schema = introspection.__schema;
230 const typeMap = new Map<string, IntrospectionType>();
231 for (const t of schema.types) {
232 typeMap.set(t.name, t);
233 }
234
235 const definitions = buildDefinitions(typeMap);
236
237 const queryFields = extractFields(schema, "query", schema.queryType?.name, typeMap);
238 const mutationFields = extractFields(schema, "mutation", schema.mutationType?.name, typeMap);
239
240 return {
241 result: ExtractionResult.make({
242 schemaName: Option.none(),
243 fields: [...queryFields, ...mutationFields],
244 }),
245 definitions,
246 };
247 },
248 catch: () =>
249 new GraphqlExtractionError({
250 message: "Failed to extract GraphQL schema",
251 }),
252 });

Callers 13

index.test.tsFile · 0.90
plugin.tsFile · 0.90
getResultFunction · 0.90
getVercelResultFunction · 0.90
compileOpenApiDocumentFunction · 0.90
extract.test.tsFile · 0.90
preview.tsFile · 0.90
materializeOperationsFunction · 0.90
plugin.tsFile · 0.90
extract.test.tsFile · 0.90

Calls 3

buildDefinitionsFunction · 0.85
extractFieldsFunction · 0.85
setMethod · 0.80

Tested by 2

getResultFunction · 0.72
getVercelResultFunction · 0.72