error-proxy
TypeScript icon, indicating that this package has built-in type declarations

0.0.3 • Public • Published

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'
}

// Define error type structure.
type FilePickerError =
  | {
      message: string;
      code: FilePickerErrorCode.Canceled;
    }
  | {
      message: string;
      code: FilePickerErrorCode.Oversized;
      maxSize: number;
    };

// Create an error proxy class based on error type.
const PickerError = createErrorProxyClass<FilePickerError>();

// Create an error factory and error comparer.
export const [createFilePickerError, isFilePickerError] =
  createErrorFactory(PickerError);

const someError = createFilePickerError({
  message: 'File is oversized',
  code: FilePickerErrorCode.Oversized,
  maxSize: 102400
});

console.log(isFilePickerError(someError)); // true
console.log(isFilePickerError(new Error())); // false
console.log(
  isFilePickerError({
    message: 'File is oversized',
    code: FilePickerErrorCode.Oversized,
    maxSize: 102400
  })
); // false

Package Sidebar

Install

npm i error-proxy

Weekly Downloads

1

Version

0.0.3

License

ISC

Unpacked Size

12.9 kB

Total Files

20

Last publish

Collaborators

  • magicismight