UNPKG

graphql

Version:

A Query Language and Runtime which can target any service.

1 lines 24 kB
{"version":3,"file":"mapSchemaConfig.js","sourceRoot":"","sources":["../../src/utilities/mapSchemaConfig.ts"],"names":[],"mappings":"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","sourcesContent":["import { inspect } from '../jsutils/inspect.ts';\nimport { invariant } from '../jsutils/invariant.ts';\nimport type { Maybe } from '../jsutils/Maybe.ts';\n\nimport type {\n GraphQLArgumentNormalizedConfig,\n GraphQLEnumTypeNormalizedConfig,\n GraphQLEnumValueConfig,\n GraphQLFieldNormalizedConfig,\n GraphQLFieldNormalizedConfigArgumentMap,\n GraphQLFieldNormalizedConfigMap,\n GraphQLInputFieldConfig,\n GraphQLInputObjectTypeNormalizedConfig,\n GraphQLInterfaceTypeNormalizedConfig,\n GraphQLNamedType,\n GraphQLObjectTypeNormalizedConfig,\n GraphQLScalarTypeNormalizedConfig,\n GraphQLType,\n GraphQLUnionTypeNormalizedConfig,\n} from '../type/definition.ts';\nimport {\n GraphQLEnumType,\n GraphQLInputObjectType,\n GraphQLInterfaceType,\n GraphQLList,\n GraphQLNonNull,\n GraphQLObjectType,\n GraphQLScalarType,\n GraphQLUnionType,\n isEnumType,\n isInputObjectType,\n isInterfaceType,\n isListType,\n isNonNullType,\n isObjectType,\n isScalarType,\n isUnionType,\n} from '../type/definition.ts';\nimport type { GraphQLDirectiveNormalizedConfig } from '../type/directives.ts';\nimport { GraphQLDirective, isSpecifiedDirective } from '../type/directives.ts';\nimport {\n introspectionTypes,\n isIntrospectionType,\n} from '../type/introspection.ts';\nimport {\n isSpecifiedScalarType,\n specifiedScalarTypes,\n} from '../type/scalars.ts';\nimport type { GraphQLSchemaNormalizedConfig } from '../type/schema.ts';\n\n/**\n * The set of GraphQL Schema Elements.\n *\n * @internal\n */\nexport const SchemaElementKind = {\n SCHEMA: 'SCHEMA' as const,\n SCALAR: 'SCALAR' as const,\n OBJECT: 'OBJECT' as const,\n FIELD: 'FIELD' as const,\n ARGUMENT: 'ARGUMENT' as const,\n INTERFACE: 'INTERFACE' as const,\n UNION: 'UNION' as const,\n ENUM: 'ENUM' as const,\n ENUM_VALUE: 'ENUM_VALUE' as const,\n INPUT_OBJECT: 'INPUT_OBJECT' as const,\n INPUT_FIELD: 'INPUT_FIELD' as const,\n DIRECTIVE: 'DIRECTIVE' as const,\n} as const;\n\n/** @internal */\n// eslint-disable-next-line @typescript-eslint/no-redeclare\ntype SchemaElementKind =\n (typeof SchemaElementKind)[keyof typeof SchemaElementKind];\n\n/** @internal */\nexport interface MappedSchemaContext {\n getNamedType: (typeName: string) => GraphQLNamedType;\n setNamedType: (type: GraphQLNamedType) => void;\n getNamedTypes: () => ReadonlyArray<GraphQLNamedType>;\n}\n\ntype GraphQLScalarTypeMappedConfig = GraphQLScalarTypeNormalizedConfig<\n any,\n any\n>;\n\ntype EnsureThunks<T, ThunkFields extends keyof T> = {\n [K in keyof T]: K extends ThunkFields ? () => T[K] : T[K];\n};\n\ntype GraphQLObjectTypeMappedConfig = EnsureThunks<\n GraphQLObjectTypeNormalizedConfig<any, any>,\n 'interfaces' | 'fields'\n>;\ntype GraphQLInterfaceTypeMappedConfig = EnsureThunks<\n GraphQLInterfaceTypeNormalizedConfig<any, any>,\n 'interfaces' | 'fields'\n>;\ntype GraphQLUnionTypeMappedConfig = EnsureThunks<\n GraphQLUnionTypeNormalizedConfig<any, any>,\n 'types'\n>;\ntype GraphQLEnumTypeMappedConfig = EnsureThunks<\n GraphQLEnumTypeNormalizedConfig,\n 'values'\n>;\ntype GraphQLInputObjectTypeMappedConfig = EnsureThunks<\n GraphQLInputObjectTypeNormalizedConfig,\n 'fields'\n>;\n\ntype ScalarTypeConfigMapper = (\n scalarConfig: GraphQLScalarTypeMappedConfig,\n) => GraphQLScalarTypeMappedConfig;\n\ntype ObjectTypeConfigMapper = (\n objectConfig: GraphQLObjectTypeMappedConfig,\n) => GraphQLObjectTypeMappedConfig;\n\ntype FieldConfigMapper = (\n fieldConfig: GraphQLFieldNormalizedConfig<any, any>,\n parentTypeName: string,\n) => GraphQLFieldNormalizedConfig<any, any>;\n\ntype ArgumentConfigMapper = (\n argConfig: GraphQLArgumentNormalizedConfig,\n fieldOrDirectiveName: string,\n parentTypeName?: string,\n) => GraphQLArgumentNormalizedConfig;\n\ntype InterfaceTypeConfigMapper = (\n interfaceConfig: GraphQLInterfaceTypeMappedConfig,\n) => GraphQLInterfaceTypeMappedConfig;\n\ntype UnionTypeConfigMapper = (\n unionConfig: GraphQLUnionTypeMappedConfig,\n) => GraphQLUnionTypeMappedConfig;\n\ntype EnumTypeConfigMapper = (\n enumConfig: GraphQLEnumTypeMappedConfig,\n) => GraphQLEnumTypeMappedConfig;\n\ntype EnumValueConfigMapper = (\n enumValueConfig: GraphQLEnumValueConfig,\n valueName: string,\n enumName: string,\n) => GraphQLEnumValueConfig;\n\ntype InputObjectTypeConfigMapper = (\n inputObjectConfig: GraphQLInputObjectTypeMappedConfig,\n) => GraphQLInputObjectTypeMappedConfig;\n\ntype InputFieldConfigMapper = (\n inputFieldConfig: GraphQLInputFieldConfig,\n inputFieldName: string,\n inputObjectTypeName: string,\n) => GraphQLInputFieldConfig;\n\ntype DirectiveConfigMapper = (\n directiveConfig: GraphQLDirectiveNormalizedConfig,\n) => GraphQLDirectiveNormalizedConfig;\n\ntype SchemaConfigMapper = (\n originalSchemaConfig: GraphQLSchemaNormalizedConfig,\n) => GraphQLSchemaNormalizedConfig;\n\n/** @internal */\nexport interface ConfigMapperMap {\n [SchemaElementKind.SCALAR]?: ScalarTypeConfigMapper;\n [SchemaElementKind.OBJECT]?: ObjectTypeConfigMapper;\n [SchemaElementKind.FIELD]?: FieldConfigMapper;\n [SchemaElementKind.ARGUMENT]?: ArgumentConfigMapper;\n [SchemaElementKind.INTERFACE]?: InterfaceTypeConfigMapper;\n [SchemaElementKind.UNION]?: UnionTypeConfigMapper;\n [SchemaElementKind.ENUM]?: EnumTypeConfigMapper;\n [SchemaElementKind.ENUM_VALUE]?: EnumValueConfigMapper;\n [SchemaElementKind.INPUT_OBJECT]?: InputObjectTypeConfigMapper;\n [SchemaElementKind.INPUT_FIELD]?: InputFieldConfigMapper;\n [SchemaElementKind.DIRECTIVE]?: DirectiveConfigMapper;\n [SchemaElementKind.SCHEMA]?: SchemaConfigMapper;\n}\n\n/** @internal */\nexport function mapSchemaConfig(\n schemaConfig: GraphQLSchemaNormalizedConfig,\n configMapperMapFn: (context: MappedSchemaContext) => ConfigMapperMap,\n): GraphQLSchemaNormalizedConfig {\n const configMapperMap = configMapperMapFn({\n getNamedType,\n setNamedType,\n getNamedTypes,\n });\n\n const mappedTypeMap = new Map<string, GraphQLNamedType>();\n for (const type of schemaConfig.types) {\n const typeName = type.name;\n const mappedNamedType = mapNamedType(type);\n if (mappedNamedType) {\n mappedTypeMap.set(typeName, mappedNamedType);\n }\n }\n\n const mappedDirectives: Array<GraphQLDirective> = [];\n for (const directive of schemaConfig.directives) {\n if (isSpecifiedDirective(directive)) {\n // Builtin directives cannot be mapped.\n mappedDirectives.push(directive);\n continue;\n }\n\n const mappedDirectiveConfig = mapDirective(directive.toConfig());\n if (mappedDirectiveConfig) {\n mappedDirectives.push(new GraphQLDirective(mappedDirectiveConfig));\n }\n }\n\n const mappedSchemaConfig = {\n ...schemaConfig,\n query:\n schemaConfig.query &&\n (getNamedType(schemaConfig.query.name) as GraphQLObjectType),\n mutation:\n schemaConfig.mutation &&\n (getNamedType(schemaConfig.mutation.name) as GraphQLObjectType),\n subscription:\n schemaConfig.subscription &&\n (getNamedType(schemaConfig.subscription.name) as GraphQLObjectType),\n types: Array.from(mappedTypeMap.values()),\n directives: mappedDirectives,\n };\n\n const schemaMapper = configMapperMap[SchemaElementKind.SCHEMA];\n\n return schemaMapper == null\n ? mappedSchemaConfig\n : schemaMapper(mappedSchemaConfig);\n\n function getType<T extends GraphQLType>(type: T): T {\n if (isListType(type)) {\n return new GraphQLList(getType(type.ofType)) as T;\n }\n if (isNonNullType(type)) {\n return new GraphQLNonNull(getType(type.ofType)) as T;\n }\n\n return getNamedType(type.name) as T;\n }\n\n function getNamedType(typeName: string): GraphQLNamedType {\n const type = stdTypeMap.get(typeName) ?? mappedTypeMap.get(typeName);\n invariant(type !== undefined, `Unknown type: \"${typeName}\".`);\n return type;\n }\n\n function setNamedType(type: GraphQLNamedType): void {\n mappedTypeMap.set(type.name, type);\n }\n\n function getNamedTypes(): ReadonlyArray<GraphQLNamedType> {\n return Array.from(mappedTypeMap.values());\n }\n\n function mapNamedType(type: GraphQLNamedType): Maybe<GraphQLNamedType> {\n if (isIntrospectionType(type) || isSpecifiedScalarType(type)) {\n // Builtin types cannot be mapped.\n return type;\n }\n\n if (isScalarType(type)) {\n return mapScalarType(type);\n }\n if (isObjectType(type)) {\n return mapObjectType(type);\n }\n if (isInterfaceType(type)) {\n return mapInterfaceType(type);\n }\n if (isUnionType(type)) {\n return mapUnionType(type);\n }\n if (isEnumType(type)) {\n return mapEnumType(type);\n }\n if (isInputObjectType(type)) {\n return mapInputObjectType(type);\n /* node:coverage ignore next 4 */\n }\n // Not reachable, all possible type definition nodes have been considered.\n invariant(false, 'Unexpected type: ' + inspect(type));\n }\n\n function mapScalarType(type: GraphQLScalarType): GraphQLScalarType {\n let mappedConfig: Maybe<GraphQLScalarTypeMappedConfig> = type.toConfig();\n const mapper = configMapperMap[SchemaElementKind.SCALAR];\n mappedConfig = mapper == null ? mappedConfig : mapper(mappedConfig);\n return new GraphQLScalarType(mappedConfig);\n }\n\n function mapObjectType(type: GraphQLObjectType): GraphQLObjectType {\n const config = type.toConfig();\n let mappedConfig: Maybe<GraphQLObjectTypeMappedConfig> = {\n ...config,\n interfaces: () =>\n config.interfaces.map(\n (iface) => getNamedType(iface.name) as GraphQLInterfaceType,\n ),\n fields: () => mapFields(config.fields, type.name),\n };\n const mapper = configMapperMap[SchemaElementKind.OBJECT];\n mappedConfig = mapper == null ? mappedConfig : mapper(mappedConfig);\n return new GraphQLObjectType(mappedConfig);\n }\n\n function mapFields(\n fieldMap: GraphQLFieldNormalizedConfigMap<any, any>,\n parentTypeName: string,\n ): GraphQLFieldNormalizedConfigMap<any, any> {\n const newFieldMap = Object.create(null);\n for (const [fieldName, field] of Object.entries(fieldMap)) {\n let mappedField = {\n ...field,\n type: getType(field.type),\n args: mapArgs(field.args, parentTypeName, fieldName),\n };\n const mapper = configMapperMap[SchemaElementKind.FIELD];\n if (mapper) {\n mappedField = mapper(mappedField, parentTypeName);\n }\n newFieldMap[fieldName] = mappedField;\n }\n return newFieldMap;\n }\n\n function mapArgs(\n argumentMap: GraphQLFieldNormalizedConfigArgumentMap,\n fieldOrDirectiveName: string,\n parentTypeName?: string,\n ): GraphQLFieldNormalizedConfigArgumentMap {\n const newArgumentMap = Object.create(null);\n\n for (const [argName, arg] of Object.entries(argumentMap)) {\n let mappedArg = {\n ...arg,\n type: getType(arg.type),\n };\n const mapper = configMapperMap[SchemaElementKind.ARGUMENT];\n if (mapper) {\n mappedArg = mapper(mappedArg, fieldOrDirectiveName, parentTypeName);\n }\n newArgumentMap[argName] = mappedArg;\n }\n\n return newArgumentMap;\n }\n\n function mapInterfaceType(type: GraphQLInterfaceType): GraphQLInterfaceType {\n const config = type.toConfig();\n let mappedConfig: Maybe<GraphQLInterfaceTypeMappedConfig> = {\n ...config,\n interfaces: () =>\n config.interfaces.map(\n (iface) => getNamedType(iface.name) as GraphQLInterfaceType,\n ),\n fields: () => mapFields(config.fields, type.name),\n };\n const mapper = configMapperMap[SchemaElementKind.INTERFACE];\n mappedConfig = mapper == null ? mappedConfig : mapper(mappedConfig);\n return new GraphQLInterfaceType(mappedConfig);\n }\n\n function mapUnionType(type: GraphQLUnionType): GraphQLUnionType {\n const config = type.toConfig();\n let mappedConfig: Maybe<GraphQLUnionTypeMappedConfig> = {\n ...config,\n types: () =>\n config.types.map(\n (memberType) => getNamedType(memberType.name) as GraphQLObjectType,\n ),\n };\n const mapper = configMapperMap[SchemaElementKind.UNION];\n mappedConfig = mapper == null ? mappedConfig : mapper(mappedConfig);\n return new GraphQLUnionType(mappedConfig);\n }\n\n function mapEnumType(type: GraphQLEnumType): GraphQLEnumType {\n const config = type.toConfig();\n let mappedConfig: Maybe<GraphQLEnumTypeMappedConfig> = {\n ...config,\n values: () => {\n const newEnumValues = Object.create(null);\n for (const [valueName, value] of Object.entries(config.values)) {\n const mappedValue = mapEnumValue(value, valueName, type.name);\n newEnumValues[valueName] = mappedValue;\n }\n return newEnumValues;\n },\n };\n const mapper = configMapperMap[SchemaElementKind.ENUM];\n mappedConfig = mapper == null ? mappedConfig : mapper(mappedConfig);\n return new GraphQLEnumType(mappedConfig);\n }\n\n function mapEnumValue(\n valueConfig: GraphQLEnumValueConfig,\n valueName: string,\n enumName: string,\n ): GraphQLEnumValueConfig {\n const mappedConfig = { ...valueConfig };\n const mapper = configMapperMap[SchemaElementKind.ENUM_VALUE];\n return mapper == null\n ? mappedConfig\n : mapper(mappedConfig, valueName, enumName);\n }\n\n function mapInputObjectType(\n type: GraphQLInputObjectType,\n ): GraphQLInputObjectType {\n const config = type.toConfig();\n let mappedConfig: Maybe<GraphQLInputObjectTypeMappedConfig> = {\n ...config,\n fields: () => {\n const newInputFieldMap = Object.create(null);\n for (const [fieldName, field] of Object.entries(config.fields)) {\n const mappedField = mapInputField(field, fieldName, type.name);\n newInputFieldMap[fieldName] = mappedField;\n }\n return newInputFieldMap;\n },\n };\n const mapper = configMapperMap[SchemaElementKind.INPUT_OBJECT];\n mappedConfig = mapper == null ? mappedConfig : mapper(mappedConfig);\n return new GraphQLInputObjectType(mappedConfig);\n }\n\n function mapInputField(\n inputFieldConfig: GraphQLInputFieldConfig,\n inputFieldName: string,\n inputObjectTypeName: string,\n ): GraphQLInputFieldConfig {\n const mappedConfig = {\n ...inputFieldConfig,\n type: getType(inputFieldConfig.type),\n };\n const mapper = configMapperMap[SchemaElementKind.INPUT_FIELD];\n return mapper == null\n ? mappedConfig\n : mapper(mappedConfig, inputFieldName, inputObjectTypeName);\n }\n\n function mapDirective(\n config: GraphQLDirectiveNormalizedConfig,\n ): Maybe<GraphQLDirectiveNormalizedConfig> {\n const mappedConfig = {\n ...config,\n args: mapArgs(config.args, config.name, undefined),\n };\n const mapper = configMapperMap[SchemaElementKind.DIRECTIVE];\n return mapper == null ? mappedConfig : mapper(mappedConfig);\n }\n}\n\nconst stdTypeMap = new Map(\n [...specifiedScalarTypes, ...introspectionTypes].map((type) => [\n type.name,\n type,\n ]),\n);\n"]}