Skip to content

Passing preloadedRequests to prepareData for queries with aliased parameterized fields #65

Open
@edorainos

Description

Related to #50

Passing preexisting query-payload pairs to prepareData() is messy when the query contains aliased parameterized fields, because Relay modifies the field names to prevent name collisions. To make a preexisting query-response pair for a query containing aliased parameterized fields, I need to use a Relay internal function generateRQLFieldAlias() to produce a valid response. This what I’m doing:

Example query:

const examsQueryNode = Relay.QL`
query ExamsRoute {
    exams {
        SPRING2017: examAverage(term: "SPRING2017")
    }
}
`;

Function to generate response for query-response pair:

import generateRQLFieldAlias from 'react-relay/lib/generateRQLFieldAlias';

function createResponse( examsData ) {
    const preloadedResponse = { exams: {} };
    preloadedResponse.exams[generateRQLFieldAlias('examAverage.SPRING2017.term(SPRING2017)')] = examsData.SPRING2017;
    return preloadedResponse;
}

Does it seem reasonable to submit a pull request to Relay to make a public interface to the generatedRQLFieldAlias() function for this purpose?

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions