Skip to content

sunrabbit123/es-jsonkit

Repository files navigation

es-json

CI Lint Build Test npm version

A powerful and efficient JavaScript/TypeScript utility library for JSON manipulation and operations.

Overview

es-json provides a comprehensive set of utilities for working with JSON data, including:

  • JSON Correction: Automatically fix malformed JSON strings
  • JSON Merging: Deep merge multiple JSON objects with customizable strategies
  • JSON Transformation: Transform and manipulate JSON structures
  • Performance Optimized: Built for high-performance JSON operations

Installation

npm install es-json

Quick Start

import { addMissingBraces, removeEmptyObjectPrefix, removeTrailingCommas } from 'es-json';

// Fix missing closing braces
const fixedBraces = addMissingBraces('{"key": "value"');
// Result: '{"key": "value"}'

// Remove empty object prefixes
const cleaned = removeEmptyObjectPrefix('{}{"key": "value"}');
// Result: '{"key": "value"}'

// Remove trailing commas
const validJson = removeTrailingCommas('{"key": "value",}');
// Result: '{"key": "value"}'

API Documentation

Functions

addMissingBraces(input: string): string

Automatically adds missing closing braces and brackets to malformed JSON strings. Handles nested structures and fixes mismatched braces.

addMissingBraces('{"users": [{"name": "John"');
// Returns: '{"users": [{"name": "John"}]}'

removeEmptyObjectPrefix(json: string): string

Removes empty object prefixes ({}) from JSON strings that may have been corrupted with leading empty objects.

removeEmptyObjectPrefix('{}{"valid": "data"}');
// Returns: '{"valid": "data"}'

removeTrailingCommas(json: string): string

Removes trailing commas from JSON objects and arrays to make them valid JSON. Properly handles commas inside strings.

removeTrailingCommas('{"key": "value", "array": [1, 2, 3,],}');
// Returns: '{"key": "value", "array": [1, 2, 3]}'

Features

  • 🚀 High Performance: Optimized for speed and memory efficiency
  • 🛡️ Type Safe: Full TypeScript support with comprehensive type definitions
  • 🧪 Well Tested: Comprehensive test coverage with Vitest
  • 📚 Well Documented: Detailed API documentation and examples
  • 🔧 Flexible: Customizable options for various use cases
  • Modern Tooling: Built with TypeScript, tested with Vitest, linted with oxlint

Development

Prerequisites

  • Node.js 18+
  • npm

Setup

# Clone the repository
git clone <repository-url>
cd es-json

# Install dependencies
npm install

# Run tests
npm test

# Run linting
npm run lint

# Build the project
npm run build

Scripts

  • npm test - Run Vitest tests in watch mode
  • npm run test:run - Run tests once
  • npm run test:coverage - Run tests with coverage report
  • npm run test:watch - Run tests in watch mode
  • npm run lint - Run oxlint to check code quality
  • npm run lint:fix - Auto-fix linting issues
  • npm run build - Build TypeScript to JavaScript
  • npm run release - Create a new release with bumpp

Contributing

We welcome contributions! Please see our contributing guidelines for more information.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Changelog

See CHANGELOG.md for a detailed history of changes.


Note: This library is actively under development. The API may change before the first stable release.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published