microsoft/vscode-react-native

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
17bf2e6423d9b2b85ca346a4f0116dfe25b16cff

Branches

Tags

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

Clone

HTTPS

Download ZIP

src/common/error/errorHelper.ts

63lines · modeblame

17161993Meena Kunnathur Balakrishnan10 years ago1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the MIT license. See LICENSE file in the project root for details.
3
190e393cMeena Kunnathur Balakrishnan10 years ago4import {InternalError, NestedError, InternalErrorLevel} from "./internalError";
17161993Meena Kunnathur Balakrishnan10 years ago5import {InternalErrorCode} from "./internalErrorCode";
3c172a05Artem Egorov8 years ago6import {ERROR_STRINGS} from "./errorStrings";
17161993Meena Kunnathur Balakrishnan10 years ago7
8export class ErrorHelper {
3c172a05Artem Egorov8 years ago9public static ERROR_STRINGS = ERROR_STRINGS;
17161993Meena Kunnathur Balakrishnan10 years ago10public static getInternalError(errorCode: InternalErrorCode, ...optionalArgs: any[]): InternalError {
adaa8cc8Meena Kunnathur Balakrishnan10 years ago11let message = ErrorHelper.getErrorMessage(errorCode, ...optionalArgs);
17161993Meena Kunnathur Balakrishnan10 years ago12return new InternalError(<number> errorCode, message);
13}
14
190e393cMeena Kunnathur Balakrishnan10 years ago15public static getNestedError(innerError: Error, errorCode: InternalErrorCode, ...optionalArgs: any[]): NestedError {
a4a7e387Meena Kunnathur Balakrishnan10 years ago16let message = ErrorHelper.getErrorMessage(errorCode, ...optionalArgs);
17161993Meena Kunnathur Balakrishnan10 years ago17return new NestedError(<number> errorCode, message, innerError);
18}
19
190e393cMeena Kunnathur Balakrishnan10 years ago20public static wrapError(error: InternalError, innerError: Error): NestedError {
21return NestedError.getWrappedError(error, innerError);
22}
e416b901Yuri Skorokhodov7 years ago23
a4a7e387Meena Kunnathur Balakrishnan10 years ago24public static getWarning(message: string, ...optionalArgs: any[]): InternalError {
190e393cMeena Kunnathur Balakrishnan10 years ago25return new InternalError(-1, message, InternalErrorLevel.Warning);
26}
27
a4a7e387Meena Kunnathur Balakrishnan10 years ago28public static getNestedWarning(innerError: Error, message: string, ...optionalArgs: any[]): NestedError {
499fe4ebMeena Kunnathur Balakrishnan10 years ago29return new NestedError(-1, message, innerError, null /* extras */, InternalErrorLevel.Warning);
a4a7e387Meena Kunnathur Balakrishnan10 years ago30}
31
17161993Meena Kunnathur Balakrishnan10 years ago32private static getErrorMessage(errorCode: InternalErrorCode, ...optionalArgs: any[]): string {
fc602bb6Yuri Skorokhodov7 years ago33return ErrorHelper.formatErrorMessage(ErrorHelper.ERROR_STRINGS[errorCode], ...optionalArgs);
17161993Meena Kunnathur Balakrishnan10 years ago34}
35
36private static formatErrorMessage(errorMessage: string, ...optionalArgs: any[]): string {
a4a7e387Meena Kunnathur Balakrishnan10 years ago37if (!errorMessage) {
38return errorMessage;
39}
40
41let result: string = <string> errorMessage;
42let args: string[] = ErrorHelper.getOptionalArgsArrayFromFunctionCall(arguments, 1);
43if (args) {
cdf34447digeff10 years ago44for (let i: number = 0; i < args.length; i++) {
a4a7e387Meena Kunnathur Balakrishnan10 years ago45result = result.replace(new RegExp("\\{" + i + "\\}", "g"), args[i]);
17161993Meena Kunnathur Balakrishnan10 years ago46}
a4a7e387Meena Kunnathur Balakrishnan10 years ago47}
17161993Meena Kunnathur Balakrishnan10 years ago48
a4a7e387Meena Kunnathur Balakrishnan10 years ago49return result;
17161993Meena Kunnathur Balakrishnan10 years ago50}
adaa8cc8Meena Kunnathur Balakrishnan10 years ago51
a4a7e387Meena Kunnathur Balakrishnan10 years ago52private static getOptionalArgsArrayFromFunctionCall(functionArguments: IArguments, startIndex: number): any[] {
adaa8cc8Meena Kunnathur Balakrishnan10 years ago53if (functionArguments.length <= startIndex) {
5c8365a6Artem Egorov8 years ago54return [];
adaa8cc8Meena Kunnathur Balakrishnan10 years ago55}
56
57if (Array.isArray(functionArguments[startIndex])) {
58return functionArguments[startIndex];
59}
60
61return Array.prototype.slice.apply(functionArguments, [startIndex]);
62}
17161993Meena Kunnathur Balakrishnan10 years ago63}