rescript-relay
Version:
Use Relay with ReScript.
76 lines (67 loc) • 2.21 kB
JavaScript
// Generated by ReScript, PLEASE EDIT WITH CARE
;
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 */