blob: 02f1a0d8ecee08b192c15bd497bf64a0798832b9 [file] [log] [blame]
export interface UnsubscriptionError extends Error {
readonly errors: any[];
}
export interface UnsubscriptionErrorCtor {
new(errors: any[]): UnsubscriptionError;
}
const UnsubscriptionErrorImpl = (() => {
function UnsubscriptionErrorImpl(this: any, errors: any[]) {
Error.call(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;
return this;
}
UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);
return UnsubscriptionErrorImpl;
})();
/**
* An error thrown when one or more errors have occurred during the
* `unsubscribe` of a {@link Subscription}.
*/
export const UnsubscriptionError: UnsubscriptionErrorCtor = UnsubscriptionErrorImpl as any;