Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
sortobject
Advanced tools
Returns a copy of an object, sorted deeply by its keys, without mangling any arrays inside of it
The sortobject npm package is a utility for sorting the keys of an object. It can be used to ensure consistent key ordering, which can be useful for tasks such as comparing objects, generating consistent JSON output, and more.
Sort object keys alphabetically
This feature sorts the keys of an object in alphabetical order. The code sample demonstrates how to use the sortobject package to sort the keys of an object.
const sortobject = require('sortobject');
const obj = { b: 2, a: 1, c: 3 };
const sortedObj = sortobject(obj);
console.log(sortedObj); // { a: 1, b: 2, c: 3 }
Sort nested object keys
This feature sorts the keys of nested objects as well. The code sample shows how nested objects are sorted by their keys.
const sortobject = require('sortobject');
const obj = { b: { d: 4, c: 3 }, a: 1 };
const sortedObj = sortobject(obj);
console.log(sortedObj); // { a: 1, b: { c: 3, d: 4 } }
The sort-keys package sorts the keys of an object in a similar manner to sortobject. It offers additional options such as sorting in reverse order and custom sorting functions. Compared to sortobject, sort-keys provides more flexibility in how the keys are sorted.
The deep-sort-object package sorts the keys of an object deeply, including nested objects. It is similar to sortobject in that it handles nested objects, but it also provides more control over the sorting process, such as custom sorting functions.
Returns a copy of an object, sorted deeply by its keys, without mangling any arrays inside of it
import sortObject from 'sortobject'
const fixture = {
c: true,
a: true,
b: null,
d: [
{
c: true,
a: true,
b: null,
},
{
c: true,
a: true,
b: null,
d: [
{
c: true,
a: true,
b: null,
},
],
},
],
}
const actual = sortObject(fixture)
console.log(JSON.stringify(actual, null, 4)) /* {
"a": true,
"b": null,
"c": true,
"d": [
{
"a": true,
"b": null,
"c": true
},
{
"a": true,
"b": null,
"c": true,
"d": [
{
"a": true,
"b": null,
"c": true
}
]
}
]
} */
npm install --save sortobject
import pkg from ('sortobject')
const pkg = require('sortobject').default
import pkg from 'https://unpkg.com/sortobject@^5.6.0/edition-deno/index.ts'
<script type="module">
import pkg from '//cdn.skypack.dev/sortobject@^5.6.0'
</script>
<script type="module">
import pkg from '//unpkg.com/sortobject@^5.6.0'
</script>
<script type="module">
import pkg from '//dev.jspm.io/sortobject@5.6.0'
</script>
This package is published with the following editions:
sortobject/source/index.ts
is TypeScript source code with Import for modulessortobject/edition-browsers/index.js
is TypeScript compiled against ES2022 for web browsers with Import for modulessortobject
aliases sortobject/edition-es2022/index.js
sortobject/edition-es2022/index.js
is TypeScript compiled against ES2022 for Node.js 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modulessortobject/edition-es2022-esm/index.js
is TypeScript compiled against ES2022 for Node.js 12 || 14 || 16 || 18 || 20 || 21 with Import for modulessortobject/edition-types/index.d.ts
is TypeScript compiled Types with Import for modulessortobject/edition-deno/index.ts
is TypeScript source code made to be compatible with DenoDiscover the release history by heading on over to the HISTORY.md
file.
Discover how to contribute via the CONTRIBUTING.md
file.
Unless stated otherwise all works are:
and licensed under:
v5.6.0 2023 December 29
FAQs
Returns a copy of an object, sorted deeply by its keys, without mangling any arrays inside of it
We found that sortobject demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.