Skip to content

Commit 98e5e2b

Browse files
skevyfacebook-github-bot-4
authored andcommitted
Remove knowledge of fbjs from the packager
Summary: As spicyj mentioned in commit 6a838a4, the ideal state of affairs when it comes to consuming `react` and `fbjs` from NPM is for the packager not to have knowledge of either package. This PR addresses the `fbjs` part of that, and relies on facebook/fbjs#95. **DO NOT MERGE** until #95 (or a variation) is in `fbjs` and is released to npm. This PR does several things: 1. Adds stub modules within RN that expose `fbjs` modules to be required using Haste. After discussing a few ideas with spicyj, this seemed like a good option to keep internal FB devs happy (and not make them change the way they write JS), but allow for removing packager complexity and fit in better with the NPM ecosystem. Note -- it skips stubbing `fetch`, `ExecutionEnvironment`, and `ErrorUtils`, due to the fact that these need to have Native specific implementations, and there's no reason for those implementations to exist in `fbjs`. 2. Removes the modules that were previously being used in lieu of their `fbjs` eq Closes #5084 Reviewed By: bestander Differential Revision: D2803288 Pulled By: davidaurelio fb-gh-sync-id: fd257958ee2f8696eebe9048c1e7628c168bf4a2 shipit-source-id: fd257958ee2f8696eebe9048c1e7628c168bf4a2
1 parent bf21002 commit 98e5e2b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+848
-892
lines changed

.flowconfig

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,8 @@
1414

1515
# Ignore react and fbjs where there are overlaps, but don't ignore
1616
# anything that react-native relies on
17-
.*/node_modules/fbjs/lib/Map.js
18-
.*/node_modules/fbjs/lib/Promise.js
1917
.*/node_modules/fbjs/lib/fetch.js
2018
.*/node_modules/fbjs/lib/ExecutionEnvironment.js
21-
.*/node_modules/fbjs/lib/isEmpty.js
22-
.*/node_modules/fbjs/lib/crc32.js
2319
.*/node_modules/fbjs/lib/ErrorUtils.js
2420

2521
# Flow has a built-in definition for the 'react' module which we prefer to use

Libraries/Interaction/__tests__/InteractionManager-test.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
jest
88
.autoMockOff()
9+
.mock('ErrorUtils')
910
.mock('BatchedBridge');
1011

1112
function expectToBeCalledOnce(fn) {

Libraries/Promise.js

Lines changed: 8 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,18 @@
11
/**
2+
* Copyright (c) 2016-present, Facebook, Inc.
3+
* All rights reserved.
24
*
3-
* Copyright 2013-2014 Facebook, Inc.
4-
*
5-
* Licensed under the Apache License, Version 2.0 (the "License");
6-
* you may not use this file except in compliance with the License.
7-
* You may obtain a copy of the License at
8-
*
9-
* http://www.apache.org/licenses/LICENSE-2.0
10-
*
11-
* Unless required by applicable law or agreed to in writing, software
12-
* distributed under the License is distributed on an "AS IS" BASIS,
13-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14-
* See the License for the specific language governing permissions and
15-
* limitations under the License.
5+
* This source code is licensed under the BSD-style license found in the
6+
* LICENSE file in the root directory of this source tree. An additional grant
7+
* of patent rights can be found in the PATENTS file in the same directory.
168
*
179
* @providesModule Promise
18-
*
19-
* This module wraps and augments the minimally ES6-compliant Promise
20-
* implementation provided by the promise npm package.
10+
* @flow
2111
*/
22-
2312
'use strict';
2413

25-
global.setImmediate = require('setImmediate');
26-
var Promise = require('promise/setimmediate/es6-extensions');
27-
require('promise/setimmediate/done');
14+
const Promise = require('fbjs/lib/Promise'); // this will require Promise.native.js
15+
2816
if (__DEV__) {
2917
require('promise/setimmediate/rejection-tracking').enable({
3018
allRejections: true,
@@ -46,12 +34,4 @@ if (__DEV__) {
4634
});
4735
}
4836

49-
/**
50-
* Handle either fulfillment or rejection with the same callback.
51-
*/
52-
Promise.prototype.finally = function(onSettled) {
53-
return this.then(onSettled, onSettled);
54-
};
55-
56-
5737
module.exports = Promise;

0 commit comments

Comments
 (0)