microsoft/vscode-react-native

Public

mirrored from https://github.com/microsoft/vscode-react-nativeAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
190e393cdfd678505e325972de68688a94051a36

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

src/common/error/errorHelper.ts

49lines · modecode

1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the MIT license. See LICENSE file in the project root for details.
3
4import * as util from "util";
5import {InternalError, NestedError, InternalErrorLevel} from "./internalError";
6import {InternalErrorCode} from "./internalErrorCode";
7
8export class ErrorHelper {
9 public static getInternalError(errorCode: InternalErrorCode, ...optionalArgs: any[]): InternalError {
10 let message = util.format(ErrorHelper.getErrorMessage(errorCode), optionalArgs);
11 return new InternalError(<number> errorCode, message);
12 }
13
14 public static getNestedError(innerError: Error, errorCode: InternalErrorCode, ...optionalArgs: any[]): NestedError {
15 let message = util.format(ErrorHelper.getErrorMessage(errorCode), optionalArgs);
16 return new NestedError(<number> errorCode, message, innerError);
17 }
18
19 public static wrapError(error: InternalError, innerError: Error): NestedError {
20 return NestedError.getWrappedError(error, innerError);
21 }
22 public static getWarning(warningMessage: string, ...optionalArgs: any[]): InternalError {
23 let message = util.format(warningMessage, optionalArgs);
24
25 // Warnings do not use error codes
26 return new InternalError(-1, message, InternalErrorLevel.Warning);
27 }
28
29 private static getErrorMessage(errorCode: InternalErrorCode, ...optionalArgs: any[]): string {
30 let errorStrings = require ("./errorStrings.json");
31 return ErrorHelper.formatErrorMessage(errorStrings[InternalErrorCode[errorCode]], optionalArgs);
32 }
33
34 private static formatErrorMessage(errorMessage: string, ...optionalArgs: any[]): string {
35 if (!errorMessage) {
36 return errorMessage;
37 }
38
39 let result: string = <string> errorMessage;
40 let args: string[] = Array.prototype.slice.call(arguments, 1);
41 if (args) {
42 for (var i: number = 0; i < args.length; i++) {
43 result = result.replace(new RegExp("\\{" + i + "\\}", "g"), args[i]);
44 }
45 }
46
47 return result;
48 }
49}