UNPKG

4.23 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3class CommandExecutionAdapter {
4 static canAdapt(serverCapabilities) {
5 return serverCapabilities.executeCommandProvider != null;
6 }
7 static registerCustomCallbackForCommand(command, callback) {
8 this.commandsCustomCallbacks.set(command, callback);
9 }
10 /** Returns a {Promise} */
11 static executeCommand(connection, command, commandArgs) {
12 const executeCommandParams = CommandExecutionAdapter.createExecuteCommandParams(command, commandArgs);
13 const commandCustomCallback = this.commandsCustomCallbacks.get(command);
14 return commandCustomCallback !== undefined
15 ? commandCustomCallback(executeCommandParams)
16 : connection.executeCommand(executeCommandParams);
17 }
18 static createExecuteCommandParams(command, commandArgs) {
19 return {
20 command,
21 arguments: commandArgs,
22 };
23 }
24}
25exports.default = CommandExecutionAdapter;
26CommandExecutionAdapter.commandsCustomCallbacks = new Map();
27//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC1leGVjdXRpb24tYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9hZGFwdGVycy9jb21tYW5kLWV4ZWN1dGlvbi1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0EsTUFBcUIsdUJBQXVCO0lBR25DLE1BQU0sQ0FBQyxRQUFRLENBQUMsa0JBQXNDO1FBQzNELE9BQU8sa0JBQWtCLENBQUMsc0JBQXNCLElBQUksSUFBSSxDQUFBO0lBQzFELENBQUM7SUFFTSxNQUFNLENBQUMsZ0NBQWdDLENBQUMsT0FBZSxFQUFFLFFBQXVDO1FBQ3JHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQ3JELENBQUM7SUFFRCwwQkFBMEI7SUFDbkIsTUFBTSxDQUFDLGNBQWMsQ0FDMUIsVUFBb0MsRUFDcEMsT0FBZSxFQUNmLFdBQW1CO1FBRW5CLE1BQU0sb0JBQW9CLEdBQUcsdUJBQXVCLENBQUMsMEJBQTBCLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFBO1FBQ3JHLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUV2RSxPQUFPLHFCQUFxQixLQUFLLFNBQVM7WUFDeEMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDO1lBQzdDLENBQUMsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFDckQsQ0FBQztJQUVPLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxPQUFlLEVBQUUsV0FBbUI7UUFDNUUsT0FBTztZQUNMLE9BQU87WUFDUCxTQUFTLEVBQUUsV0FBVztTQUN2QixDQUFBO0lBQ0gsQ0FBQzs7QUE5QkgsMENBK0JDO0FBOUJnQiwrQ0FBdUIsR0FBRyxJQUFJLEdBQUcsRUFBeUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4ZWN1dGVDb21tYW5kUGFyYW1zLCBTZXJ2ZXJDYXBhYmlsaXRpZXMgfSBmcm9tIFwiLi4vbGFuZ3VhZ2VjbGllbnRcIlxuaW1wb3J0IHsgTGFuZ3VhZ2VDbGllbnRDb25uZWN0aW9uIH0gZnJvbSBcIi4uL21haW5cIlxuXG5leHBvcnQgdHlwZSBDb21tYW5kQ3VzdG9tQ2FsbGJhY2tGdW5jdGlvbiA9IChjb21tYW5kOiBFeGVjdXRlQ29tbWFuZFBhcmFtcykgPT4gUHJvbWlzZTxhbnkgfCB2b2lkPlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb21tYW5kRXhlY3V0aW9uQWRhcHRlciB7XG4gIHByaXZhdGUgc3RhdGljIGNvbW1hbmRzQ3VzdG9tQ2FsbGJhY2tzID0gbmV3IE1hcDxzdHJpbmcsIENvbW1hbmRDdXN0b21DYWxsYmFja0Z1bmN0aW9uPigpXG5cbiAgcHVibGljIHN0YXRpYyBjYW5BZGFwdChzZXJ2ZXJDYXBhYmlsaXRpZXM6IFNlcnZlckNhcGFiaWxpdGllcyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzZXJ2ZXJDYXBhYmlsaXRpZXMuZXhlY3V0ZUNvbW1hbmRQcm92aWRlciAhPSBudWxsXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHJlZ2lzdGVyQ3VzdG9tQ2FsbGJhY2tGb3JDb21tYW5kKGNvbW1hbmQ6IHN0cmluZywgY2FsbGJhY2s6IENvbW1hbmRDdXN0b21DYWxsYmFja0Z1bmN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5jb21tYW5kc0N1c3RvbUNhbGxiYWNrcy5zZXQoY29tbWFuZCwgY2FsbGJhY2spXG4gIH1cblxuICAvKiogUmV0dXJucyBhIHtQcm9taXNlfSAqL1xuICBwdWJsaWMgc3RhdGljIGV4ZWN1dGVDb21tYW5kKFxuICAgIGNvbm5lY3Rpb246IExhbmd1YWdlQ2xpZW50Q29ubmVjdGlvbixcbiAgICBjb21tYW5kOiBzdHJpbmcsXG4gICAgY29tbWFuZEFyZ3M/OiBhbnlbXVxuICApOiBQcm9taXNlPGFueSB8IHZvaWQ+IHtcbiAgICBjb25zdCBleGVjdXRlQ29tbWFuZFBhcmFtcyA9IENvbW1hbmRFeGVjdXRpb25BZGFwdGVyLmNyZWF0ZUV4ZWN1dGVDb21tYW5kUGFyYW1zKGNvbW1hbmQsIGNvbW1hbmRBcmdzKVxuICAgIGNvbnN0IGNvbW1hbmRDdXN0b21DYWxsYmFjayA9IHRoaXMuY29tbWFuZHNDdXN0b21DYWxsYmFja3MuZ2V0KGNvbW1hbmQpXG5cbiAgICByZXR1cm4gY29tbWFuZEN1c3RvbUNhbGxiYWNrICE9PSB1bmRlZmluZWRcbiAgICAgID8gY29tbWFuZEN1c3RvbUNhbGxiYWNrKGV4ZWN1dGVDb21tYW5kUGFyYW1zKVxuICAgICAgOiBjb25uZWN0aW9uLmV4ZWN1dGVDb21tYW5kKGV4ZWN1dGVDb21tYW5kUGFyYW1zKVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlRXhlY3V0ZUNvbW1hbmRQYXJhbXMoY29tbWFuZDogc3RyaW5nLCBjb21tYW5kQXJncz86IGFueVtdKTogRXhlY3V0ZUNvbW1hbmRQYXJhbXMge1xuICAgIHJldHVybiB7XG4gICAgICBjb21tYW5kLFxuICAgICAgYXJndW1lbnRzOiBjb21tYW5kQXJncyxcbiAgICB9XG4gIH1cbn1cbiJdfQ==
\No newline at end of file