Files
vscode/extensions/html-language-features/server/src/customData.ts
T
Martin Aeschlimann 91b02efb23 use ESM for HTML/CSS/JSON language servers (#309566)
* convert html server to esm

* update html language service

* update

* update

* update json

* update css

* update

* update

* update jsonc-parser
2026-04-13 13:51:31 -07:00

39 lines
1.3 KiB
TypeScript

/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { newHTMLDataProvider, IHTMLDataProvider } from 'vscode-html-languageservice';
import { CustomDataRequestService } from './htmlServer.js';
export function fetchHTMLDataProviders(dataPaths: string[], requestService: CustomDataRequestService): Promise<IHTMLDataProvider[]> {
const providers = dataPaths.map(async p => {
try {
const content = await requestService.getContent(p);
return parseHTMLData(p, content);
} catch (e) {
return newHTMLDataProvider(p, { version: 1 });
}
});
return Promise.all(providers);
}
function parseHTMLData(id: string, source: string): IHTMLDataProvider {
let rawData: any;
try {
rawData = JSON.parse(source);
} catch (err) {
return newHTMLDataProvider(id, { version: 1 });
}
return newHTMLDataProvider(id, {
version: rawData.version || 1,
tags: rawData.tags || [],
globalAttributes: rawData.globalAttributes || [],
valueSets: rawData.valueSets || []
});
}