fix: comments being stripped out of json request body (#4402)
This commit is contained in:
@@ -67,6 +67,7 @@
|
|||||||
"insomnia-importers": "3.6.0",
|
"insomnia-importers": "3.6.0",
|
||||||
"io-ts": "2.2.20",
|
"io-ts": "2.2.20",
|
||||||
"js-yaml": "4.1.0",
|
"js-yaml": "4.1.0",
|
||||||
|
"jsonc-parser": "3.3.1",
|
||||||
"jsonpath-plus": "7.2.0",
|
"jsonpath-plus": "7.2.0",
|
||||||
"lodash-es": "4.17.21",
|
"lodash-es": "4.17.21",
|
||||||
"lossless-json": "3.0.2",
|
"lossless-json": "3.0.2",
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { convertIndexToLineCh } from "../utils"
|
import { convertIndexToLineCh } from "../utils"
|
||||||
import { LinterDefinition, LinterResult } from "./linter"
|
import { LinterDefinition, LinterResult } from "./linter"
|
||||||
import jsoncParse from "~/helpers/jsoncParse"
|
import jsoncParse from "~/helpers/jsoncParse"
|
||||||
|
import { stripComments } from "jsonc-parser"
|
||||||
|
|
||||||
const linter: LinterDefinition = (text) => {
|
const linter: LinterDefinition = (text) => {
|
||||||
try {
|
try {
|
||||||
@@ -23,23 +24,8 @@ const linter: LinterDefinition = (text) => {
|
|||||||
* @param jsonString The JSON string with comments.
|
* @param jsonString The JSON string with comments.
|
||||||
* @returns The JSON string without comments.
|
* @returns The JSON string without comments.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const singleLineCommentPattern = /\/\/.*$/gm
|
|
||||||
const multiLineCommentPattern = /\/\*[\s\S]*?\*\//gm
|
|
||||||
|
|
||||||
export function removeComments(jsonString: string): string {
|
export function removeComments(jsonString: string): string {
|
||||||
// Remove single-line comments
|
return stripComments(jsonString)
|
||||||
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, "")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default linter
|
export default linter
|
||||||
|
|||||||
11
pnpm-lock.yaml
generated
11
pnpm-lock.yaml
generated
@@ -586,6 +586,9 @@ importers:
|
|||||||
js-yaml:
|
js-yaml:
|
||||||
specifier: 4.1.0
|
specifier: 4.1.0
|
||||||
version: 4.1.0
|
version: 4.1.0
|
||||||
|
jsonc-parser:
|
||||||
|
specifier: 3.3.1
|
||||||
|
version: 3.3.1
|
||||||
jsonpath-plus:
|
jsonpath-plus:
|
||||||
specifier: 7.2.0
|
specifier: 7.2.0
|
||||||
version: 7.2.0
|
version: 7.2.0
|
||||||
@@ -9141,6 +9144,9 @@ packages:
|
|||||||
jsonc-parser@3.2.1:
|
jsonc-parser@3.2.1:
|
||||||
resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==}
|
resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==}
|
||||||
|
|
||||||
|
jsonc-parser@3.3.1:
|
||||||
|
resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==}
|
||||||
|
|
||||||
jsonfile@6.1.0:
|
jsonfile@6.1.0:
|
||||||
resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
|
resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
|
||||||
|
|
||||||
@@ -10724,6 +10730,7 @@ packages:
|
|||||||
engines: {node: '>=0.6.0', teleport: '>=0.2.0'}
|
engines: {node: '>=0.6.0', teleport: '>=0.2.0'}
|
||||||
deprecated: |-
|
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.
|
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)
|
(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)
|
||||||
|
|
||||||
qs@6.11.0:
|
qs@6.11.0:
|
||||||
@@ -23741,6 +23748,8 @@ snapshots:
|
|||||||
|
|
||||||
jsonc-parser@3.2.1: {}
|
jsonc-parser@3.2.1: {}
|
||||||
|
|
||||||
|
jsonc-parser@3.3.1: {}
|
||||||
|
|
||||||
jsonfile@6.1.0:
|
jsonfile@6.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
universalify: 2.0.1
|
universalify: 2.0.1
|
||||||
@@ -26905,7 +26914,7 @@ snapshots:
|
|||||||
terser@5.31.0:
|
terser@5.31.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jridgewell/source-map': 0.3.6
|
'@jridgewell/source-map': 0.3.6
|
||||||
acorn: 8.11.3
|
acorn: 8.12.1
|
||||||
commander: 2.20.3
|
commander: 2.20.3
|
||||||
source-map-support: 0.5.21
|
source-map-support: 0.5.21
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user