Files
react-native/Libraries/Core/setUpSegmentFetcher.js
T
George Zahariev 8553e1acc4 Exact-by-default codemod for react-native-github
Summary:
We are rolling out exact-by-default syntax to xplat/js.

I had to manually move around some comments to preserve proper placement.

Changelog: [Internal]

Reviewed By: jbrown215

Differential Revision: D18633611

fbshipit-source-id: 48f7468dcc55b1d00985419d035a61c6820b3abe
2019-11-21 09:42:57 -08:00

92 lines
1.9 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.
*
* @flow strict-local
* @format
*/
'use strict';
export type FetchSegmentFunction = typeof __fetchSegment;
export type GetSegmentFunction = typeof __getSegment;
/**
* Set up SegmentFetcher.
* You can use this module directly, or just require InitializeCore.
*/
function __fetchSegment(
segmentId: number,
options: {|
+otaBuildNumber: ?string,
+requestedModuleName?: ?string,
|},
callback: (?Error) => void,
) {
const SegmentFetcher = require('./SegmentFetcher/NativeSegmentFetcher')
.default;
SegmentFetcher.fetchSegment(
segmentId,
options,
(
errorObject: ?{
message: string,
code: string,
...
},
) => {
if (errorObject) {
const error = new Error(errorObject.message);
(error: any).code = errorObject.code; // flowlint-line unclear-type: off
callback(error);
}
callback(null);
},
);
}
global.__fetchSegment = __fetchSegment;
function __getSegment(
segmentId: number,
options: {|
+otaBuildNumber: ?string,
+requestedModuleName?: ?string,
|},
callback: (?Error, ?string) => void,
) {
const SegmentFetcher = require('./SegmentFetcher/NativeSegmentFetcher')
.default;
if (!SegmentFetcher.getSegment) {
throw new Error('SegmentFetcher.getSegment must be defined');
}
SegmentFetcher.getSegment(
segmentId,
options,
(
errorObject: ?{
message: string,
code: string,
...
},
path: ?string,
) => {
if (errorObject) {
const error = new Error(errorObject.message);
(error: any).code = errorObject.code; // flowlint-line unclear-type: off
callback(error);
}
callback(null, path);
},
);
}
global.__getSegment = __getSegment;