rescript-relay
Version:
Use Relay with ReScript.
45 lines (40 loc) • 2.41 kB
JavaScript
// Generated by ReScript, PLEASE EDIT WITH CARE
;
let React = require("react");
let ReactRelay = require("react-relay");
let RelayRuntime = require("relay-runtime");
let Primitive_option = require("@rescript/runtime/lib/js/Primitive_option.js");
let RescriptRelay_Internal = require("./RescriptRelay_Internal.bs.js");
function commitMutation(convertVariables, node, convertResponse, convertWrapRawResponse) {
return (environment, variables, optimisticUpdater, optimisticResponse, updater, onCompleted, onError, uploadables) => RelayRuntime.commitMutation(environment, {
mutation: node,
variables: RescriptRelay_Internal.internal_cleanObjectFromUndefinedRaw(convertVariables(variables)),
onCompleted: onCompleted !== undefined ? (res, err) => onCompleted(convertResponse(res), (err == null) ? undefined : Primitive_option.some(err)) : undefined,
onError: onError,
optimisticResponse: optimisticResponse !== undefined ? Primitive_option.some(convertWrapRawResponse(Primitive_option.valFromOption(optimisticResponse))) : undefined,
optimisticUpdater: optimisticUpdater,
updater: updater !== undefined ? (store, response) => updater(store, convertResponse(response)) : undefined,
uploadables: uploadables
});
}
function useMutation(convertVariables, node, convertResponse, convertWrapRawResponse) {
return () => {
let match = ReactRelay.useMutation(node);
let mutate = match[0];
return [
React.useMemo(() => ((variables, optimisticUpdater, optimisticResponse, updater, onCompleted, onError, uploadables) => mutate({
onError: onError,
onCompleted: onCompleted !== undefined ? (res, err) => onCompleted(convertResponse(res), (err == null) ? undefined : Primitive_option.some(err)) : undefined,
optimisticResponse: optimisticResponse !== undefined ? Primitive_option.some(convertWrapRawResponse(Primitive_option.valFromOption(optimisticResponse))) : undefined,
optimisticUpdater: optimisticUpdater,
updater: updater !== undefined ? (store, response) => updater(store, convertResponse(response)) : undefined,
variables: RescriptRelay_Internal.internal_cleanObjectFromUndefinedRaw(convertVariables(variables)),
uploadables: uploadables
})), [mutate]),
match[1]
];
};
}
exports.commitMutation = commitMutation;
exports.useMutation = useMutation;
/* react Not a pure module */