From dae917ea8812bb29c20de6c51178c8eea4e6fa00 Mon Sep 17 00:00:00 2001 From: Mahdi Seyedan Date: Sun, 26 Nov 2023 23:41:13 +0330 Subject: [PATCH] Add errorWithName constructor --- CHANGELOG.md | 1 + src/Effect/Exception.js | 8 ++++++++ src/Effect/Exception.purs | 4 ++++ 3 files changed, 13 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f16b013..c8885dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ Breaking changes: New features: - Add `errorWithCause` (#43 by @sigma-andex) +- Add `errorWithName` (#44 by @jedimahdi) Bugfixes: diff --git a/src/Effect/Exception.js b/src/Effect/Exception.js index 7a55947..5e7b9d9 100644 --- a/src/Effect/Exception.js +++ b/src/Effect/Exception.js @@ -12,6 +12,14 @@ export function errorWithCause(msg) { }; } +export function errorWithName(msg) { + return function(name) { + const e = new Error(msg); + e.name = name; + return e; + }; +} + export function message(e) { return e.message; } diff --git a/src/Effect/Exception.purs b/src/Effect/Exception.purs index fe4cf17..f4c1beb 100644 --- a/src/Effect/Exception.purs +++ b/src/Effect/Exception.purs @@ -6,6 +6,7 @@ module Effect.Exception , catchException , error , errorWithCause + , errorWithName , message , name , stack @@ -36,6 +37,9 @@ foreign import error :: String -> Error -- | Create a JavaScript error, specifying a message and a cause foreign import errorWithCause :: String -> Error -> Error +-- | Create a JavaScript error, specifying a message and a name +foreign import errorWithName :: String -> String -> Error + -- | Get the error message from a JavaScript error foreign import message :: Error -> String