graphql-codegen-typescript-operation-types
Version:
GraphQL codegen plugin that generates only the types used in the operations
52 lines • 3.81 kB
JavaScript
import { TsVisitor } from '@graphql-codegen/typescript';
export class SpecificTypesVisitor extends TsVisitor {
includedTypes;
constructor(schema, pluginConfig, includedTypes) {
super(schema, pluginConfig);
this.includedTypes = includedTypes;
}
/**
* We do not include the arguments types in this plugin as this should only be used mutations and queries which
* either hard codes inputs or has input types. This therefore adds unneeded complexity and complicates discovering
* input types that aren't actually used in the operations.
*/
buildArgumentsBlock() {
return '';
}
InputObjectTypeDefinition(node) {
const name = node.name;
if (this.includedTypes.has(name)) {
return super.InputObjectTypeDefinition(node);
}
return '';
}
ObjectTypeDefinition(node, key, parent) {
const name = node.name;
if (this.includedTypes.has(name)) {
return super.ObjectTypeDefinition(node, key, parent);
}
return '';
}
EnumTypeDefinition(node) {
const name = node.name;
if (this.includedTypes.has(name)) {
return super.EnumTypeDefinition(node);
}
return '';
}
InterfaceTypeDefinition(node, key, parent) {
const name = node.name;
if (this.includedTypes.has(name)) {
return super.InterfaceTypeDefinition(node, key, parent);
}
return '';
}
UnionTypeDefinition(node, key, parent) {
const name = node.name;
if (this.includedTypes.has(name)) {
return super.UnionTypeDefinition(node, key, parent);
}
return '';
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdmlzaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFXeEQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFNBQVM7SUFJOUI7SUFIbkIsWUFDRSxNQUFxQixFQUNyQixZQUFrRCxFQUNqQyxhQUFtQztRQUVwRCxLQUFLLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRlgsa0JBQWEsR0FBYixhQUFhLENBQXNCO0lBR3RELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsbUJBQW1CO1FBQ2pCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELHlCQUF5QixDQUFDLElBQW1DO1FBQzNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUF5QixDQUFDO1FBQzVDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEMsT0FBTyxLQUFLLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDOUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxvQkFBb0IsQ0FDbEIsSUFBOEIsRUFDOUIsR0FBb0IsRUFDcEIsTUFBZTtRQUVmLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUF5QixDQUFDO1FBQzVDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEMsT0FBTyxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUN0RDtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQTRCO1FBQzdDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUF5QixDQUFDO1FBRTVDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEMsT0FBTyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCx1QkFBdUIsQ0FDckIsSUFBaUMsRUFDakMsR0FBb0IsRUFDcEIsTUFBZTtRQUVmLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUF5QixDQUFDO1FBRTVDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEMsT0FBTyxLQUFLLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUN6RDtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELG1CQUFtQixDQUNqQixJQUE2QixFQUM3QixHQUFvQixFQUNwQixNQUFlO1FBRWYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQXlCLENBQUM7UUFDNUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQyxPQUFPLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0NBQ0YifQ==