import { createErrorClass } from './createErrorClass'; export interface UnsubscriptionError extends Error { readonly errors: any[]; } export interface UnsubscriptionErrorCtor { /** * @deprecated Internal implementation detail. Do not construct error instances. * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269 */ new (errors: any[]): UnsubscriptionError; } /** * An error thrown when one or more errors have occurred during the * `unsubscribe` of a {@link Subscription}. */ export const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass( (_super) => function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) { _super(this); this.message = errors ? `${errors.length} errors occurred during unsubscription: ${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\n ')}` : ''; this.name = 'UnsubscriptionError'; this.errors = errors; } );