What is @graphql-codegen/visitor-plugin-common?
The @graphql-codegen/visitor-plugin-common package provides a set of utilities and base classes for developing custom plugins for GraphQL Code Generator. These tools facilitate the creation of plugins by handling common tasks such as schema traversal and type mapping, allowing developers to focus on the specific logic of their plugins.
What are @graphql-codegen/visitor-plugin-common's main functionalities?
Schema Visitor
This feature allows developers to create custom visitors that can traverse a GraphQL schema. Developers can extend the SchemaVisitor class and override methods corresponding to different schema elements, such as types, fields, and directives, to implement custom behavior.
"use strict";
const { SchemaVisitor } = require('@graphql-codegen/visitor-plugin-common');
class MyCustomVisitor extends SchemaVisitor {
visitFieldDefinition(field) {
// Custom logic for visiting field definitions
}
}
module.exports = MyCustomVisitor;
Plugin Helpers
This feature provides utility functions that assist in common plugin development tasks, such as mapping GraphQL scalars to language-specific types. The `buildScalars` function, for example, takes a schema and a mapping configuration as input and outputs a mapping of GraphQL scalar names to the specified custom types.
"use strict";
const { buildScalars } = require('@graphql-codegen/visitor-plugin-common');
const config = {
scalars: {
DateTime: 'Date'
}
};
const builtScalars = buildScalars(schema, config.scalars);
console.log(builtScalars);
Other packages similar to @graphql-codegen/visitor-plugin-common
graphql-tools
Similar to @graphql-codegen/visitor-plugin-common, graphql-tools provides a set of utilities for working with GraphQL schemas, including schema stitching, mocking, and directives. While graphql-tools focuses more broadly on schema manipulation and execution, @graphql-codegen/visitor-plugin-common is specifically designed to aid in the development of code generation plugins.
graphql-code-generator
This is the core package of GraphQL Code Generator ecosystem, which @graphql-codegen/visitor-plugin-common is a part of. While graphql-code-generator orchestrates the code generation process and manages plugin execution, @graphql-codegen/visitor-plugin-common provides the foundational utilities for creating those plugins.