function outputNewSettings()

in server/aws-lsp-identity/src/sharedConfig/saveSharedConfigFile.ts [99:119]


function outputNewSettings(iniSection: IniSection, newSettingsIndices: Record<string, number>, output: string[]): void {
    newSettingsIndices[nextSettingKey] ||= newSettingsIndices[sectionHeaderKey]

    for (const [settingName, settingValue] of Object.entries(iniSection).sort(compareObjectEntries)) {
        if (settingName && settingValue) {
            const setting =
                settingName.indexOf(CONFIG_PREFIX_SEPARATOR) !== -1
                    ? Setting.fromParsedSettingName(settingName, settingValue)
                    : new Setting(settingName, settingValue)

            // Insert subsection header if necessary
            if (setting.subsection && !newSettingsIndices[setting.subsection]) {
                output.splice(newSettingsIndices[nextSettingKey], 0, setting.toIniSubsectionHeaderLine())
                newSettingsIndices[setting.subsection] = newSettingsIndices[nextSettingKey] += 1
            }

            output.splice(newSettingsIndices[setting.subsection || nextSettingKey], 0, setting.toIniSettingLine())
            newSettingsIndices[nextSettingKey] += 1
        }
    }
}