error-proxy
Proxy for JavaScript errors, a better way to handle errors.
import {
createErrorFactory,
createErrorProxyClass
} from '@shimo/cougar-errors';
enum FilePickerErrorCode {
Canceled = 'canceled',
Oversized = 'oversized'
}
type FilePickerError =
| {
message: string;
code: FilePickerErrorCode.Canceled;
}
| {
message: string;
code: FilePickerErrorCode.Oversized;
maxSize: number;
};
const PickerError = createErrorProxyClass<FilePickerError>();
export const [createFilePickerError, isFilePickerError] =
createErrorFactory(PickerError);
const someError = createFilePickerError({
message: 'File is oversized',
code: FilePickerErrorCode.Oversized,
maxSize: 102400
});
console.log(isFilePickerError(someError));
console.log(isFilePickerError(new Error()));
console.log(
isFilePickerError({
message: 'File is oversized',
code: FilePickerErrorCode.Oversized,
maxSize: 102400
})
);