Skip to content

Commit a170656

Browse files
committed
fix(cli): use jsonc-parser for vscode settings
1 parent e3607ec commit a170656

4 files changed

Lines changed: 20 additions & 3 deletions

File tree

packages/cli/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,7 @@
322322
"@voidzero-dev/vite-plus-test": "workspace:*",
323323
"cac": "catalog:",
324324
"cross-spawn": "catalog:",
325+
"jsonc-parser": "catalog:",
325326
"oxfmt": "catalog:",
326327
"oxlint": "catalog:",
327328
"oxlint-tsgolint": "catalog:",

packages/cli/src/utils/editor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ function mergeAndWriteEditorConfig(
343343
displayPath: string,
344344
silent = false,
345345
) {
346-
const existing = readJsonFile(filePath);
346+
const existing = readJsonFile(filePath, true);
347347
const merged = mergeEditorConfigs(existing, incoming, fileName);
348348
writeJsonFile(filePath, merged);
349349
if (!silent) {

packages/cli/src/utils/json.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,15 @@ import fs from 'node:fs';
22

33
import detectIndent from 'detect-indent';
44
import { detectNewline } from 'detect-newline';
5+
import { parse as parseJsonc } from 'jsonc-parser';
56

6-
export function readJsonFile<T = Record<string, unknown>>(file: string): T {
7+
export function readJsonFile<T = Record<string, unknown>>(
8+
file: string,
9+
allowComments?: boolean,
10+
): T {
711
const content = fs.readFileSync(file, 'utf-8');
8-
return JSON.parse(content) as T;
12+
const parseFunction = allowComments ? parseJsonc : JSON.parse;
13+
return parseFunction(content) as T;
914
}
1015

1116
export function writeJsonFile<T = Record<string, unknown>>(file: string, data: T) {

pnpm-lock.yaml

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)