UNPKG

@azure/msal-browser

Version:
67 lines (59 loc) 1.94 kB
/* * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */ import { AuthFlowResultBase } from "../../../core/auth_flow/AuthFlowResultBase.js"; import { SignOutError } from "../error_type/GetAccountError.js"; import { SignOutCompletedState, SignOutFailedState, } from "../state/SignOutState.js"; import { SIGN_OUT_COMPLETED_STATE_TYPE, SIGN_OUT_FAILED_STATE_TYPE, } from "../../../core/auth_flow/AuthFlowStateTypes.js"; /* * Result of a sign-out operation. */ export class SignOutResult extends AuthFlowResultBase< SignOutResultState, SignOutError, void > { /** * Creates a new instance of SignOutResult. * @param state The state of the result. */ constructor() { super(new SignOutCompletedState()); } /** * Creates a new instance of SignOutResult with an error. * @param error The error that occurred during the sign-out operation. */ static createWithError(error: unknown): SignOutResult { const result = new SignOutResult(); result.error = new SignOutError(SignOutResult.createErrorData(error)); result.state = new SignOutFailedState(); return result; } /** * Checks if the sign-out operation is completed. */ isCompleted(): this is SignOutResult & { state: SignOutCompletedState } { return this.state.stateType === SIGN_OUT_COMPLETED_STATE_TYPE; } /** * Checks if the sign-out operation failed. */ isFailed(): this is SignOutResult & { state: SignOutFailedState } { return this.state.stateType === SIGN_OUT_FAILED_STATE_TYPE; } } /** * The possible states for the SignOutResult. * This includes: * - SignOutCompletedState: The sign-out operation was successful. * - SignOutFailedState: The sign-out operation failed. */ export type SignOutResultState = SignOutCompletedState | SignOutFailedState;