fix: comments being stripped out of json request body (#4402)

This commit is contained in:
Andrew Bastin
2024-10-04 23:41:40 +05:30
committed by GitHub
parent fdb250a608
commit 8e91078f43
3 changed files with 13 additions and 17 deletions

View File

@@ -67,6 +67,7 @@
"insomnia-importers": "3.6.0",
"io-ts": "2.2.20",
"js-yaml": "4.1.0",
"jsonc-parser": "3.3.1",
"jsonpath-plus": "7.2.0",
"lodash-es": "4.17.21",
"lossless-json": "3.0.2",

View File

@@ -1,6 +1,7 @@
import { convertIndexToLineCh } from "../utils"
import { LinterDefinition, LinterResult } from "./linter"
import jsoncParse from "~/helpers/jsoncParse"
import { stripComments } from "jsonc-parser"
const linter: LinterDefinition = (text) => {
try {
@@ -23,23 +24,8 @@ const linter: LinterDefinition = (text) => {
* @param jsonString The JSON string with comments.
* @returns The JSON string without comments.
*/
const singleLineCommentPattern = /\/\/.*$/gm
const multiLineCommentPattern = /\/\*[\s\S]*?\*\//gm
export function removeComments(jsonString: string): string {
// Remove single-line comments
jsonString = jsonString.replace(singleLineCommentPattern, "")
// Remove multi-line comments
jsonString = jsonString.replace(multiLineCommentPattern, "")
jsonString = removeTrailingCommas(jsonString)
return jsonString
}
export function removeTrailingCommas(jsonString: string): string {
return jsonString.replace(/,(?=\s*?[\]}])/g, "")
return stripComments(jsonString)
}
export default linter

11
pnpm-lock.yaml generated
View File

@@ -586,6 +586,9 @@ importers:
js-yaml:
specifier: 4.1.0
version: 4.1.0
jsonc-parser:
specifier: 3.3.1
version: 3.3.1
jsonpath-plus:
specifier: 7.2.0
version: 7.2.0
@@ -9141,6 +9144,9 @@ packages:
jsonc-parser@3.2.1:
resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==}
jsonc-parser@3.3.1:
resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==}
jsonfile@6.1.0:
resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
@@ -10724,6 +10730,7 @@ packages:
engines: {node: '>=0.6.0', teleport: '>=0.2.0'}
deprecated: |-
You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.
(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)
qs@6.11.0:
@@ -23741,6 +23748,8 @@ snapshots:
jsonc-parser@3.2.1: {}
jsonc-parser@3.3.1: {}
jsonfile@6.1.0:
dependencies:
universalify: 2.0.1
@@ -26905,7 +26914,7 @@ snapshots:
terser@5.31.0:
dependencies:
'@jridgewell/source-map': 0.3.6
acorn: 8.11.3
acorn: 8.12.1
commander: 2.20.3
source-map-support: 0.5.21