diff --git a/packages/pyright-internal/src/analyzer/service.ts b/packages/pyright-internal/src/analyzer/service.ts index 4a354b7a28bd..d4d7e75a75ed 100644 --- a/packages/pyright-internal/src/analyzer/service.ts +++ b/packages/pyright-internal/src/analyzer/service.ts @@ -9,8 +9,8 @@ */ import * as JSONC from 'jsonc-parser'; -import { parse } from 'smol-toml'; import { AbstractCancellationTokenSource, CancellationToken } from 'vscode-languageserver'; +import { parse } from '../common/tomlUtils'; import { BackgroundAnalysisBase, RefreshOptions } from '../backgroundAnalysisBase'; import { CancellationProvider, DefaultCancellationProvider } from '../common/cancellationUtils'; diff --git a/packages/pyright-internal/src/common/tomlUtils.ts b/packages/pyright-internal/src/common/tomlUtils.ts new file mode 100644 index 000000000000..731627cba4e3 --- /dev/null +++ b/packages/pyright-internal/src/common/tomlUtils.ts @@ -0,0 +1,25 @@ +/* + * tomlUtils.ts + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT license. + * + * helpers related to TOML + */ + +type TomlPrimitive = string | number | boolean | { + [key: string]: TomlPrimitive; +} | TomlPrimitive[]; + +// Dynamically load `smol-toml` to address module loading issues and +// maintain existing module resolution to support multiple environments. +let TOML: any; +(async () => { + TOML = await import('smol-toml'); +})(); + +export const parse = (toml: string): Record => { + if (!TOML) { + throw new Error('TOML module not loaded'); + } + return TOML.parse(toml); +}; \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 1e1743e23c85..913964e747af 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "target": "es2019", - "module": "preserve", + "module": "node16", "lib": [ "es2019" ], @@ -10,7 +10,7 @@ "allowSyntheticDefaultImports": true, "strict": true, "forceConsistentCasingInFileNames": true, - "moduleResolution": "Bundler", + "moduleResolution": "node16", "resolveJsonModule": true, "sourceMap": true, "outDir": "./out",