Skip to content

Commit 87f1e22

Browse files
rickhanloniifacebook-github-bot
authored andcommitted
Deprecate console.disableYellowBox in favor of LogBox.ignoreAllLogs()
Summary: We're replacing console.disableYellowBox (untyped, global hack, only warnings) with LogBox.ignoreAllLogs() (typed, local method, handles errors and warnings). Changelog: [General] [Removed] Replace console.disableYellowBox with LogBox.ignoreAllLogs. Reviewed By: TheSavior Differential Revision: D19813775 fbshipit-source-id: ffd33ddbca0276a27d23b5b6023a15aef761934e
1 parent 799bf56 commit 87f1e22

File tree

2 files changed

+31
-13
lines changed

2 files changed

+31
-13
lines changed

Libraries/LogBox/LogBox.js

+21-4
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ if (__DEV__) {
4646
LogBoxData.addIgnorePatterns(patterns);
4747
},
4848

49+
ignoreAllLogs: (value?: ?boolean): void => {
50+
LogBoxData.setDisabled(!!value);
51+
},
52+
4953
uninstall: (): void => {
5054
errorImpl = error;
5155
warnImpl = warn;
@@ -64,18 +68,26 @@ if (__DEV__) {
6468
registerWarning(...args);
6569
};
6670

67-
if ((console: any).disableLogBox === true) {
71+
if ((console: any).disableYellowBox === true) {
6872
LogBoxData.setDisabled(true);
73+
console.warn(
74+
'console.disableYellowBox has been deprecated and will be removed in a future release. Please use LogBox.ignoreAllLogs(value) instead.',
75+
);
6976
}
7077

71-
(Object.defineProperty: any)(console, 'disableLogBox', {
78+
(Object.defineProperty: any)(console, 'disableYellowBox', {
7279
configurable: true,
7380
get: () => LogBoxData.isDisabled(),
74-
set: value => LogBoxData.setDisabled(value),
81+
set: value => {
82+
LogBoxData.setDisabled(value);
83+
console.warn(
84+
'console.disableYellowBox has been deprecated and will be removed in a future release. Please use LogBox.ignoreAllLogs(value) instead.',
85+
);
86+
},
7587
});
7688

7789
if (Platform.isTesting) {
78-
(console: any).disableLogBox = true;
90+
LogBoxData.setDisabled(true);
7991
}
8092

8193
RCTLog.setWarningHandler((...args) => {
@@ -171,6 +183,10 @@ if (__DEV__) {
171183
// Do nothing.
172184
},
173185

186+
ignoreAllLogs: (value?: ?boolean): void => {
187+
// Do nothing.
188+
},
189+
174190
install: (): void => {
175191
// Do nothing.
176192
},
@@ -185,6 +201,7 @@ module.exports = (LogBox: {
185201
// TODO: deprecated, replace with ignoreLogs
186202
ignoreWarnings($ReadOnlyArray<IgnorePattern>): void,
187203
ignoreLogs($ReadOnlyArray<IgnorePattern>): void,
204+
ignoreAllLogs(?boolean): void,
188205
install(): void,
189206
uninstall(): void,
190207
...

Libraries/LogBox/__tests__/LogBox-test.js

+10-9
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ describe('LogBox', () => {
3636
jest.resetModules();
3737
console.error = jest.fn();
3838
console.warn = jest.fn();
39+
console.disableYellowBox = false;
3940
});
4041

4142
afterEach(() => {
@@ -44,27 +45,27 @@ describe('LogBox', () => {
4445
console.warn = warn;
4546
});
4647

47-
it('can set `disableLogBox` after installing', () => {
48-
expect(console.disableLogBox).toBe(undefined);
48+
it('can call `ignoreAllLogs` after installing', () => {
49+
expect(LogBoxData.isDisabled()).toBe(false);
4950

5051
LogBox.install();
5152

52-
expect(console.disableLogBox).toBe(false);
5353
expect(LogBoxData.isDisabled()).toBe(false);
5454

55-
console.disableLogBox = true;
55+
LogBox.ignoreAllLogs(true);
5656

57-
expect(console.disableLogBox).toBe(true);
5857
expect(LogBoxData.isDisabled()).toBe(true);
5958
});
6059

61-
it('can set `disableLogBox` before installing', () => {
62-
expect(console.disableLogBox).toBe(undefined);
60+
it('can call `ignoreAllLogs` before installing', () => {
61+
expect(LogBoxData.isDisabled()).toBe(false);
62+
63+
LogBox.ignoreAllLogs(true);
64+
65+
expect(LogBoxData.isDisabled()).toBe(true);
6366

64-
console.disableLogBox = true;
6567
LogBox.install();
6668

67-
expect(console.disableLogBox).toBe(true);
6869
expect(LogBoxData.isDisabled()).toBe(true);
6970
});
7071

0 commit comments

Comments
 (0)