user_friendly_error.ts 622 字节
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
import { prettyJson, stackToArray, IDetailedError } from './common';

export class UserFriendlyError extends Error implements IDetailedError {
  originalError: Error;

  additionalInfo: string;

  constructor(message: string, originalError: Error, additionalInfo: string) {
    super(message);
    this.originalError = originalError;
    this.additionalInfo = additionalInfo;
  }

  get details(): string {
    return prettyJson({
      userMessage: this.message,
      errorMessage: this.originalError.message,
      stack: stackToArray(this.originalError.stack),
      additionalInfo: this.additionalInfo,
    });
  }
}