From bd6f19fa429e3675b26463d0b1ca88a073a0f908 Mon Sep 17 00:00:00 2001 From: sigma-andex <77549848+sigma-andex@users.noreply.github.com> Date: Tue, 20 Dec 2022 20:08:46 +0000 Subject: [PATCH 1/3] Add errorWithCause constructor --- CHANGELOG.md | 1 + src/Effect/Exception.js | 6 ++++++ src/Effect/Exception.purs | 11 ++++++++--- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 723dd9b..70b0b53 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ Notable changes to this project are documented in this file. The format is based Breaking changes: New features: +- Add `errorWithCause` Bugfixes: diff --git a/src/Effect/Exception.js b/src/Effect/Exception.js index 40c0eee..3461647 100644 --- a/src/Effect/Exception.js +++ b/src/Effect/Exception.js @@ -6,6 +6,12 @@ export function error(msg) { return new Error(msg); } +export function errorWithCause(msg) { + return function(cause) { + return new Error(msg, { cause }); + } +} + export function message(e) { return e.message; } diff --git a/src/Effect/Exception.purs b/src/Effect/Exception.purs index 89e1668..fe4cf17 100644 --- a/src/Effect/Exception.purs +++ b/src/Effect/Exception.purs @@ -3,15 +3,17 @@ module Effect.Exception ( Error + , catchException , error + , errorWithCause , message , name , stack - , throwException - , catchException , throw + , throwException , try - ) where + ) + where import Prelude @@ -31,6 +33,9 @@ foreign import showErrorImpl :: Error -> String -- | Create a JavaScript error, specifying a message foreign import error :: String -> Error +-- | Create a JavaScript error, specifying a message and a cause +foreign import errorWithCause :: String -> Error -> Error + -- | Get the error message from a JavaScript error foreign import message :: Error -> String From 360a1b0af7d87de70de6279beb377141e094d696 Mon Sep 17 00:00:00 2001 From: sigma-andex <77549848+sigma-andex@users.noreply.github.com> Date: Tue, 20 Dec 2022 20:12:44 +0000 Subject: [PATCH 2/3] Update changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 70b0b53..f16b013 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ Notable changes to this project are documented in this file. The format is based Breaking changes: New features: -- Add `errorWithCause` +- Add `errorWithCause` (#43 by @sigma-andex) Bugfixes: From 4b6e721a4379ef37ab556da1e629d847a8b3f086 Mon Sep 17 00:00:00 2001 From: sigma-andex <77549848+sigma-andex@users.noreply.github.com> Date: Thu, 22 Dec 2022 16:39:25 +0000 Subject: [PATCH 3/3] Add missing semicolon --- src/Effect/Exception.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Effect/Exception.js b/src/Effect/Exception.js index 3461647..7a55947 100644 --- a/src/Effect/Exception.js +++ b/src/Effect/Exception.js @@ -9,7 +9,7 @@ export function error(msg) { export function errorWithCause(msg) { return function(cause) { return new Error(msg, { cause }); - } + }; } export function message(e) {