Hello guys,
I'm submitting the basic idea here and once you approve it, I'll add the PR with types and tests et al.
The hook is called withCustomError and it can be used to change errors thrown by other hooks.
The scenario goes like this: I want to use the disable hook but return a 404 NotFound error instead of the default MethodNotAllowed error.
Basically, instead of writing the following e.g:
disallow("external") // throws MethodNotAllowed
We would wrap it in a withCustomError utility hook, like so:
withCustomError(disallow("extenral"), () => new NotFound()) // throws NotFound
The basic code goes like this:
const withCustomError = (hook, errorCreator) => (context: any) => {
try {
// if the hook does not produce an error, no need to throw
const res = hook(context);
return res;
} catch (err) {
throw errorCreator(context);
}
};
We can also use function composition to create a new disallow404 like so:
const disallow404 = (...providers) => withCustomError(disallow(...providers), () => new NotFound());
What do you think ?
Hello guys,
I'm submitting the basic idea here and once you approve it, I'll add the PR with types and tests et al.
The hook is called
withCustomErrorand it can be used to change errors thrown by other hooks.The scenario goes like this: I want to use the
disablehook but return a 404 NotFound error instead of the default MethodNotAllowed error.Basically, instead of writing the following e.g:
We would wrap it in a
withCustomErrorutility hook, like so:The basic code goes like this:
We can also use function composition to create a new
disallow404like so:What do you think ?