From d088c064064c4612d7c8549354c8b47a7ba9abe5 Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Tue, 28 Feb 2023 22:00:44 -0800 Subject: Prepare to expand WebAuthnError --- .../src/helpers/identifyAuthenticationError.ts | 2 +- .../src/helpers/identifyRegistrationError.ts | 2 +- packages/browser/src/helpers/structs.ts | 23 ----------------- packages/browser/src/helpers/webAuthnError.ts | 30 ++++++++++++++++++++++ 4 files changed, 32 insertions(+), 25 deletions(-) delete mode 100644 packages/browser/src/helpers/structs.ts create mode 100644 packages/browser/src/helpers/webAuthnError.ts (limited to 'packages/browser/src') diff --git a/packages/browser/src/helpers/identifyAuthenticationError.ts b/packages/browser/src/helpers/identifyAuthenticationError.ts index 600a2d6..4c0cfe2 100644 --- a/packages/browser/src/helpers/identifyAuthenticationError.ts +++ b/packages/browser/src/helpers/identifyAuthenticationError.ts @@ -1,5 +1,5 @@ import { isValidDomain } from './isValidDomain'; -import { WebAuthnError } from './structs'; +import { WebAuthnError } from './webAuthnError'; /** * Attempt to intuit _why_ an error was raised after calling `navigator.credentials.get()` diff --git a/packages/browser/src/helpers/identifyRegistrationError.ts b/packages/browser/src/helpers/identifyRegistrationError.ts index 9b76454..6134227 100644 --- a/packages/browser/src/helpers/identifyRegistrationError.ts +++ b/packages/browser/src/helpers/identifyRegistrationError.ts @@ -1,5 +1,5 @@ import { isValidDomain } from './isValidDomain'; -import { WebAuthnError } from './structs'; +import { WebAuthnError } from './webAuthnError'; /** * Attempt to intuit _why_ an error was raised after calling `navigator.credentials.create()` diff --git a/packages/browser/src/helpers/structs.ts b/packages/browser/src/helpers/structs.ts deleted file mode 100644 index 8ae01b7..0000000 --- a/packages/browser/src/helpers/structs.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * A custom Error used to return a more nuanced error detailing _why_ one of the eight documented - * errors in the spec was raised after calling `navigator.credentials.create()` or - * `navigator.credentials.get()`: - * - * - `AbortError` - * - `ConstraintError` - * - `InvalidStateError` - * - `NotAllowedError` - * - `NotSupportedError` - * - `SecurityError` - * - `TypeError` - * - `UnknownError` - * - * Error messages were determined through investigation of the spec to determine under which - * scenarios a given error would be raised. - */ -export class WebAuthnError extends Error { - constructor(message: string, name = 'WebAuthnError') { - super(message); - this.name = name; - } -} diff --git a/packages/browser/src/helpers/webAuthnError.ts b/packages/browser/src/helpers/webAuthnError.ts new file mode 100644 index 0000000..aad98ff --- /dev/null +++ b/packages/browser/src/helpers/webAuthnError.ts @@ -0,0 +1,30 @@ +/* eslint-disable @typescript-eslint/ban-ts-comment */ +/** + * A custom Error used to return a more nuanced error detailing _why_ one of the eight documented + * errors in the spec was raised after calling `navigator.credentials.create()` or + * `navigator.credentials.get()`: + * + * - `AbortError` + * - `ConstraintError` + * - `InvalidStateError` + * - `NotAllowedError` + * - `NotSupportedError` + * - `SecurityError` + * - `TypeError` + * - `UnknownError` + * + * Error messages were determined through investigation of the spec to determine under which + * scenarios a given error would be raised. + */ +export class WebAuthnError extends Error { + constructor(message: string, cause: Error, name?: string) { + /** + * `cause` is supported in evergreen browsers, but not IE10, so this ts-ignore is to + * help Rollup complete the ES5 build. + */ + // @ts-ignore + super(message, { cause }) + // this.name = name ?? cause.name; + this.name = name ?? cause.name; + } +} -- cgit v1.2.3