globalThis.assertOrThrow

kai zhu kaizhu256 at gmail.com
Sat Aug 31 19:21:38 UTC 2019


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:

```js
// 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);
    ...
});
```

-kai
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20190831/9a03c16a/attachment.html>


More information about the es-discuss mailing list