1.3.0 • Published 10 months ago

@tamtamchik/json-deep-sort v1.3.0

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

JSON Deep Sort

Buy Me A Coffee Latest Version on NPM Scrutinizer build Scrutinizer quality Scrutinizer coverage Software License Total Downloads

JSON Deep Sort is a powerful and versatile TypeScript package designed for efficient sorting of JSON objects by keys. It offers:

  • Comprehensive handling of deeply nested objects and arrays
  • Flexible sorting options, including ascending and descending order
  • Support for both synchronous and asynchronous operations
  • Preservation of non-sortable objects (e.g., Date, RegExp, Function)
  • Lightweight implementation with zero dependencies

Whether you're working with simple flat objects or complex nested structures, JSON Deep Sort provides a reliable solution for organizing your data.

Installation

Using npm:

npm install @tamtamchik/json-deep-sort

Using yarn:

yarn add @tamtamchik/json-deep-sort

Usage

Import JSON Deep Sort in your TypeScript file:

import { sort } from '@tamtamchik/json-deep-sort';

Here is an example of sorting a JSON object:

// Example 1: Sorting a simple object
const simpleData = { b: 'b', a: 'a', c: 'c' };
console.log(sort(simpleData));
// Output: { a: 'a', b: 'b', c: 'c' }

// Example 2: Sorting a nested object
const nestedData = {
    b: 'b',
    a: 'a',
    c: { d: 'd', c: 'c', a: 'a', b: 'b' }
};
console.log(sort(nestedData));
// Output: { a: 'a', b: 'b', c: { a: 'a', b: 'b', c: 'c', d: 'd' } }

// Example 3: Sorting an array of objects
const arrayData = [{ b: 'b', a: 'a' }, { d: 'd', c: 'c' }];
console.log(sort(arrayData));
// Output: [{ a: 'a', b: 'b' }, { c: 'c', d: 'd' }]

// Example 4: Sorting in descending order
const descendingData = { a: 'a', c: 'c', b: 'b' };
console.log(sort(descendingData, false));
// Output: { c: 'c', b: 'b', a: 'a' }

// Example 5: Handling mixed data types
const mixedData = {
    b: [3, 1, 2],
    a: { z: 'z', y: 'y' },
    c: new Date('2023-01-01')
};
console.log(sort(mixedData));
// Output: { a: { y: 'y', z: 'z' }, b: [3, 1, 2], c: Date('2023-01-01') }

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

JSON Deep Sort is MIT licensed.

1.3.0

10 months ago

1.2.0

12 months ago

1.1.4

1 year ago

1.2.1

12 months ago

1.1.3

1 year ago

1.1.1

2 years ago

1.1.2

2 years ago

1.1.0

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago