UNPKG

reason-apollo

Version:
85 lines (79 loc) 2.73 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 graphQLSubscriptionAST = GraphqlTag.default(Config.query); var apolloDataToVariant = function (apolloData) { var match = apolloData.loading; var match$1 = ReasonApolloUtils.getNonEmptyObj(apolloData.data); var match$2 = apolloData.error; 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 /* Error */Block.__(0, [{ message: "No data", graphQLErrors: null, networkError: null }]); } else { return /* Error */Block.__(0, [match$2]); } }; var convertJsInputToReason = function (apolloData) { var match = ReasonApolloUtils.getNonEmptyObj(apolloData.data); 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; } var match$1 = apolloData.error; return { result: apolloDataToVariant(apolloData), data: tmp, error: (match$1 == null) ? undefined : match$1, loading: apolloData.loading }; }; var JsSubscription = { }; var ReasonApolloSubscription$Make = function (Props) { var variables = Props.variables; var children = Props.children; return React.createElement(ReactApollo.Subscription, { subscription: graphQLSubscriptionAST, variables: variables, children: (function (apolloData) { return Curry._1(children, convertJsInputToReason(apolloData)); }) }); }; return { graphQLSubscriptionAST: graphQLSubscriptionAST, apolloDataToVariant: apolloDataToVariant, convertJsInputToReason: convertJsInputToReason, JsSubscription: JsSubscription, make: ReasonApolloSubscription$Make }; } export { Make , } /* react Not a pure module */