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 [![Build Status](https://travis-ci.org/keithamus/sort-object-keys.svg)](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' ])