globalThis.assertOrThrow
# Michael Haufe (5 years ago)
esdiscuss.org/topic/native-assertions
From: es-discuss <es-discuss-bounces at mozilla.org> On Behalf Of kai zhu
Sent: Saturday, August 31, 2019 2:22 PM To: es-discuss <es-discuss at mozilla.org>
Subject: globalThis.assertOrThrow
having a universal assert function (similar to nodejs' assert builtin) might be useful. it could be name "assertOrThrow" for web-compat.
this would simplify writing common-case "throwaway" error-handling behavior in both browsers and nodejs:
// naive polyfill
globalThis.assertOrThrow = globalThis.assertOrThrow || function (passed, message) {
/*
* this function will throw error <message> if <passed> is falsy
*/
if (passed) {
return;
}
throw (
typeof message === "object" && message
? message
: new Error(message)
}
};
localforage.setItem("foo", "bar", function (err, data) {
// validate no err occurred
// this one-line statement makes writing test-coverage less tedious
assertOrThrow(!err, err);
...
});
having a universal assert function (similar to nodejs' assert builtin) might be useful. it could be name "assertOrThrow" for web-compat.
this would simplify writing common-case "throwaway" error-handling behavior in both browsers and nodejs:
// naive polyfill globalThis.assertOrThrow = globalThis.assertOrThrow || function (passed, message) { /* * this function will throw error <message> if <passed> is falsy */ if (passed) { return; } throw ( typeof message === "object" && message ? message : new Error(message) } }; localforage.setItem("foo", "bar", function (err, data) { // validate no err occurred // this one-line statement makes writing test-coverage less tedious assertOrThrow(!err, err); ... });