From e604124512c967cabd1ea623ef1c87e54a585192 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Sat, 18 Nov 2023 10:16:01 +0100 Subject: [PATCH] fix: tolerant parse error for local options, close #518 --- packages/devtools/src/utils/local-options.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/devtools/src/utils/local-options.ts b/packages/devtools/src/utils/local-options.ts index bde9bc3ae..490ec6427 100644 --- a/packages/devtools/src/utils/local-options.ts +++ b/packages/devtools/src/utils/local-options.ts @@ -14,11 +14,18 @@ export async function readLocalOptions(defaults: T, options: LocalOptionSearc const { filePath } = getOptionsFilepath(options) if (existsSync(filePath)) { - const options = { - ...defaults, - ...JSON.parse(await fs.readFile(filePath, 'utf-8')).settings || {}, + try { + const options = { + ...defaults, + ...JSON.parse(await fs.readFile(filePath, 'utf-8')).settings || {}, + } + return options + } + catch (e) { + console.error(`[DevTools] failed to parse local options file: ${filePath}, fallback to defaults`) + console.error(e) + return { ...defaults } } - return options } else { return { ...defaults }