From 13e942f59af7fe6587dd4b2648423dbb1833df07 Mon Sep 17 00:00:00 2001 From: John Knox Date: Thu, 30 May 2019 03:58:22 -0700 Subject: [PATCH] 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 --- src/plugins/databases/index.js | 3 ++- src/utils/errors.js | 16 ++++++++++++++++ src/utils/index.js | 1 + 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 src/utils/errors.js diff --git a/src/plugins/databases/index.js b/src/plugins/databases/index.js index 4ecc9cdc6..ab30ab1ac 100644 --- a/src/plugins/databases/index.js +++ b/src/plugins/databases/index.js @@ -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} - {this.state.error && JSON.stringify(this.state.error)} + {this.state.error && getStringFromErrorLike(this.state.error)} ); } diff --git a/src/utils/errors.js b/src/utils/errors.js new file mode 100644 index 000000000..b01db4f23 --- /dev/null +++ b/src/utils/errors.js @@ -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); + } +} diff --git a/src/utils/index.js b/src/utils/index.js index 19b3b410e..49eabd545 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -6,3 +6,4 @@ */ export {default as textContent} from './textContent.js'; +export {getStringFromErrorLike} from './errors.js';