GlobalConfig.fromJson constructor
GlobalConfig.fromJson(
- Map<String, dynamic> json
)
Implementation
factory GlobalConfig.fromJson(Map<String, dynamic> json) {
final rawProjects = json['projects'] as Map<String, dynamic>?;
Map<String, SkillUsageEntry>? skillUsage;
final rawSkill = json['skillUsage'] as Map<String, dynamic>?;
if (rawSkill != null) {
skillUsage = rawSkill.map(
(k, v) =>
MapEntry(k, SkillUsageEntry.fromJson(v as Map<String, dynamic>)),
);
}
return GlobalConfig(
apiKeyHelper: json['apiKeyHelper'] as String?,
projects: rawProjects?.map(
(k, v) =>
MapEntry(k, ProjectConfig.fromJson(v as Map<String, dynamic>)),
),
numStartups: (json['numStartups'] as int?) ?? 0,
installMethod: _parseInstallMethod(json['installMethod'] as String?),
autoUpdates: json['autoUpdates'] as bool?,
autoUpdatesProtectedForNative:
json['autoUpdatesProtectedForNative'] as bool?,
userID: json['userID'] as String?,
theme: _parseTheme(json['theme'] as String?),
hasCompletedOnboarding: json['hasCompletedOnboarding'] as bool?,
lastOnboardingVersion: json['lastOnboardingVersion'] as String?,
preferredNotifChannel: _parseNotifChannel(
json['preferredNotifChannel'] as String?,
),
verbose: (json['verbose'] as bool?) ?? false,
customApiKeyResponses:
json['customApiKeyResponses'] as Map<String, dynamic>?,
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>?)?.map(
(k, v) => MapEntry(k, v.toString()),
) ??
{},
diffTool: _parseDiffTool(json['diffTool'] as String?),
tipsHistory:
(json['tipsHistory'] as Map<String, dynamic>?)?.map(
(k, v) => MapEntry(k, (v as num).toInt()),
) ??
{},
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,
cachedStatsigGates:
(json['cachedStatsigGates'] as Map<String, dynamic>?)?.map(
(k, v) => MapEntry(k, v as bool),
) ??
{},
respectGitignore: (json['respectGitignore'] as bool?) ?? true,
copyFullResponse: (json['copyFullResponse'] as bool?) ?? false,
remoteControlAtStartup: json['remoteControlAtStartup'] as bool?,
migrationVersion: json['migrationVersion'] as int?,
skillUsage: skillUsage,
chromeExtension: json['chromeExtension'] != null
? ChromeExtensionPairing.fromJson(
json['chromeExtension'] as Map<String, dynamic>,
)
: null,
neomageHints: json['neomageHints'] != null
? NeomageHints.fromJson(
json['neomageHints'] as Map<String, dynamic>,
)
: null,
feedbackSurveyState: json['feedbackSurveyState'] != null
? FeedbackSurveyState.fromJson(
json['feedbackSurveyState'] as Map<String, dynamic>,
)
: null,
firstStartTime: json['firstStartTime'] as String?,
remoteDialogSeen: json['remoteDialogSeen'] as bool?,
lastPlanModeUse: json['lastPlanModeUse'] as int?,
);
}