pax_global_header00006660000000000000000000000064135740157220014520gustar00rootroot0000000000000052 comment=2a3d477a3cda1d575e5e80cb163c38c33ec1c3e2
sort-object-keys-1.1.3/000077500000000000000000000000001357401572200147265ustar00rootroot00000000000000sort-object-keys-1.1.3/.gitignore000066400000000000000000000000151357401572200167120ustar00rootroot00000000000000node_modules
sort-object-keys-1.1.3/.travis.yml000066400000000000000000000030361357401572200170410ustar00rootroot00000000000000sudo: false
language: node_js
cache:
directories:
- node_modules
node_js:
- '0.12'
- v4
- stable
after_success:
- npm run semantic-release
env:
global:
- secure: XXQWV+c3Axb+G3WtYt1Z2wjv1EVSny91D7DVMSgtKnd7TtxsPzfpy7iWPFxidxi4vFLbi35JC51BZ7BWnN1tmgiGbZtk6NkgG3amNyVE4RSvPAMOO5wCEe2SqXU+59aW+1s/kRGbuy5fA6pTL+OpGjVq0FIa0GmPxNSI13AEKs7pW8ijWdkM7MtY1q/Hw1HjIvZno4iW8gVkhznOlgw08iW2fk2l5dS/OMDXZgrn+OwfbZ1sIDdqF3RTnLoxngLuk8UvHMT9W0xiU/8O01HOXE9rp71hV/NYYiJk9Ghg4x/6ss9bt08p8s2MvM8QGNbVfyawPwEwSVvEfH8OdFm48btPmziFp/4HSINrgi2bUEziAvgttTX1K8TXI/P7DlvmKJLOoaprCfeicGSN/Q0vuIPQkVl2dziV7pk/BiVbjMpB8BQIZD2VJFrRvylzLDbrcy7gIcSn50nHpYqKevr6tnJ9VmioHeNbYwloYD+uBx0mby/I68Ii4y51gPKIYQ1lza4KtEIpjs3Vs4RrIuKTjd+0Fb6vXJL/uzjeokd3TDyVKi1AGRzS9RMccZUS5EaGHfOy19nMfWuL1snZ7GKIJZy7gI5IH3KpYV14YHw8hx0ExZmlWZmavGJPRsXN/ervfX3do7Alj7+KakkV8ip9KkJqxwPajXH80cJrfEncODY=
- secure: yL3tp23cSwaHhrE7XzdOhrBpzyQgFpcT2b5CmFOoLaMOoIKd6Bq9rTd8un5egbFfTjivGEPx2+EfZs6qL0d496HomvGIWeLmNp+GZGL1ynCtrw8fDSQqNH7uguSlYsIAfNuV1x7N/9172rLLiNuIXB2/GNoLPJ4WbUJo/7aT5NE2MJvqYk7jWglkTtTYLoGhAd4aHVMfavC8hHqueXHFQ4VscvfDciaqwN+SfB35+tnTB4NMpslypmfd5c6bz3XHRVb8qKi3jgNe13ftcvbFkn6F3JO6gNI9omyESCGcjYIGzjPw5oKuYD4SAiEbiqIBwclU/oymFfTLBWE3Nq+pXjyUViTe6fV6mF1k+44OOg5XCCZPt6Q/JLQcK5TfQw2AkZkiUU6bQ/G43uhI+WZ1su4ka+eOGbLRv4D/rmZLv25ZVNlwVWb/8B/YmQqhX35Oi8m1M8Uq1QjpF+w2H13gRFa9R9qh0T82LnVIq6HBkIl2eBftHL1yL58bZ+D20tHRRm8soof8o3SuPXyILjcbKWyOrgO6TG+nwe6qLIWVGXW1Vkc1F8RiYsKeuI+wBenAqm8QReCO2lFqRArKze6XlKva8c+uB7rzHSYKj7tw96iu4yP9XRLL38kPMHgTEg94r+vyoMJCt8jwwfg52scC8HWl+yxwMnq1ZYdoSPT5UZA=
sort-object-keys-1.1.3/README.md000066400000000000000000000023011357401572200162010ustar00rootroot00000000000000# Sort Object
[](https://travis-ci.org/keithamus/sort-object-keys)
Returns a copy of an object with all keys sorted.
The second argument is optional and is used for ordering - to provide custom sorts. You can either pass an array containing ordered keys or a function to sort the keys (same signature as in [`Array.prototype.sort()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)).
```js
const assert = require('assert');
const sortObject = require('sort-object-keys');
assert.equal(JSON.stringify({
c: 1,
b: 1,
d: 1,
a: 1,
}), JSON.stringify({
a: 1,
b: 1,
c: 1,
d: 1,
}));
assert.equal(JSON.stringify(sortObject({
c: 1,
b: 1,
d: 1,
a: 1,
}, ['b', 'a', 'd', 'c'])), JSON.stringify({
b: 1,
a: 1,
d: 1,
c: 1,
}));
function removeKeyAncCompareIndex(keyA, keyB){
var a = parseInt(keyA.slice(4));
var b = parseInt(keyB.slice(4));
return a - b;
}
assert.equal(JSON.stringify(sortObject({
"key-1": 1,
"key-3": 1,
"key-10": 1,
"key-2": 1,
}, removeKeyAncCompareIndex)), JSON.stringify({
"key-1": 1,
"key-2": 1,
"key-3": 1,
"key-10": 1,
}));
```
sort-object-keys-1.1.3/index.js000066400000000000000000000007001357401572200163700ustar00rootroot00000000000000module.exports = function sortObjectByKeyNameList(object, sortWith) {
var keys;
var sortFn;
if (typeof sortWith === 'function') {
sortFn = sortWith;
} else {
keys = sortWith;
}
var objectKeys = Object.keys(object);
return (keys || []).concat(objectKeys.sort(sortFn)).reduce(function(total, key) {
if (objectKeys.indexOf(key) !== -1) {
total[key] = object[key];
}
return total;
}, Object.create(null));
}
sort-object-keys-1.1.3/package.json000066400000000000000000000020051357401572200172110ustar00rootroot00000000000000{
"name": "sort-object-keys",
"version": "1.1.3",
"description": "Sort an object's keys, including an optional key list",
"keywords": [
"keys",
"object",
"sort"
],
"homepage": "https://github.com/keithamus/sort-object-keys#readme",
"bugs": {
"url": "https://github.com/keithamus/sort-object-keys/issues"
},
"license": "MIT",
"author": "Keith Cirkel (http://keithcirkel.co.uk/)",
"files": [
"index.js"
],
"main": "index.js",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/keithamus/sort-object-keys.git"
},
"scripts": {
"semantic-release": "travis-after-all && semantic-release pre && npm publish && semantic-release post",
"test": "node test.js"
},
"config": {
"ghooks": {
"pre-commit": "npm t",
"commit-msg": "validate-commit-msg"
}
},
"devDependencies": {
"ghooks": "^1.0.1",
"semantic-release": "^4.3.5",
"travis-after-all": "^1.4.4",
"validate-commit-msg": "^2.4.1"
}
}
sort-object-keys-1.1.3/test.js000066400000000000000000000014451357401572200162470ustar00rootroot00000000000000const assert = require('assert');
const sortObject = require('./');
assert.equal(JSON.stringify(sortObject({
c: 1,
b: 1,
d: 1,
a: 1,
})), JSON.stringify({
a: 1,
b: 1,
c: 1,
d: 1,
}));
assert.equal(JSON.stringify(sortObject({
c: 1,
b: 1,
d: 1,
a: 1,
}, ['b', 'a', 'd', 'c'])), JSON.stringify({
b: 1,
a: 1,
d: 1,
c: 1,
}));
function removeKeyAncCompareIndex(keyA, keyB){
var a = parseInt(keyA.slice(4));
var b = parseInt(keyB.slice(4));
return a - b;
}
assert.equal(JSON.stringify(sortObject({
"key-1": 1,
"key-3": 1,
"key-10": 1,
"key-2": 1,
}, removeKeyAncCompareIndex)), JSON.stringify({
"key-1": 1,
"key-2": 1,
"key-3": 1,
"key-10": 1,
}));
assert.deepEqual(Object.keys(sortObject({
b: 1,
a: 1,
}, ['a', 'b', 'c', 'd'])), [
'a',
'b'
])