46 lines
1.3 KiB
JavaScript
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
|
|
}; |