Files
30-seconds-of-code/node_modules/relay-runtime/lib/ConvertToExecuteFunction.js
2019-08-20 15:52:05 +02:00

46 lines
1.3 KiB
JavaScript

/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* strict-local
* @format
*/
'use strict';
/**
* Converts a FetchFunction into an ExecuteFunction for use by RelayNetwork.
*/
function convertFetch(fn) {
return function fetch(request, variables, cacheConfig, uploadables) {
var result = fn(request, variables, cacheConfig, uploadables); // Note: We allow FetchFunction to directly return Error to indicate
// a failure to fetch. To avoid handling this special case throughout the
// Relay codebase, it is explicitly handled here.
if (result instanceof Error) {
return require("./RelayObservable").create(function (sink) {
return sink.error(result);
});
}
return require("./RelayObservable").from(result);
};
}
/**
* Converts a SubscribeFunction into an ExecuteFunction for use by RelayNetwork.
*/
function convertSubscribe(fn) {
return function subscribe(operation, variables, cacheConfig) {
return require("./RelayObservable").fromLegacy(function (observer) {
return fn(operation, variables, cacheConfig, observer);
});
};
}
module.exports = {
convertFetch: convertFetch,
convertSubscribe: convertSubscribe
};