UNPKG

@codingame/monaco-vscode-extensions-service-override

Version:

VSCode public API plugged on the monaco editor - extensions service-override

28 lines (25 loc) 768 B
import { isThenable, Promises } from 'vscode/vscode/vs/base/common/async'; function handleVetos(vetos, onError) { if (vetos.length === 0) { return Promise.resolve(false); } const promises = []; let lazyValue = false; for (const valueOrPromise of vetos) { if (valueOrPromise === true) { return Promise.resolve(true); } if (isThenable(valueOrPromise)) { promises.push(valueOrPromise.then(value => { if (value) { lazyValue = true; } }, err => { onError(err); lazyValue = true; })); } } return Promises.settled(promises).then(() => lazyValue); } export { handleVetos };