UNPKG

@wildcards/reason-apollo

Version:
157 lines (151 loc) 5.74 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 Js_null_undefined from "bs-platform/lib/es6/js_null_undefined.js"; import * as ReasonApolloUtils from "../ReasonApolloUtils.bs.js"; function Make(Config) { var graphqlQueryAST = GraphqlTag.default(Config.query); var apolloDataToVariant = function (apolloData) { var match = apolloData[/* loading */0]; var match$1 = ReasonApolloUtils.getNonEmptyObj(apolloData[/* data */1]); var match$2 = apolloData[/* error */2]; 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, [/* record */[ /* message */"No data", /* graphQLErrors */null, /* networkError */null ]]); } else { return /* Error */Block.__(0, [match$2]); } }; var convertJsInputToReason = function (apolloData) { var match = ReasonApolloUtils.getNonEmptyObj(apolloData[/* data */1]); 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 */2]; return /* record */[ /* result */apolloDataToVariant(apolloData), /* data */tmp, /* error */(match$1 == null) ? undefined : match$1, /* loading */apolloData[/* loading */0], /* refetch */(function (variables) { return Curry._1(apolloData[/* refetch */3], Js_null_undefined.fromOption(variables)).then((function (data) { return Promise.resolve(apolloDataToVariant(data)); })); }), /* fetchMore */(function (variables, updateQuery, param) { return Curry._1(apolloData[/* fetchMore */6], /* record */[ /* variables */variables, /* updateQuery */updateQuery ]); }), /* networkStatus */Caml_option.nullable_to_opt(apolloData[/* networkStatus */4]), /* subscribeToMore */(function ($$document, variables, updateQuery, onError, param) { return Curry._1(apolloData[/* subscribeToMore */7], /* record */[ /* document */$$document, /* variables */variables, /* updateQuery */updateQuery, /* onError */onError ]); }) ]; }; var JsQuery = { }; var ReasonApolloQuery$Make = function (Props) { var variables = Props.variables; var pollInterval = Props.pollInterval; var notifyOnNetworkStatusChange = Props.notifyOnNetworkStatusChange; var fetchPolicy = Props.fetchPolicy; var errorPolicy = Props.errorPolicy; var ssr = Props.ssr; var displayName = Props.displayName; var skip = Props.skip; var onCompleted = Props.onCompleted; var onError = Props.onError; var partialRefetch = Props.partialRefetch; var delay = Props.delay; var context = Props.context; var children = Props.children; var tmp = { query: graphqlQueryAST, children: (function (apolloData) { return Curry._1(children, convertJsInputToReason(apolloData)); }) }; if (variables !== undefined) { tmp.variables = Caml_option.valFromOption(variables); } if (pollInterval !== undefined) { tmp.pollInterval = Caml_option.valFromOption(pollInterval); } if (notifyOnNetworkStatusChange !== undefined) { tmp.notifyOnNetworkStatusChange = Caml_option.valFromOption(notifyOnNetworkStatusChange); } if (fetchPolicy !== undefined) { tmp.fetchPolicy = Caml_option.valFromOption(fetchPolicy); } if (errorPolicy !== undefined) { tmp.errorPolicy = Caml_option.valFromOption(errorPolicy); } if (ssr !== undefined) { tmp.ssr = Caml_option.valFromOption(ssr); } if (displayName !== undefined) { tmp.displayName = Caml_option.valFromOption(displayName); } if (skip !== undefined) { tmp.skip = Caml_option.valFromOption(skip); } if (onCompleted !== undefined) { tmp.onCompleted = Caml_option.valFromOption(onCompleted); } if (onError !== undefined) { tmp.onError = Caml_option.valFromOption(onError); } if (partialRefetch !== undefined) { tmp.partialRefetch = Caml_option.valFromOption(partialRefetch); } if (delay !== undefined) { tmp.delay = Caml_option.valFromOption(delay); } if (context !== undefined) { tmp.context = Caml_option.valFromOption(context); } return React.createElement(ReactApollo.Query, tmp); }; return { graphqlQueryAST: graphqlQueryAST, apolloDataToVariant: apolloDataToVariant, convertJsInputToReason: convertJsInputToReason, JsQuery: JsQuery, make: ReasonApolloQuery$Make }; } export { Make , } /* react Not a pure module */