@graphprotocol/client-auto-type-merging
Version:
31 lines (30 loc) • 1.15 kB
JavaScript
import TypeMergingTransform from '@graphql-mesh/transform-type-merging';
export default class AutoTypeMergingTransform {
constructor(options) {
this.options = options;
}
transformSchema(schema, subschemaConfig) {
const queryType = schema.getQueryType();
const queryFields = queryType?.getFields();
const typeMergingQueryFieldConfig = [];
if (queryFields != null) {
for (const queryFieldName in queryFields) {
const queryField = queryFields[queryFieldName];
if (queryField.args.some((arg) => arg.name === 'where')) {
typeMergingQueryFieldConfig.push({
queryFieldName,
keyField: 'id',
keyArg: 'where.id_in',
});
}
}
}
const typeMergingTransform = new TypeMergingTransform({
...this.options,
config: {
queryFields: typeMergingQueryFieldConfig,
},
});
return typeMergingTransform.transformSchema(schema, subschemaConfig);
}
}