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 (69 forks)user submission
enhancementhelp wanted

Repository metrics

Stars
 (599 stars)
PR merge metrics
 (No merged PRs in 30d)

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