import * as vscode from "vscode"; export const globalMap: Map = new Map(); export async function loadMappingJson(uri: vscode.Uri): Promise { const bytes = await vscode.workspace.fs.readFile(uri); const text = new TextDecoder('utf-8').decode(bytes); let raw: unknown; try { raw = JSON.parse(text); } catch (err: any) { throw new Error(`Failed to parse JSON: ${err?.message ?? String(err)}`); } if (typeof raw !== 'object' || raw === null || Array.isArray(raw)) { throw new Error(`Expected a JSON object at top level (key → value mapping).`); } const obj = raw as Record; globalMap.clear(); for (const [key, value] of Object.entries(obj)) { if (typeof value !== 'string') { console.warn(`⚠️ Skipping key '${key}' because its value is not a string.`); continue; } globalMap.set(key, value); } console.log(`✅ Loaded ${globalMap.size} valid mappings from ${uri.fsPath}`); }