Socket
Socket
Sign inDemoInstall

parse-json

Package Overview
Dependencies
Maintainers
1
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

parse-json - npm Package Compare versions

Comparing version 7.1.1 to 8.0.0

6

index.d.ts

@@ -23,4 +23,4 @@ import type {JsonObject} from 'type-fest';

// Get 'reviver' parameter from JSON.parse()
type ReviverFn = Parameters<typeof JSON['parse']>['1'];
// Get `reviver`` parameter from `JSON.parse()`.
export type Reviver = Parameters<typeof JSON['parse']>['1'];

@@ -77,3 +77,3 @@ /**

*/
export default function parseJson(string: string, reviver?: ReviverFn, filename?: string): JsonObject;
export default function parseJson(string: string, reviver?: Reviver, filename?: string): JsonObject;

@@ -80,0 +80,0 @@ /**

@@ -1,11 +0,36 @@

import errorEx from 'error-ex';
import fallback from 'json-parse-even-better-errors';
import {codeFrameColumns} from '@babel/code-frame';
import {LinesAndColumns} from 'lines-and-columns';
import indexToPosition from 'index-to-position';
export const JSONError = errorEx('JSONError', {
fileName: errorEx.append('in %s'),
codeFrame: errorEx.append('\n\n%s\n'),
});
export class JSONError extends Error {
fileName;
codeFrame;
rawCodeFrame;
constructor(message) {
super(message);
let _message = message instanceof Error
? message.message
: message;
Object.defineProperty(this, 'message', {
configurable: true,
enumerable: false,
get() {
return `${_message}${this.fileName ? ` in ${this.fileName}` : ''}${this.codeFrame ? `\n\n${this.codeFrame}\n` : ''}`;
},
set(value) {
_message = value;
},
});
this.name = 'JSONError';
if (Error.captureStackTrace) {
Error.captureStackTrace(this, JSONError);
}
}
}
const generateCodeFrame = (string, location, highlightCode = true) =>

@@ -21,3 +46,3 @@ codeFrameColumns(string, {start: location}, {highlightCode});

let {index, line, column} = match.groups;
const {index, line, column} = match.groups;

@@ -28,5 +53,3 @@ if (line && column) {

({line, column} = new LinesAndColumns(string).locationForIndex(Number(index)));
return {line: line + 1, column: column + 1};
return indexToPosition(string, Number(index), {oneBased: true});
};

@@ -53,3 +76,3 @@

message = message.replace(/\n/g, '');
message = message.replaceAll('\n', '');
const jsonError = new JSONError(message);

@@ -56,0 +79,0 @@

{
"name": "parse-json",
"version": "7.1.1",
"version": "8.0.0",
"description": "Parse JSON with more helpful errors",

@@ -16,3 +16,3 @@ "license": "MIT",

"engines": {
"node": ">=16"
"node": ">=18"
},

@@ -24,4 +24,3 @@ "scripts": {

"index.js",
"index.d.ts",
"vendor"
"index.d.ts"
],

@@ -40,16 +39,15 @@ "keywords": [

"dependencies": {
"@babel/code-frame": "^7.21.4",
"error-ex": "^1.3.2",
"@babel/code-frame": "^7.22.13",
"index-to-position": "^0.1.0",
"json-parse-even-better-errors": "^3.0.0",
"lines-and-columns": "^2.0.3",
"type-fest": "^3.8.0"
"type-fest": "^4.6.0"
},
"devDependencies": {
"ava": "^5.2.0",
"ava": "^5.3.1",
"nyc": "^15.1.0",
"outdent": "^0.8.0",
"strip-ansi": "^7.1.0",
"tsd": "^0.28.1",
"xo": "^0.54.0"
"tsd": "^0.29.0",
"xo": "^0.56.0"
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc