UNPKG

@wildcards/reason-apollo

Version:
116 lines (110 loc) 4.23 kB
// Generated by BUCKLESCRIPT, PLEASE EDIT WITH CARE import * as Block from "bs-platform/lib/es6/block.js"; import * as Curry from "bs-platform/lib/es6/curry.js"; import * as React from "react"; import * as Caml_option from "bs-platform/lib/es6/caml_option.js"; import * as GraphqlTag from "graphql-tag"; import * as ReactApollo from "react-apollo"; import * as ReasonApolloUtils from "../ReasonApolloUtils.bs.js"; function Make(Config) { var graphqlMutationAST = GraphqlTag.default(Config.query); var convertExecutionResultToReason = function (executionResult) { var match = ReasonApolloUtils.getNonEmptyObj(executionResult[/* data */1]); var match$1 = executionResult[/* errors */0]; if (match !== undefined) { return /* Data */Block.__(1, [Curry._1(Config.parse, Caml_option.valFromOption(match))]); } else if (match$1 == null) { return /* EmptyResponse */0; } else { return /* Errors */Block.__(0, [match$1]); } }; var apolloMutationFactory = function (jsMutation, variables, refetchQueries, optimisticResponse, param) { return Curry._1(jsMutation, /* record */[ /* variables */variables, /* refetchQueries */refetchQueries, /* optimisticResponse */optimisticResponse ]).then((function (response) { return Promise.resolve(convertExecutionResultToReason(response)); })); }; var apolloDataToReason = function (apolloData) { var match = apolloData[/* loading */0]; var match$1 = ReasonApolloUtils.getNonEmptyObj(apolloData[/* data */2]); var match$2 = apolloData[/* error */3]; if (match) { return /* Loading */0; } else if (match$1 !== undefined) { return /* Data */Block.__(1, [Curry._1(Config.parse, Caml_option.valFromOption(match$1))]); } else if (match$2 == null) { return /* NotCalled */1; } else { return /* Error */Block.__(0, [match$2]); } }; var convertJsInputToReason = function (apolloData) { var match = ReasonApolloUtils.getNonEmptyObj(apolloData[/* data */2]); var tmp; if (match !== undefined) { var exit = 0; var parsedData; try { parsedData = Curry._1(Config.parse, Caml_option.valFromOption(match)); exit = 1; } catch (exn){ tmp = undefined; } if (exit === 1) { tmp = Caml_option.some(parsedData); } } else { tmp = undefined; } return /* record */[ /* result */apolloDataToReason(apolloData), /* data */tmp, /* loading */apolloData[/* loading */0], /* error */Caml_option.nullable_to_opt(apolloData[/* error */3]), /* networkStatus */Caml_option.nullable_to_opt(apolloData[/* networkStatus */4]) ]; }; var JsMutation = { }; var ReasonApolloMutation$Make = function (Props) { var variables = Props.variables; var onError = Props.onError; var onCompleted = Props.onCompleted; var children = Props.children; var tmp = { mutation: graphqlMutationAST, children: (function (mutation, apolloData) { return Curry._2(children, (function (param, param$1, param$2, param$3) { return apolloMutationFactory(mutation, param, param$1, param$2, param$3); }), convertJsInputToReason(apolloData)); }) }; if (variables !== undefined) { tmp.variables = Caml_option.valFromOption(variables); } if (onCompleted !== undefined) { tmp.onCompleted = Caml_option.valFromOption(onCompleted); } if (onError !== undefined) { tmp.onError = Caml_option.valFromOption(onError); } return React.createElement(ReactApollo.Mutation, tmp); }; return { graphqlMutationAST: graphqlMutationAST, convertExecutionResultToReason: convertExecutionResultToReason, apolloMutationFactory: apolloMutationFactory, apolloDataToReason: apolloDataToReason, convertJsInputToReason: convertJsInputToReason, JsMutation: JsMutation, make: ReasonApolloMutation$Make }; } export { Make , } /* react Not a pure module */