(sharedConfig: object)
| 46 | |
| 47 | // For security in case of damaged config file, try to salvage any security-related values |
| 48 | export function salvageSharedConfig(sharedConfig: object): SharedConfigSchema { |
| 49 | const salvagedConfig: SharedConfigSchema = {}; |
| 50 | if ("allowAnonymousTelemetry" in sharedConfig) { |
| 51 | const val = z.boolean().safeParse(sharedConfig.allowAnonymousTelemetry); |
| 52 | if (val.success) { |
| 53 | salvagedConfig.allowAnonymousTelemetry = val.data; |
| 54 | } |
| 55 | } |
| 56 | if ("disableIndexing" in sharedConfig) { |
| 57 | const val = z.boolean().safeParse(sharedConfig.disableIndexing); |
| 58 | if (val.success) { |
| 59 | salvagedConfig.disableIndexing = val.data; |
| 60 | } |
| 61 | } |
| 62 | if ("disableSessionTitles" in sharedConfig) { |
| 63 | const val = z.boolean().safeParse(sharedConfig.disableSessionTitles); |
| 64 | if (val.success) { |
| 65 | salvagedConfig.disableSessionTitles = val.data; |
| 66 | } |
| 67 | } |
| 68 | if ("disableAutocompleteInFiles" in sharedConfig) { |
| 69 | const val = sharedConfigSchema.shape.disableAutocompleteInFiles.safeParse( |
| 70 | sharedConfig.disableAutocompleteInFiles, |
| 71 | ); |
| 72 | if (val.success) { |
| 73 | salvagedConfig.disableAutocompleteInFiles = val.data; |
| 74 | } |
| 75 | } |
| 76 | return salvagedConfig; |
| 77 | } |
| 78 | |
| 79 | // Apply shared config to all forms of config |
| 80 | // - SerializedContinueConfig (config.json) |
no outgoing calls
no test coverage detected