UNPKG

@acaldas/graphql-codegen-typescript-validation-schema

Version:

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

30 lines (29 loc) 1.01 kB
import { Visitor } from './visitor'; 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) { return [ this.importValidationSchema(), `import ${this.config.useTypeImports ? 'type ' : ''}{ ${this.importTypes.join(', ')} } from '${this.config.importFrom}'`, ]; } return [this.importValidationSchema()]; } createVisitor(scalarDirection) { return new Visitor(scalarDirection, this.schema, this.config); } buildObjectTypeDefinitionArguments(node, visitor) { return visitor.buildArgumentsSchemaBlock(node, (typeName, field) => { this.importTypes.push(typeName); return this.buildInputFields(field.arguments ?? [], visitor, typeName); }); } }