From bd0ae900187fff9b09e5193d653761d1f8984017 Mon Sep 17 00:00:00 2001 From: Remco Haszing Date: Sat, 20 Nov 2021 12:39:43 +0100 Subject: [PATCH] Remove support for the prefix option If it turns out people use this, we can support a custom schema request service implementation instead. Also error responses for schema requests are now handled. --- index.d.ts | 8 -------- src/workerManager.ts | 1 - src/yamlWorker.ts | 21 +++++++++++++-------- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/index.d.ts b/index.d.ts index 296372c..724a4e5 100644 --- a/index.d.ts +++ b/index.d.ts @@ -70,14 +70,6 @@ declare module 'monaco-editor/esm/vs/editor/editor.api' { */ readonly isKubernetes?: boolean; - /** - * If specified, this prefix will be added to all on demand schema requests - * - * @default undefined - * @deprecated - */ - readonly prefix?: string; - /** * A list of known schemas and/or associations of schemas to file names. * diff --git a/src/workerManager.ts b/src/workerManager.ts index 998d202..96a1b7d 100644 --- a/src/workerManager.ts +++ b/src/workerManager.ts @@ -48,7 +48,6 @@ export function createWorkerManager( createData: { languageSettings: defaults.diagnosticsOptions, enableSchemaRequest: defaults.diagnosticsOptions.enableSchemaRequest, - prefix: defaults.diagnosticsOptions.prefix, isKubernetes: defaults.diagnosticsOptions.isKubernetes, customTags: defaults.diagnosticsOptions.customTags, }, diff --git a/src/yamlWorker.ts b/src/yamlWorker.ts index 6ace52a..3bae7b2 100644 --- a/src/yamlWorker.ts +++ b/src/yamlWorker.ts @@ -10,10 +10,12 @@ import { import { languageId } from './constants'; -let defaultSchemaRequestService: (url: string) => Promise; - -if (typeof fetch !== 'undefined') { - defaultSchemaRequestService = (url) => fetch(url).then((response) => response.text()); +async function schemaRequestService(uri: string): Promise { + const response = await fetch(uri); + if (response.ok) { + return response.text(); + } + throw new Error(`Schema request failed for ${uri}`); } export interface YAMLWorker { @@ -36,10 +38,14 @@ export interface YAMLWorker { export function createYAMLWorker( ctx: worker.IWorkerContext, - { enableSchemaRequest, languageSettings, prefix = '' }: ICreateData, + { enableSchemaRequest, languageSettings }: ICreateData, ): YAMLWorker { - const service = (url: string): Promise => defaultSchemaRequestService(`${prefix}${url}`); - const languageService = getLanguageService(enableSchemaRequest && service, null, null, null); + const languageService = getLanguageService( + enableSchemaRequest ? schemaRequestService : null, + null, + null, + null, + ); languageService.configure(languageSettings); const getTextDocument = (uri: string): TextDocument => { @@ -100,6 +106,5 @@ export function createYAMLWorker( export interface ICreateData { languageSettings: LanguageSettings; enableSchemaRequest: boolean; - prefix?: string; isKubernetes?: boolean; }