GlobalConfig.fromJson constructor
GlobalConfig.fromJson(
- Map<String, dynamic> json
)
Implementation
factory GlobalConfig.fromJson(Map<String, dynamic> json) {
// Parse projects.
Map<String, ProjectConfig>? projects;
final projectsRaw = json['projects'] as Map<String, dynamic>?;
if (projectsRaw != null) {
projects = {};
for (final entry in projectsRaw.entries) {
projects[entry.key] = ProjectConfig.fromJson(
entry.value as Map<String, dynamic>,
);
}
}
return GlobalConfig(
numStartups: json['numStartups'] as int? ?? 0,
installMethod: _parseInstallMethod(json['installMethod'] as String?),
autoUpdates: json['autoUpdates'] as bool?,
theme: _parseTheme(json['theme'] as String?),
hasCompletedOnboarding: json['hasCompletedOnboarding'] as bool?,
lastReleaseNotesSeen: json['lastReleaseNotesSeen'] as String?,
mcpServers: json['mcpServers'] as Map<String, dynamic>?,
preferredNotifChannel: _parseNotifChannel(
json['preferredNotifChannel'] as String?,
),
verbose: json['verbose'] as bool? ?? false,
primaryApiKey: json['primaryApiKey'] as String?,
oauthAccount: json['oauthAccount'] != null
? AccountInfo.fromJson(json['oauthAccount'] as Map<String, dynamic>)
: null,
editorMode: _parseEditorMode(json['editorMode'] as String?),
autoCompactEnabled: json['autoCompactEnabled'] as bool? ?? true,
showTurnDuration: json['showTurnDuration'] as bool? ?? true,
env: (json['env'] as Map<String, dynamic>?)?.cast<String, String>() ?? {},
hasSeenTasksHint: json['hasSeenTasksHint'] as bool? ?? false,
diffTool: _parseDiffTool(json['diffTool'] as String?),
tipsHistory:
(json['tipsHistory'] as Map<String, dynamic>?)?.map(
(k, v) => MapEntry(k, v as int),
) ??
{},
memoryUsageCount: json['memoryUsageCount'] as int? ?? 0,
promptQueueUseCount: json['promptQueueUseCount'] as int? ?? 0,
btwUseCount: json['btwUseCount'] as int? ?? 0,
todoFeatureEnabled: json['todoFeatureEnabled'] as bool? ?? true,
showExpandedTodos: json['showExpandedTodos'] as bool? ?? false,
messageIdleNotifThresholdMs:
json['messageIdleNotifThresholdMs'] as int? ?? 60000,
autoConnectIde: json['autoConnectIde'] as bool? ?? false,
autoInstallIdeExtension: json['autoInstallIdeExtension'] as bool? ?? true,
fileCheckpointingEnabled:
json['fileCheckpointingEnabled'] as bool? ?? true,
terminalProgressBarEnabled:
json['terminalProgressBarEnabled'] as bool? ?? true,
respectGitignore: json['respectGitignore'] as bool? ?? true,
copyFullResponse: json['copyFullResponse'] as bool? ?? false,
projects: projects,
cachedStatsigGates:
(json['cachedStatsigGates'] as Map<String, dynamic>?)?.map(
(k, v) => MapEntry(k, v as bool),
) ??
{},
cachedGrowthBookFeatures:
json['cachedGrowthBookFeatures'] as Map<String, dynamic>?,
customApiKeyResponses:
json['customApiKeyResponses'] as Map<String, dynamic>?,
userID: json['userID'] as String?,
);
}