Passed
Push — master ( 06c3b6...1fd195 )
by Dmytro
01:32
created

utils.ts ➔ commandDecorator   A

Complexity

Conditions 2

Size

Total Lines 11
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 11
dl 0
loc 11
c 0
b 0
f 0
rs 9.85
cc 2
1
import * as vscode from 'vscode';
2
3
interface CommandMessages {
4
    SUCCESS_MESSAGE: string;
5
    ERROR_MESSAGE: string;
6
}
7
8
type CommandHandler = (...args: any[]) => void;
9
10
export function commandDecorator(command: CommandHandler, messages: CommandMessages):CommandHandler {
11
    return (...args: any[]) => {
12
        const { SUCCESS_MESSAGE, ERROR_MESSAGE } = messages;
13
14
        try {
15
            command(...args);
16
            vscode.window.showInformationMessage(SUCCESS_MESSAGE);
17
        } catch (error) {
18
            console.error(error);
19
            vscode.window.showErrorMessage(ERROR_MESSAGE);
20
        }
21
    };
22
}
23