diff options
author | Minteck <nekostarfan@gmail.com> | 2021-08-24 14:41:48 +0200 |
---|---|---|
committer | Minteck <nekostarfan@gmail.com> | 2021-08-24 14:41:48 +0200 |
commit | d25e11bee6ca5ca523884da132d18e1400e077b9 (patch) | |
tree | 8af39fde19f7ed640a60fb397c7edd647dff1c4c /node_modules/sort-keys | |
download | kartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.tar.gz kartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.tar.bz2 kartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.zip |
Initial commit
Diffstat (limited to 'node_modules/sort-keys')
-rw-r--r-- | node_modules/sort-keys/index.js | 44 | ||||
-rw-r--r-- | node_modules/sort-keys/license | 21 | ||||
-rw-r--r-- | node_modules/sort-keys/package.json | 40 | ||||
-rw-r--r-- | node_modules/sort-keys/readme.md | 60 |
4 files changed, 165 insertions, 0 deletions
diff --git a/node_modules/sort-keys/index.js b/node_modules/sort-keys/index.js new file mode 100644 index 0000000..f75a0e0 --- /dev/null +++ b/node_modules/sort-keys/index.js @@ -0,0 +1,44 @@ +'use strict'; +var isPlainObj = require('is-plain-obj'); + +module.exports = function (obj, opts) { + if (!isPlainObj(obj)) { + throw new TypeError('Expected a plain object'); + } + + opts = opts || {}; + + // DEPRECATED + if (typeof opts === 'function') { + opts = {compare: opts}; + } + + var deep = opts.deep; + var seenInput = []; + var seenOutput = []; + + var sortKeys = function (x) { + var seenIndex = seenInput.indexOf(x); + + if (seenIndex !== -1) { + return seenOutput[seenIndex]; + } + + var ret = {}; + var keys = Object.keys(x).sort(opts.compare); + + seenInput.push(x); + seenOutput.push(ret); + + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + var val = x[key]; + + ret[key] = deep && isPlainObj(val) ? sortKeys(val) : val; + } + + return ret; + }; + + return sortKeys(obj); +}; diff --git a/node_modules/sort-keys/license b/node_modules/sort-keys/license new file mode 100644 index 0000000..654d0bf --- /dev/null +++ b/node_modules/sort-keys/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/sort-keys/package.json b/node_modules/sort-keys/package.json new file mode 100644 index 0000000..dff0653 --- /dev/null +++ b/node_modules/sort-keys/package.json @@ -0,0 +1,40 @@ +{ + "name": "sort-keys", + "version": "1.1.2", + "description": "Sort the keys of an object", + "license": "MIT", + "repository": "sindresorhus/sort-keys", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "test": "xo && mocha" + }, + "files": [ + "index.js" + ], + "keywords": [ + "sort", + "object", + "keys", + "obj", + "key", + "stable", + "deterministic", + "deep", + "recursive", + "recursively" + ], + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "devDependencies": { + "mocha": "*", + "xo": "*" + } +} diff --git a/node_modules/sort-keys/readme.md b/node_modules/sort-keys/readme.md new file mode 100644 index 0000000..a671ffb --- /dev/null +++ b/node_modules/sort-keys/readme.md @@ -0,0 +1,60 @@ +# sort-keys [![Build Status](https://travis-ci.org/sindresorhus/sort-keys.svg?branch=master)](https://travis-ci.org/sindresorhus/sort-keys) + +> Sort the keys of an object + +Useful to get a deterministically ordered object, as the order of keys can vary between engines. + + +## Install + +``` +$ npm install --save sort-keys +``` + + +## Usage + +```js +const sortKeys = require('sort-keys'); + +sortKeys({c: 0, a: 0, b: 0}); +//=> {a: 0, b: 0, c: 0} + +sortKeys({b: {b: 0, a: 0}, a: 0}, {deep: true}); +//=> {a: 0, b: {a: 0, b: 0}} + +sortKeys({c: 0, a: 0, b: 0}, { + compare: (a, b) => -a.localeCompare(b) +}); +//=> {c: 0, b: 0, a: 0} +``` + + +## API + +### sortKeys(input, [options]) + +Returns a new object with sorted keys. + +#### input + +Type: `Object` + +#### options + +##### deep + +Type: `boolean` + +Recursively sort keys. + +##### compare + +Type: `Function` + +[Compare function.](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) |