16 lines
571 B
JavaScript
16 lines
571 B
JavaScript
import { getNamedType, isObjectType } from 'graphql';
|
|
export function forEachField(schema, fn) {
|
|
const typeMap = schema.getTypeMap();
|
|
for (const typeName in typeMap) {
|
|
const type = typeMap[typeName];
|
|
// TODO: maybe have an option to include these?
|
|
if (!getNamedType(type).name.startsWith('__') && isObjectType(type)) {
|
|
const fields = type.getFields();
|
|
for (const fieldName in fields) {
|
|
const field = fields[fieldName];
|
|
fn(field, typeName, fieldName);
|
|
}
|
|
}
|
|
}
|
|
}
|