GlobalConfig.fromJson constructor

GlobalConfig.fromJson(
  1. 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?,
  );
}