Схема GraphQL/Relay должна содержать уникальные именованные типы, но содержать несколько именованных типов

Я использую relay и graphql-relay для построения определений моего соединения.

В одном файле, используемом для определения типа клиента, который я использую:

    const { connectionType: CustomerDataConnectionType } = 
                                connectionDefinitions ( { nodeType: DataType });

    const fields = {
        id: {
            type: new GraphQLNonNull(GraphQLID),
            resolve: (obj) => dbIdToNodeId(obj._id, "Customer")
        },
        name: {
            type: GraphQLString
        },
        description: {
            type: GraphQLString
        },
        history: {
            type: CustomerDataConnectionType,
            args: connectionArgs,
            resolve(source, args, context) {
                return DataModel.find({ objectId: source.id}).sort('timestamp').exec();
            }
        }
    };

    export const CustomerType = new GraphQLObjectType({
        name: 'Customer',
        description: 'Customer',
        interfaces: () => [NodeInterface],
        isTypeOf: (value) => value instanceof CustomerModel,
        fields: fields
    });

В другом файле, используемом для определения типа акции, который я использую:

const { connectionType: StockDataConnectionType } = 
                    connectionDefinitions ( { nodeType: DataType });

const fields = {
    id: {
        type: new GraphQLNonNull(GraphQLID),
        resolve: (obj) => dbIdToNodeId(obj._id, "Stock")
    },
    item: {
        type: GraphQLString
    },
    qrcode: {
        type: GraphQLString
    },
    history: {
        type: StockDataConnectionType,
        args: connectionArgs,
        resolve(source, args, context) {
            return DataModel.find({ objectId: source.id}).sort('timestamp').exec();
        }
    }
};

export const StockType = new GraphQLObjectType({
    name: 'Stock',
    description: 'Stock',
    interfaces: () => [NodeInterface],
    isTypeOf: (value) => value instanceof StockModel,
    fields: fields
});

При запуске я получаю следующую ошибку:

 Schema must contain unique named types but contains multiple types named "DataConnection"

Хорошо, я могу понять, что у меня есть центральное хранилище для типов, но я не могу найти способ повторно использовать одно и то же определение или изменить его имя для каждого компонента.

Помощь оценена, чтобы решить эту проблему. Если мне нужно создать третий файл, пожалуйста, объясните, как я могу экспортировать его в оба типа.

0 ответов

Другие вопросы по тегам