UNPKG

17.4 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.esm.js","sources":["../../../dist/plugins/java/kotlin/src/visitor.js","../../../dist/plugins/java/kotlin/src/index.js"],"sourcesContent":["import { BaseVisitor, buildScalars, indent, indentMultiline, transformComment, getBaseTypeNode, } from '@graphql-codegen/visitor-plugin-common';\nimport { isEnumType, isInputObjectType, isObjectType, isScalarType, Kind, } from 'graphql';\nimport { wrapTypeWithModifiers } from '@graphql-codegen/java-common';\nexport const KOTLIN_SCALARS = {\n ID: 'Any',\n String: 'String',\n Boolean: 'Boolean',\n Int: 'Int',\n Float: 'Float',\n};\nexport class KotlinResolversVisitor extends BaseVisitor {\n constructor(rawConfig, _schema, defaultPackageName) {\n super(rawConfig, {\n enumValues: rawConfig.enumValues || {},\n listType: rawConfig.listType || 'Iterable',\n withTypes: rawConfig.withTypes || false,\n package: rawConfig.package || defaultPackageName,\n scalars: buildScalars(_schema, rawConfig.scalars, KOTLIN_SCALARS),\n });\n this._schema = _schema;\n }\n getPackageName() {\n return `package ${this.config.package}\\n`;\n }\n getEnumValue(enumName, enumOption) {\n if (this.config.enumValues[enumName] &&\n typeof this.config.enumValues[enumName] === 'object' &&\n this.config.enumValues[enumName][enumOption]) {\n return this.config.enumValues[enumName][enumOption];\n }\n return enumOption;\n }\n EnumValueDefinition(node) {\n return (enumName) => {\n return indent(`${this.convertName(node, { useTypesPrefix: false, transformUnderscore: true })}(\"${this.getEnumValue(enumName, node.name.value)}\")`);\n };\n }\n EnumTypeDefinition(node) {\n const comment = transformComment(node.description, 0);\n const enumName = this.convertName(node.name);\n const enumValues = indentMultiline(node.values.map(enumValue => enumValue(node.name.value)).join(',\\n') + ';', 2);\n return `${comment}enum class ${enumName}(val label: String) {\n${enumValues}\n\n companion object {\n @JvmStatic\n fun valueOfLabel(label: String): ${enumName}? {\n return values().find { it.label == label }\n }\n }\n}`;\n }\n resolveInputFieldType(typeNode) {\n const innerType = getBaseTypeNode(typeNode);\n const schemaType = this._schema.getType(innerType.name.value);\n const isArray = typeNode.kind === Kind.LIST_TYPE ||\n (typeNode.kind === Kind.NON_NULL_TYPE && typeNode.type.kind === Kind.LIST_TYPE);\n let result = null;\n const nullable = typeNode.kind !== Kind.NON_NULL_TYPE;\n if (isScalarType(schemaType)) {\n if (this.config.scalars[schemaType.name]) {\n result = {\n baseType: this.scalars[schemaType.name],\n typeName: this.scalars[schemaType.name],\n isScalar: true,\n isArray,\n nullable: nullable,\n };\n }\n else {\n result = { isArray, baseType: 'Any', typeName: 'Any', isScalar: true, nullable: nullable };\n }\n }\n else if (isInputObjectType(schemaType)) {\n const convertedName = this.convertName(schemaType.name);\n const typeName = convertedName.endsWith('Input') ? convertedName : `${convertedName}Input`;\n result = {\n baseType: typeName,\n typeName: typeName,\n isScalar: false,\n isArray,\n nullable: nullable,\n };\n }\n else if (isEnumType(schemaType) || isObjectType(schemaType)) {\n result = {\n isArray,\n baseType: this.convertName(schemaType.name),\n typeName: this.convertName(schemaType.name),\n isScalar: true,\n nullable: nullable,\n };\n }\n else {\n result = { isArray, baseType: 'Any', typeName: 'Any', isScalar: true, nullable: nullable };\n }\n if (result) {\n result.typeName = wrapTypeWithModifiers(result.typeName, typeNode, this.config.listType);\n }\n return result;\n }\n buildInputTransfomer(name, inputValueArray) {\n const classMembers = inputValueArray\n .map(arg => {\n const typeToUse = this.resolveInputFieldType(arg.type);\n const initialValue = this.initialValue(typeToUse.typeName, arg.defaultValue);\n const initial = initialValue ? ` = ${initialValue}` : typeToUse.nullable ? ' = null' : '';\n return indent(`val ${arg.name.value}: ${typeToUse.typeName}${typeToUse.nullable ? '?' : ''}${initial}`, 2);\n })\n .join(',\\n');\n // language=kotlin\n return `data class ${name}(\n${classMembers}\n)`;\n }\n buildTypeTransfomer(name, typeValueArray) {\n const classMembers = typeValueArray\n .map(arg => {\n if (!arg.type) {\n return '';\n }\n const typeToUse = this.resolveInputFieldType(arg.type);\n return indent(`val ${arg.name.value}: ${typeToUse.typeName}${typeToUse.nullable ? '?' : ''}`, 2);\n })\n .join(',\\n');\n // language=kotlin\n return `data class ${name}(\n${classMembers}\n)`;\n }\n initialValue(typeName, defaultValue) {\n if (defaultValue) {\n if (defaultValue.kind === 'IntValue' ||\n defaultValue.kind === 'FloatValue' ||\n defaultValue.kind === 'BooleanValue') {\n return `${defaultValue.value}`;\n }\n else if (defaultValue.kind === 'StringValue') {\n return `\"\"\"${defaultValue.value}\"\"\".trimIndent()`;\n }\n else if (defaultValue.kind === 'EnumValue') {\n return `${typeName}.${defaultValue.value}`;\n }\n else if (defaultValue.kind === 'ListValue') {\n const list = defaultValue.values\n .map(value => {\n return this.initialValue(typeName, value);\n })\n .join(', ');\n return `listOf(${list})`;\n }\n // Variable\n // ObjectValue\n // ObjectField\n }\n return undefined;\n }\n FieldDefinition(node) {\n if (node.arguments.length > 0) {\n const inputTransformer = (typeName) => {\n const transformerName = `${this.convertName(typeName, { useTypesPrefix: true })}${this.convertName(node.name.value, { useTypesPrefix: false })}Args`;\n return this.buildInputTransfomer(transformerName, node.arguments);\n };\n return { node, inputTransformer };\n }\n return { node };\n }\n InputObjectTypeDefinition(node) {\n const convertedName = this.convertName(node);\n const name = convertedName.endsWith('Input') ? convertedName : `${convertedName}Input`;\n return this.buildInputTransfomer(name, node.fields);\n }\n ObjectTypeDefinition(node) {\n const name = this.convertName(node);\n const fields = node.fields;\n const fieldNodes = [];\n const argsTypes = [];\n fields.forEach(({ node, inputTransformer }) => {\n if (node) {\n fieldNodes.push(node);\n }\n if (inputTransformer) {\n argsTypes.push(inputTransformer);\n }\n });\n let types = argsTypes.map(f => f(node.name.value)).filter(r => r);\n if (this.config.withTypes) {\n types = types.concat([this.buildTypeTransfomer(name, fieldNodes)]);\n }\n return types.join('\\n');\n }\n}\n//# sourceMappingURL=visitor.js.map","import { parse, printSchema, visit } from 'graphql';\nimport { KotlinResolversVisitor } from './visitor';\nimport { buildPackageNameFromPath } from '@graphql-codegen/java-common';\nimport { dirname, normalize } from 'path';\nexport const plugin = async (schema, documents, config, { outputFile }) => {\n const relevantPath = dirname(normalize(outputFile));\n const defaultPackageName = buildPackageNameFromPath(relevantPath);\n const visitor = new KotlinResolversVisitor(config, schema, defaultPackageName);\n const printedSchema = printSchema(schema);\n const astNode = parse(printedSchema);\n const visitorResult = visit(astNode, { leave: visitor });\n const packageName = visitor.getPackageName();\n const blockContent = visitorResult.definitions.filter(d => typeof d === 'string').join('\\n\\n');\n return [packageName, blockContent].join('\\n');\n};\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":"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"}
\No newline at end of file