UNPKG

rescript-relay

Version:
76 lines (67 loc) 2.21 kB
// Generated by ReScript, PLEASE EDIT WITH CARE 'use strict'; let React = require("react"); let ReactRelay = require("react-relay"); let Primitive_option = require("@rescript/runtime/lib/js/Primitive_option.js"); let Primitive_exceptions = require("@rescript/runtime/lib/js/Primitive_exceptions.js"); function RescriptRelayReact$Context$Provider(props) { let provider = ReactRelay.ReactRelayContext.Provider; return React.createElement(provider, { value: { environment: props.environment }, children: props.children }); } let Provider = { make: RescriptRelayReact$Context$Provider }; let Context = { Provider: Provider }; let EnvironmentNotFoundInContext = /* @__PURE__ */Primitive_exceptions.create("RescriptRelayReact.EnvironmentNotFoundInContext"); function useEnvironmentFromContext() { let context = React.useContext(ReactRelay.ReactRelayContext); if (context !== undefined) { return Primitive_option.valFromOption(context).environment; } throw { RE_EXN_ID: EnvironmentNotFoundInContext, Error: new Error() }; } function MakeLoadQuery(C) { let load = (environment, variables, fetchPolicy, fetchKey, networkCacheConfig) => ReactRelay.loadQuery(environment, C.query, C.convertVariables(variables), { fetchKey: fetchKey, fetchPolicy: fetchPolicy, networkCacheConfig: networkCacheConfig }); let queryRefToObservable = token => Primitive_option.fromNullable(token.source); let queryRefToPromise = token => new Promise((resolve, param) => { let o = queryRefToObservable(token); if (o !== undefined) { Primitive_option.valFromOption(o).subscribe({ complete: () => resolve({ TAG: "Ok", _0: undefined }) }); return; } else { return resolve({ TAG: "Error", _0: undefined }); } }); return { load: load, queryRefToObservable: queryRefToObservable, queryRefToPromise: queryRefToPromise }; } exports.Context = Context; exports.EnvironmentNotFoundInContext = EnvironmentNotFoundInContext; exports.useEnvironmentFromContext = useEnvironmentFromContext; exports.MakeLoadQuery = MakeLoadQuery; /* react Not a pure module */