Add getStringFromErrorLike utility

Summary: I've found myself having to extract strings from things that *might* be Errors more than once. Centralising this so it's consistent and correct everywhere.

Reviewed By: danielbuechele

Differential Revision: D15536034

fbshipit-source-id: 8e054dd6122aff10f0aacdfaed65125df0aea99f
This commit is contained in:
John Knox
2019-05-30 03:58:22 -07:00
committed by Facebook Github Bot
parent 076b52059e
commit 13e942f59a
3 changed files with 19 additions and 1 deletions

View File

@@ -16,6 +16,7 @@ import {
Button,
ButtonGroup,
Input,
getStringFromErrorLike,
} from 'flipper';
import {Component} from 'react';
import type {
@@ -757,7 +758,7 @@ export default class DatabasesPlugin extends FlipperPlugin<
) : null}
</FlexRow>
</Toolbar>
{this.state.error && JSON.stringify(this.state.error)}
{this.state.error && getStringFromErrorLike(this.state.error)}
</FlexColumn>
);
}

16
src/utils/errors.js Normal file
View File

@@ -0,0 +1,16 @@
/**
* Copyright 2018-present Facebook.
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
* @format
*/
export function getStringFromErrorLike(e: any) {
if (typeof e == 'string') {
return e;
} else if (e instanceof Error) {
return e.message;
} else {
return JSON.stringify(e);
}
}

View File

@@ -6,3 +6,4 @@
*/
export {default as textContent} from './textContent.js';
export {getStringFromErrorLike} from './errors.js';