rescript-relay
Version:
Use Relay with ReScript.
124 lines (111 loc) • 5.89 kB
JavaScript
// Generated by ReScript, PLEASE EDIT WITH CARE
;
var React = require("react");
var Caml_option = require("rescript/lib/js/caml_option.js");
var ReactRelay = require("react-relay");
var RescriptRelay_Internal = require("./RescriptRelay_Internal.bs.js");
var Experimental = require("relay-runtime/experimental");
var ResolverFragments = require("relay-runtime/lib/store/ResolverFragments");
function useFragment(node, convertFragment, fRef) {
var __x = ReactRelay.useFragment(node, fRef);
return RescriptRelay_Internal.internal_useConvertedValue(convertFragment, __x);
}
function useFragmentOpt(fRef, node, convertFragment) {
var data = ReactRelay.useFragment(node, fRef);
return React.useMemo((function () {
if (!(data == null)) {
return Caml_option.some(convertFragment(data));
}
}), [(data == null) ? undefined : Caml_option.some(data)]);
}
function readInlineData(node, convertFragment, fRef) {
return convertFragment(ReactRelay.readInlineData(node, fRef));
}
function read(node, convertFragment, fRef) {
return convertFragment(ResolverFragments.readFragment(node, fRef));
}
function internal_makeRefetchableFnOpts(fetchPolicy, onComplete, param) {
return {
fetchPolicy: fetchPolicy,
onComplete: RescriptRelay_Internal.internal_nullableToOptionalExnHandler(onComplete)
};
}
function usePaginationFragment(node, fRef, convertFragment, convertRefetchVariables) {
var p = ReactRelay.usePaginationFragment(node, fRef);
var data = RescriptRelay_Internal.internal_useConvertedValue(convertFragment, p.data);
return {
data: data,
loadNext: React.useMemo((function () {
return function (count, onComplete) {
return p.loadNext(count, {
onComplete: RescriptRelay_Internal.internal_nullableToOptionalExnHandler(onComplete)
});
};
}), [p.loadNext]),
loadPrevious: React.useMemo((function () {
return function (count, onComplete) {
return p.loadPrevious(count, {
onComplete: RescriptRelay_Internal.internal_nullableToOptionalExnHandler(onComplete)
});
};
}), [p.loadPrevious]),
hasNext: p.hasNext,
hasPrevious: p.hasPrevious,
isLoadingNext: p.isLoadingNext,
isLoadingPrevious: p.isLoadingPrevious,
refetch: React.useMemo((function () {
return function (variables, fetchPolicy, onComplete) {
return p.refetch(RescriptRelay_Internal.internal_cleanObjectFromUndefinedRaw(convertRefetchVariables(variables)), internal_makeRefetchableFnOpts(fetchPolicy, onComplete, undefined));
};
}), [p.refetch])
};
}
function usePrefetchableForwardPagination(node, fRef, convertEdges, convertFragment, convertRefetchVariables, bufferSize, initialSize, prefetchingLoadMoreOptions, minimumFetchSize) {
var p = ReactRelay.usePrefetchableForwardPaginationFragment_EXPERIMENTAL(node, fRef, bufferSize, initialSize !== undefined ? Caml_option.valFromOption(initialSize) : undefined, prefetchingLoadMoreOptions !== undefined ? Caml_option.valFromOption(prefetchingLoadMoreOptions) : undefined, minimumFetchSize !== undefined ? Caml_option.valFromOption(minimumFetchSize) : undefined);
var data = RescriptRelay_Internal.internal_useConvertedValue(convertFragment, p.data);
var edges = RescriptRelay_Internal.internal_useConvertedValue(convertEdges, p.edges);
return {
data: data,
edges: edges,
loadNext: React.useMemo((function () {
return function (count, onComplete) {
return p.loadNext(count, {
onComplete: RescriptRelay_Internal.internal_nullableToOptionalExnHandler(onComplete)
});
};
}), [p.loadNext]),
hasNext: p.hasNext,
isLoadingNext: p.isLoadingNext,
refetch: React.useMemo((function () {
return function (variables, fetchPolicy, onComplete) {
return p.refetch(RescriptRelay_Internal.internal_cleanObjectFromUndefinedRaw(convertRefetchVariables(variables)), internal_makeRefetchableFnOpts(fetchPolicy, onComplete, undefined));
};
}), [p.refetch])
};
}
function useRefetchableFragment(node, convertFragment, convertRefetchVariables, fRef) {
var match = ReactRelay.useRefetchableFragment(node, fRef);
var refetchFn = match[1];
var data = RescriptRelay_Internal.internal_useConvertedValue(convertFragment, match[0]);
return [
data,
React.useMemo((function () {
return function (variables, fetchPolicy, onComplete) {
return refetchFn(RescriptRelay_Internal.internal_removeUndefinedAndConvertNullsRaw(convertRefetchVariables(variables)), internal_makeRefetchableFnOpts(fetchPolicy, onComplete, undefined));
};
}), [refetchFn])
];
}
async function waitForFragmentData(environment, node, convertFragment, fRef) {
var fragmentData = await Experimental.waitForFragmentData(environment, node, fRef);
return convertFragment(fragmentData);
}
exports.useFragment = useFragment;
exports.useFragmentOpt = useFragmentOpt;
exports.readInlineData = readInlineData;
exports.read = read;
exports.usePaginationFragment = usePaginationFragment;
exports.usePrefetchableForwardPagination = usePrefetchableForwardPagination;
exports.useRefetchableFragment = useRefetchableFragment;
exports.waitForFragmentData = waitForFragmentData;
/* react Not a pure module */