"use strict"; /* -------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. * ------------------------------------------------------------------------------------------ */ Object.defineProperty(exports, "__esModule", { value: true }); exports.ConfigurationFeature = void 0; const vscode_languageserver_protocol_1 = require("vscode-languageserver-protocol"); const Is = require("./utils/is"); const ConfigurationFeature = (Base) => { return class extends Base { getConfiguration(arg) { if (!arg) { return this._getConfiguration({}); } else if (Is.string(arg)) { return this._getConfiguration({ section: arg }); } else { return this._getConfiguration(arg); } } _getConfiguration(arg) { let params = { items: Array.isArray(arg) ? arg : [arg] }; return this.connection.sendRequest(vscode_languageserver_protocol_1.ConfigurationRequest.type, params).then((result) => { if (Array.isArray(result)) { return Array.isArray(arg) ? result : result[0]; } else { return Array.isArray(arg) ? [] : null; } }); } }; }; exports.ConfigurationFeature = ConfigurationFeature;