bitovi / querystring-parser

MIT License
8 stars 5 forks source link

Add structured errors #13

Closed michael-dean-haynie closed 2 years ago

michael-dean-haynie commented 2 years ago

@NauanyC gave some great feedback that I've summarized: Consider the following error:

const { errors } = querystringParser.parse('page[number]=0&page[size]=abc')
console.log(errors.page[0].message) // --> Invalid page size provided in querystring: 'page[number]=0&page[size]=abc'

What if someone needs to return a more customized/user-friendly error from their api? What if someone wants to ignore the error and validate the "abc" value their own way, or provide a default?

Adding a bit more structured context to the errors could help a lot I'm proposing something like this:

error: {
  paramKey: 'page[size]',
  paramValue: 'abc',
  querystring: 'page[number]=0&page[size]=abc'
  message: 'Invalid page size blablabla...'
}

cc @phillipskevin