add interfaces and callbacks for basic error types #32
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What
Added array of basic interfaces and callback helper functions for asserting error types.
As embedding HTTP status codes to errors was not considered reasonable an alternative is to provide interfaces
that represent different error types. Using this we can reflect on an error and whether it conforms to a particular behaviour and act accordingly.
The advantage of interfaces vs concrete types is lack of tight coupling, and allowing basic error behaviour to be shared amongst different package types. An errNotFound can be used to represent a URL not found or a database document etc.
These interfaces could be implemented separately in each service, they don't cause a dependency in that sense, but to have them here as helpers will be more efficient and can also serve as a guide for which interfaces to use, keeping consistency and not reinventing the wheel etc
To make use have your errors implement these interfaces and you can then callback to check the error implements the error type. Example error:
How to review
Check changes make sense
Who can review
Anyone