UNPKG

36.6 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.cjs.js","sources":["../../../dist/handlers/json-schema/src/json-schema-visitor.js","../../../dist/handlers/json-schema/src/index.js"],"sourcesContent":["import { GraphQLList, GraphQLBoolean, GraphQLInt, GraphQLEnumType, GraphQLString, GraphQLInputObjectType, GraphQLObjectType, GraphQLFloat, GraphQLNonNull, } from 'graphql';\nimport { pascalCase } from 'pascal-case';\nimport { JSONResolver as GraphQLJSON } from 'graphql-scalars';\nconst asArray = (maybeArray) => {\n if (Array.isArray(maybeArray)) {\n return maybeArray;\n }\n else if (maybeArray) {\n return [maybeArray];\n }\n else {\n return [];\n }\n};\nexport class JSONSchemaVisitorCache {\n constructor() {\n this.inputSpecificTypesByIdentifier = new Map();\n this.outputSpecificTypesByIdentifier = new Map();\n this.sharedTypesByIdentifier = new Map();\n this.typesByNames = new Map();\n this.prefixedNames = new Set();\n this.potentialPrefixes = new WeakMap();\n }\n}\nexport class JSONSchemaVisitor {\n constructor(cache = new JSONSchemaVisitorCache()) {\n this.cache = cache;\n this.warnedReferences = new Set();\n }\n getNameFromId(id) {\n const [actualTypePath, genericTypePart] = id.split('<');\n const actualTypePathParts = actualTypePath.split(':');\n const actualTypeName = actualTypePathParts[actualTypePathParts.length - 1];\n let finalTypeName = actualTypeName;\n if (genericTypePart) {\n const [genericTypePath] = genericTypePart.split('>');\n const genericTypeParts = genericTypePath.split(':');\n const genericTypeName = genericTypeParts[genericTypeParts.length - 1];\n finalTypeName = actualTypeName + '_' + genericTypeName;\n }\n return pascalCase(finalTypeName);\n }\n visit(def, propertyName, prefix, isInput) {\n if ('definitions' in def) {\n for (const propertyName in def.definitions) {\n const definition = def.definitions[propertyName];\n this.visit(definition, propertyName, prefix, isInput);\n }\n }\n if ('$defs' in def) {\n for (const propertyName in def.$defs) {\n const definition = def.$defs[propertyName];\n this.visit(definition, propertyName, prefix, isInput);\n }\n }\n switch (def.type) {\n case 'array':\n return this.visitArray(def, propertyName, prefix, isInput);\n case 'boolean':\n return this.visitBoolean();\n case 'integer':\n return this.visitInteger();\n case 'number':\n return this.visitNumber();\n case 'string':\n if ('enum' in def) {\n return this.visitEnum(def, propertyName, prefix);\n }\n else {\n return this.visitString();\n }\n case 'null':\n case 'any':\n return this.visitAny();\n case 'object':\n if ('$ref' in def) {\n return this.visitObjectReference(def, isInput);\n }\n else if ('name' in def || 'title' in def) {\n return this.visitTypedNamedObjectDefinition(def, prefix, isInput);\n }\n else if ('properties' in def) {\n return this.visitTypedUnnamedObjectDefinition(def, propertyName, prefix, isInput);\n }\n else if ('additionalProperties' in def && def.additionalProperties) {\n return this.visitAny();\n }\n break;\n }\n throw new Error(`Unexpected schema definition:\n ${JSON.stringify(def, null, 2)}`);\n }\n visitArray(arrayDef, propertyName, prefix, isInput) {\n const [itemsDef] = asArray(arrayDef.items);\n return new GraphQLList(itemsDef ? this.visit(itemsDef, propertyName, prefix, isInput) : this.visitAny());\n }\n visitBoolean() {\n return GraphQLBoolean;\n }\n visitInteger() {\n return GraphQLInt;\n }\n visitNumber() {\n return GraphQLFloat;\n }\n visitString() {\n return GraphQLString;\n }\n visitEnum(enumDef, propertyName, prefix) {\n const enumIdentifier = JSON.stringify(enumDef);\n if (!this.cache.sharedTypesByIdentifier.has(enumIdentifier)) {\n // If there is a different enum but with the same name,\n // just change the existing one's name and use prefixes from now on\n let name = pascalCase(propertyName);\n if (!this.cache.prefixedNames.has(name) && this.cache.typesByNames.has(name)) {\n const existingType = this.cache.typesByNames.get(name);\n if ('name' in existingType) {\n const prefix = this.cache.potentialPrefixes.get(existingType);\n existingType.name = pascalCase(prefix + '_' + name);\n this.cache.prefixedNames.add(name);\n this.cache.typesByNames.delete(name);\n if (this.cache.typesByNames.has(existingType.name)) {\n throw existingType.name;\n }\n this.cache.typesByNames.set(existingType.name, existingType);\n }\n }\n if (this.cache.prefixedNames.has(name)) {\n name = pascalCase(prefix + '_' + name);\n }\n const type = new GraphQLEnumType({\n name,\n description: enumDef.description,\n values: enumDef.enum.reduce((values, enumValue) => ({ ...values, [enumValue]: {} }), {}),\n });\n this.cache.potentialPrefixes.set(type, prefix);\n this.cache.sharedTypesByIdentifier.set(enumIdentifier, type);\n if (this.cache.typesByNames.has(name)) {\n throw name;\n }\n this.cache.typesByNames.set(name, type);\n }\n return this.cache.sharedTypesByIdentifier.get(enumIdentifier);\n }\n createFieldsMapFromProperties(objectDef, prefix, isInput) {\n var _a;\n const fieldMap = {};\n for (const propertyName in objectDef.properties) {\n const fieldName = propertyName.split(':').join('_');\n const property = objectDef.properties[propertyName];\n const type = this.visit(property, propertyName, prefix, isInput);\n const isRequired = 'required' in objectDef && ((_a = objectDef.required) === null || _a === void 0 ? void 0 : _a.includes(propertyName));\n fieldMap[fieldName] = {\n type: isRequired ? new GraphQLNonNull(type) : type,\n description: property.description,\n };\n if (fieldName !== propertyName) {\n fieldMap[fieldName].resolve = (root) => root[propertyName];\n }\n }\n return fieldMap;\n }\n getSpecificTypeByIdentifier(identifier, isInput) {\n return (this.cache.sharedTypesByIdentifier.get(identifier) ||\n (isInput\n ? this.cache.inputSpecificTypesByIdentifier.get(identifier)\n : this.cache.outputSpecificTypesByIdentifier.get(identifier)));\n }\n getGraphQLObjectTypeWithTypedObjectDef(objectDef, objectIdentifier, rawName, prefix, isInput) {\n const specificType = this.getSpecificTypeByIdentifier(objectIdentifier, isInput);\n if (!specificType) {\n let name = rawName;\n // If there is a different object but with the same name,\n // just change the existing one's name and use prefixes from now on\n if (!this.cache.prefixedNames.has(name) && this.cache.typesByNames.has(name)) {\n const existingType = this.cache.typesByNames.get(name);\n if ('name' in existingType) {\n const existingTypePrefix = this.cache.potentialPrefixes.get(existingType);\n existingType.name = pascalCase(existingTypePrefix + '_' + name);\n this.cache.prefixedNames.add(name);\n this.cache.typesByNames.delete(name);\n if (this.cache.typesByNames.has(existingType.name)) {\n throw existingType.name;\n }\n this.cache.typesByNames.set(existingType.name, existingType);\n }\n }\n // If this name should be prefixed\n if (this.cache.prefixedNames.has(name)) {\n name = pascalCase(prefix + '_' + name);\n }\n if (this.cache.typesByNames.has(name)) {\n const suffix = isInput ? 'Input' : 'Output';\n name = pascalCase(name + '_' + suffix);\n }\n if (isInput) {\n const inputType = new GraphQLInputObjectType({\n name,\n description: objectDef.description,\n fields: this.createFieldsMapFromProperties(objectDef, name, true),\n });\n this.cache.inputSpecificTypesByIdentifier.set(objectIdentifier, inputType);\n this.cache.typesByNames.set(inputType.name, inputType);\n this.cache.potentialPrefixes.set(inputType, prefix);\n return inputType;\n }\n else {\n const outputType = new GraphQLObjectType({\n name,\n description: objectDef.description,\n fields: this.createFieldsMapFromProperties(objectDef, name, false),\n });\n this.cache.outputSpecificTypesByIdentifier.set(objectIdentifier, outputType);\n this.cache.typesByNames.set(outputType.name, outputType);\n this.cache.potentialPrefixes.set(outputType, prefix);\n return outputType;\n }\n }\n return specificType;\n }\n visitTypedUnnamedObjectDefinition(typedUnnamedObjectDef, propertyName, prefix, isInput) {\n const objectIdentifier = 'id' in typedUnnamedObjectDef\n ? typedUnnamedObjectDef.id\n : '$id' in typedUnnamedObjectDef\n ? typedUnnamedObjectDef.$id\n : `${prefix}_${propertyName}`;\n const name = this.getNameFromId(objectIdentifier);\n return this.getGraphQLObjectTypeWithTypedObjectDef(typedUnnamedObjectDef, objectIdentifier, name, prefix, isInput);\n }\n visitTypedNamedObjectDefinition(typedNamedObjectDef, prefix, isInput) {\n const objectIdentifier = 'name' in typedNamedObjectDef ? typedNamedObjectDef.name : typedNamedObjectDef.title;\n const name = pascalCase(objectIdentifier);\n return this.getGraphQLObjectTypeWithTypedObjectDef(typedNamedObjectDef, objectIdentifier, name, prefix, isInput);\n }\n visitObjectReference(objectRef, isInput) {\n const referenceParts = objectRef.$ref.split('/');\n const reference = referenceParts[referenceParts.length - 1];\n const specificType = this.getSpecificTypeByIdentifier(reference, isInput);\n if (!specificType) {\n if (!this.warnedReferences.has(reference) && !this.warnedReferences.has(reference)) {\n console.warn(`Missing JSON Schema reference: ${reference}. GraphQLJSON will be used instead!`);\n this.warnedReferences.add(reference);\n }\n return this.visitAny();\n }\n return specificType;\n }\n visitAny() {\n return GraphQLJSON;\n }\n}\n//# sourceMappingURL=json-schema-visitor.js.map","import { GraphQLSchema, GraphQLObjectType, GraphQLBoolean, } from 'graphql';\nimport { JSONSchemaVisitor, JSONSchemaVisitorCache } from './json-schema-visitor';\nimport urlJoin from 'url-join';\nimport { readFileOrUrlWithCache, loadFromModuleExportExpression, stringInterpolator, parseInterpolationStrings, } from '@graphql-mesh/utils';\nimport AggregateError from 'aggregate-error';\nimport { fetchache, Request } from 'fetchache';\nconst handler = {\n async getMeshSource({ config, cache }) {\n var _a, _b;\n const visitorCache = new JSONSchemaVisitorCache();\n await Promise.all(((_a = config.typeReferences) === null || _a === void 0 ? void 0 : _a.map(typeReference => Promise.all(Object.keys(typeReference).map(async (key) => {\n switch (key) {\n case 'sharedType': {\n const sharedType = await loadFromModuleExportExpression(typeReference.sharedType);\n visitorCache.sharedTypesByIdentifier.set(typeReference.reference, sharedType);\n break;\n }\n case 'outputType': {\n const outputType = await loadFromModuleExportExpression(typeReference.outputType);\n visitorCache.outputSpecificTypesByIdentifier.set(typeReference.reference, outputType);\n break;\n }\n case 'inputType': {\n const inputType = await loadFromModuleExportExpression(typeReference.inputType);\n visitorCache.inputSpecificTypesByIdentifier.set(typeReference.reference, inputType);\n break;\n }\n case 'reference':\n break;\n default:\n throw new Error(`Unexpected type reference field: ${key}`);\n }\n })))) || []);\n const queryFields = {};\n const mutationFields = {};\n const schemaVisitor = new JSONSchemaVisitor(visitorCache);\n const contextVariables = [];\n await Promise.all(((_b = config.operations) === null || _b === void 0 ? void 0 : _b.map(async (operationConfig) => {\n const [requestSchema, responseSchema] = await Promise.all([\n operationConfig.requestSchema\n ? readFileOrUrlWithCache(operationConfig.requestSchema, cache, {\n headers: config.schemaHeaders,\n })\n : undefined,\n readFileOrUrlWithCache(operationConfig.responseSchema, cache, {\n headers: config.schemaHeaders,\n }),\n ]);\n operationConfig.method = operationConfig.method || (operationConfig.type === 'Mutation' ? 'POST' : 'GET');\n operationConfig.type = operationConfig.type || (operationConfig.method === 'GET' ? 'Query' : 'Mutation');\n const destination = operationConfig.type === 'Query' ? queryFields : mutationFields;\n const type = schemaVisitor.visit(responseSchema, 'Response', operationConfig.field, false);\n const { args, contextVariables: specificContextVariables } = parseInterpolationStrings([\n ...Object.values(config.operationHeaders || {}),\n ...Object.values(operationConfig.headers || {}),\n operationConfig.path,\n ]);\n contextVariables.push(...specificContextVariables);\n if (requestSchema) {\n args.input = {\n type: schemaVisitor.visit(requestSchema, 'Request', operationConfig.field, true),\n };\n }\n destination[operationConfig.field] = {\n description: operationConfig.description ||\n responseSchema.description ||\n `${operationConfig.method} ${operationConfig.path}`,\n type,\n args,\n resolve: async (root, args, context, info) => {\n const interpolationData = { root, args, context, info };\n const interpolatedPath = stringInterpolator.parse(operationConfig.path, interpolationData);\n const fullPath = urlJoin(config.baseUrl, interpolatedPath);\n const method = operationConfig.method;\n const headers = {\n ...config.operationHeaders,\n ...operationConfig === null || operationConfig === void 0 ? void 0 : operationConfig.headers,\n };\n for (const headerName in headers) {\n headers[headerName] = stringInterpolator.parse(headers[headerName], interpolationData);\n }\n const requestInit = {\n method,\n headers,\n };\n const urlObj = new URL(fullPath);\n const input = args.input;\n if (input) {\n switch (method) {\n case 'GET':\n case 'DELETE': {\n const newSearchParams = new URLSearchParams(input);\n newSearchParams.forEach((value, key) => {\n urlObj.searchParams.set(key, value);\n });\n break;\n }\n case 'POST':\n case 'PUT': {\n requestInit.body = JSON.stringify(input);\n break;\n }\n default:\n throw new Error(`Unknown method ${operationConfig.method}`);\n }\n }\n const request = new Request(urlObj.toString(), requestInit);\n const response = await fetchache(request, cache);\n const responseText = await response.text();\n let responseJson;\n try {\n responseJson = JSON.parse(responseText);\n }\n catch (e) {\n throw responseText;\n }\n if (responseJson.errors) {\n throw new AggregateError(responseJson.errors);\n }\n if (responseJson._errors) {\n throw new AggregateError(responseJson._errors);\n }\n if (responseJson.error) {\n throw responseJson.error;\n }\n return responseJson;\n },\n };\n })) || []);\n const schema = new GraphQLSchema({\n query: new GraphQLObjectType({\n name: 'Query',\n fields: Object.keys(queryFields).length > 0 ? queryFields : { ping: { type: GraphQLBoolean, resolve: () => true } },\n }),\n mutation: Object.keys(mutationFields).length > 0\n ? new GraphQLObjectType({\n name: 'Mutation',\n fields: mutationFields,\n })\n : undefined,\n });\n return {\n schema,\n contextVariables,\n };\n },\n};\nexport default handler;\n//# sourceMappingURL=index.js.map"],"names":["pascalCase","GraphQLList","GraphQLBoolean","GraphQLInt","GraphQLFloat","GraphQLString","GraphQLEnumType","GraphQLNonNull","GraphQLInputObjectType","GraphQLObjectType","GraphQLJSON","loadFromModuleExportExpression","readFileOrUrlWithCache","parseInterpolationStrings","stringInterpolator","Request","fetchache","GraphQLSchema"],"mappings":"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"}
\No newline at end of file