Find Similar Packages for best-effort-json-parser
3 Years
best-effort-json-parserSimilar Packages:
Package Weekly Downloads Trend
Stat Detail
Package
Downloads
Stars
Size
Issues
Publish
License
best-effort-json-parser90,239
23647.6 kB223 days agoBSD-2-Clause
README for best-effort-json-parser

best-effort-json-parser

Parse incomplete JSON text in best-effort manner. Useful for partial JSON responses, broken network packages, or LLM responses exceeding tokens.

npm Package Version Minified Package Size Minified and Gzipped Package Size npm Package Downloads

Features

  • Typescript support
  • Isomorphic package: works in Node.js and browsers

Installation

npm install best-effort-json-parser

You can also install best-effort-json-parser with pnpm, yarn, or slnpm

Usage Example

import { parse } from 'best-effort-json-parser'

let data = parse(`[1, 2, {"a": "apple`)
console.log(data) // [1, 2, { a: 'apple' }]

Error Logging

By default, the parser logs errors to console.error. You can control error logging behavior:

import {
  disableErrorLogging,
  enableErrorLogging,
  setErrorLogger,
} from 'best-effort-json-parser'

// Disable error logging completely
disableErrorLogging()

// Re-enable error logging (default behavior)
enableErrorLogging()

// Set a custom error logger
setErrorLogger((message, data) => {
  // Your custom logging logic here
  console.log('Custom error:', message, data)

  // Common destinations for error data:
  // - Database storage for analysis
  // - File system logging
  // - Third-party services (Sentry, LogRocket, etc.)
  // - Monitoring and alerting systems
})

Typescript Signature

// Main parse function
function parse(s: string | undefined | null): any

// Parse namespace with additional properties
namespace parse {
  lastParseReminding: string | undefined
  onExtraToken: (text: string, data: any, reminding: string) => void | undefined
}

// Error logging functions
function setErrorLogger(logger: (message: string, data?: any) => void): void
function disableErrorLogging(): void
function enableErrorLogging(): void

More examples see parse.spec.ts

License

This is free and open-source software (FOSS) with BSD-2-Clause License