UNPKG

graphql-codegen-typescript-validation-schema

Version:

GraphQL Code Generator plugin to generate form validation schema from your GraphQL schema

34 lines (33 loc) 1.24 kB
import { Visitor } from './visitor.js'; export class BaseSchemaVisitor { schema; config; importTypes = []; enumDeclarations = []; constructor(schema, config) { this.schema = schema; this.config = config; } buildImports() { if (this.config.importFrom && this.importTypes.length > 0) { const namedImportPrefix = this.config.useTypeImports ? 'type ' : ''; const importCore = this.config.schemaNamespacedImportName ? `* as ${this.config.schemaNamespacedImportName}` : `${namedImportPrefix}{ ${this.importTypes.join(', ')} }`; return [ this.importValidationSchema(), `import ${importCore} from '${this.config.importFrom}'`, ]; } return [this.importValidationSchema()]; } createVisitor(scalarDirection) { return new Visitor(scalarDirection, this.schema, this.config); } buildTypeDefinitionArguments(node, visitor) { return visitor.buildArgumentsSchemaBlock(node, (typeName, field) => { this.importTypes.push(typeName); return this.buildInputFields(field.arguments ?? [], visitor, typeName); }); } }