sindresorhus/serialize-error

Add option to decide behavior

Open

#25 opened on Sep 23, 2019

View on GitHub
 (5 comments) (2 reactions) (0 assignees)JavaScript (599 stars) (69 forks)user submission
enhancementhelp wanted

Description

You can throw anything in JS, but it's a bad practice. I'd like to have it fail rather than silently accept anything. Though, it's not a good default, so should be opt-in.

Actually, there's 3 possible behaviors:

  1. Always return an object. (wanted default)
  2. Passthrough non-object values. (current default)
  3. Throw on non-object input.

I'd like 1 to be the default behavior, for consistency, but add an option to be able to opt into 2 (which is the current behavior) or 3 (which would be the strict behavior). This should be a single option.

Another benefit of 1 is that the TypeScript types can be better. We can guarantee it's an object and we can also guarantee that the name, message, and stack properties exist.

Contributor guide

Add option to decide behavior · sindresorhus/serialize-error#25 | Good First Issue