Add ExtensionLoader interface, use that on Config object (#12116)

This commit is contained in:
Jacob MacDonald
2025-10-28 09:04:30 -07:00
committed by GitHub
parent 25f27509c0
commit 1b302deeff
35 changed files with 619 additions and 505 deletions
@@ -23,8 +23,9 @@ export function handleDisable(args: DisableArgs) {
workspaceDir,
requestConsent: requestConsentNonInteractive,
requestSetting: promptForSetting,
loadedSettings: loadSettings(workspaceDir),
settings: loadSettings(workspaceDir).merged,
});
extensionManager.loadExtensions();
try {
if (args.scope?.toLowerCase() === 'workspace') {
@@ -26,8 +26,10 @@ export function handleEnable(args: EnableArgs) {
workspaceDir: workingDir,
requestConsent: requestConsentNonInteractive,
requestSetting: promptForSetting,
loadedSettings: loadSettings(workingDir),
settings: loadSettings(workingDir).merged,
});
extensionManager.loadExtensions();
try {
if (args.scope?.toLowerCase() === 'workspace') {
extensionManager.enableExtension(args.name, SettingScope.Workspace);
@@ -23,6 +23,7 @@ vi.mock('../../config/extension-manager.ts', async (importOriginal) => {
...actual,
ExtensionManager: vi.fn().mockImplementation(() => ({
installOrUpdateExtension: mockInstallOrUpdateExtension,
loadExtensions: vi.fn(),
})),
};
});
@@ -74,8 +74,9 @@ export async function handleInstall(args: InstallArgs) {
workspaceDir,
requestConsent,
requestSetting: promptForSetting,
loadedSettings: loadSettings(workspaceDir),
settings: loadSettings(workspaceDir).merged,
});
extensionManager.loadExtensions();
const name =
await extensionManager.installOrUpdateExtension(installMetadata);
debugLogger.log(`Extension "${name}" installed successfully and enabled.`);
+2 -1
View File
@@ -31,8 +31,9 @@ export async function handleLink(args: InstallArgs) {
workspaceDir,
requestConsent: requestConsentNonInteractive,
requestSetting: promptForSetting,
loadedSettings: loadSettings(workspaceDir),
settings: loadSettings(workspaceDir).merged,
});
extensionManager.loadExtensions();
const extensionName =
await extensionManager.installOrUpdateExtension(installMetadata);
debugLogger.log(
+1 -1
View File
@@ -19,7 +19,7 @@ export async function handleList() {
workspaceDir,
requestConsent: requestConsentNonInteractive,
requestSetting: promptForSetting,
loadedSettings: loadSettings(workspaceDir),
settings: loadSettings(workspaceDir).merged,
});
const extensions = extensionManager.loadExtensions();
if (extensions.length === 0) {
@@ -23,8 +23,9 @@ export async function handleUninstall(args: UninstallArgs) {
workspaceDir,
requestConsent: requestConsentNonInteractive,
requestSetting: promptForSetting,
loadedSettings: loadSettings(workspaceDir),
settings: loadSettings(workspaceDir).merged,
});
extensionManager.loadExtensions();
await extensionManager.uninstallExtension(args.name, false);
debugLogger.log(`Extension "${args.name}" successfully uninstalled.`);
} catch (error) {
@@ -34,7 +34,7 @@ export async function handleUpdate(args: UpdateArgs) {
workspaceDir,
requestConsent: requestConsentNonInteractive,
requestSetting: promptForSetting,
loadedSettings: loadSettings(workspaceDir),
settings: loadSettings(workspaceDir).merged,
});
const extensions = extensionManager.loadExtensions();