UNPKG

vscode-languageclient

Version:
57 lines (56 loc) 1.73 kB
"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.boolean = boolean; exports.string = string; exports.number = number; exports.error = error; exports.func = func; exports.array = array; exports.stringArray = stringArray; exports.typedArray = typedArray; exports.thenable = thenable; exports.asPromise = asPromise; function boolean(value) { return value === true || value === false; } function string(value) { return typeof value === 'string' || value instanceof String; } function number(value) { return typeof value === 'number' || value instanceof Number; } function error(value) { return value instanceof Error; } function func(value) { return typeof value === 'function'; } function array(value) { return Array.isArray(value); } function stringArray(value) { return array(value) && value.every(elem => string(elem)); } function typedArray(value, check) { return Array.isArray(value) && value.every(check); } function thenable(value) { return value && func(value.then); } function asPromise(value) { if (value instanceof Promise) { return value; } else if (thenable(value)) { return new Promise((resolve, reject) => { value.then((resolved) => resolve(resolved), (error) => reject(error)); }); } else { return Promise.resolve(value); } }