rescript-relay
Version:
Use Relay with ReScript.
44 lines (39 loc) • 2.22 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");
function commitMutation(convertVariables, node, convertResponse, convertWrapRawResponse) {
return (environment, variables, optimisticUpdater, optimisticResponse, updater, onCompleted, onError, uploadables) => RelayRuntime.commitMutation(environment, {
mutation: node,
variables: 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: convertVariables(variables),
uploadables: uploadables
})), [mutate]),
match[1]
];
};
}
exports.commitMutation = commitMutation;
exports.useMutation = useMutation;
/* react Not a pure module */