/*--------------------------------------------------------------------------------------------- * Copyright (c) Red Hat, Inc. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { findLinks as JSONFindLinks } from 'vscode-json-languageservice/lib/umd/services/jsonLinks'; import { yamlDocumentsCache } from '../parser/yaml-documents'; import { convertErrorToTelemetryMsg } from '../utils/objects'; export class YamlLinks { constructor(telemetry) { this.telemetry = telemetry; } findLinks(document) { try { const doc = yamlDocumentsCache.getYamlDocument(document); // Find links across all YAML Documents then report them back once finished const linkPromises = []; for (const yamlDoc of doc.documents) { linkPromises.push(JSONFindLinks(document, yamlDoc)); } // Wait for all the promises to return and then flatten them into one DocumentLink array return Promise.all(linkPromises).then((yamlLinkArray) => [].concat(...yamlLinkArray)); } catch (err) { this.telemetry?.sendError('yaml.documentLink.error', { error: convertErrorToTelemetryMsg(err) }); } } } //# sourceMappingURL=yamlLinks.js.map