"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.YamlLinks = void 0;
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Red Hat, Inc. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
const jsonLinks_1 = require("vscode-json-languageservice/lib/umd/services/jsonLinks");
const yaml_documents_1 = require("../parser/yaml-documents");
class YamlLinks {
    constructor(telemetry) {
        this.telemetry = telemetry;
    }
    findLinks(document) {
        try {
            const doc = yaml_documents_1.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((0, jsonLinks_1.findLinks)(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', err);
        }
    }
}
exports.YamlLinks = YamlLinks;
//# sourceMappingURL=yamlLinks.js.map