From 3d25ef48d16c5766d19267d44f6656a1fa776c3f Mon Sep 17 00:00:00 2001 From: James George Date: Tue, 19 Dec 2023 18:34:27 +0530 Subject: [PATCH] fix(persistence-service): update schemas found to differ in runtime (#3671) --- .../src/services/persistence/index.ts | 6 +++++- .../persistence/validation-schemas/index.ts | 15 ++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/packages/hoppscotch-common/src/services/persistence/index.ts b/packages/hoppscotch-common/src/services/persistence/index.ts index 04575e281..04a153853 100644 --- a/packages/hoppscotch-common/src/services/persistence/index.ts +++ b/packages/hoppscotch-common/src/services/persistence/index.ts @@ -244,9 +244,13 @@ export class PersistenceService extends Service { private setupSettingsPersistence() { const settingsKey = "settings" let settingsData = JSON.parse( - window.localStorage.getItem(settingsKey) || "{}" + window.localStorage.getItem(settingsKey) ?? "null" ) + if (!settingsData) { + settingsData = getDefaultSettings() + } + // Validate data read from localStorage const result = SETTINGS_SCHEMA.safeParse(settingsData) if (result.success) { diff --git a/packages/hoppscotch-common/src/services/persistence/validation-schemas/index.ts b/packages/hoppscotch-common/src/services/persistence/validation-schemas/index.ts index 5a471ec85..72ca18415 100644 --- a/packages/hoppscotch-common/src/services/persistence/validation-schemas/index.ts +++ b/packages/hoppscotch-common/src/services/persistence/validation-schemas/index.ts @@ -36,7 +36,7 @@ const SettingsDefSchema = z.object({ httpUser: z.boolean(), httpPassword: z.boolean(), bearerToken: z.boolean(), - oauth2Token: z.boolean(), + oauth2Token: z.optional(z.boolean()), }), THEME_COLOR: ThemeColorSchema, BG_COLOR: BgColorSchema, @@ -103,13 +103,10 @@ export const LOCAL_STATE_SCHEMA = z.union([ .strict(), ]) -export const SETTINGS_SCHEMA = z.union([ - z.object({}).strict(), - SettingsDefSchema.extend({ - EXTENSIONS_ENABLED: z.optional(z.boolean()), - PROXY_ENABLED: z.optional(z.boolean()), - }), -]) +export const SETTINGS_SCHEMA = SettingsDefSchema.extend({ + EXTENSIONS_ENABLED: z.optional(z.boolean()), + PROXY_ENABLED: z.optional(z.boolean()), +}) export const REST_HISTORY_ENTRY_SCHEMA = z .object({ @@ -208,7 +205,7 @@ export const MQTT_REQUEST_SCHEMA = z.nullable( z .object({ endpoint: z.string(), - clientID: z.string(), + clientID: z.optional(z.string()), }) .strict() )