UNPKG

grunt-sort-json

Version:

Alphabetizing JSON files. Sort JSON files.

138 lines (98 loc) 3.09 kB
# grunt-sort-json [![Build Status](https://travis-ci.org/andrewjmead/grunt-sort-json.png)](https://travis-ci.org/andrewjmead/grunt-sort-json) > A grunt task for alphabetizing JSON files ## Community If you have any problems setting up or using `grunt-sort-json`, open an issue. I would be happy to help. **This is an active repository** that takes user suggestions, feedback and pull requests seriously. Happy grunting! ## Getting Started This plugin requires Grunt `~0.4.0` If you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command: npm install grunt-sort-json --save-dev Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript: grunt.loadNpmTasks('grunt-sort-json'); ## The "sortJSON" task ### Overview In your project's Gruntfile, add a section named `sortJSON` to the data object passed into `grunt.initConfig()`. grunt.initConfig({ sortJSON: { src: [ 'translations/english.json', 'translations/french.json' ] } }); ### Options #### options.spacing Type: `Number` Default value: `4` Number of spaces to indent JSON after sorting. Note there is a hard limit of `10` spaces. See MDN's definition of [JSON.stringify](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#Parameters) for more details. #### options.jshint Type: `Boolean` Default value: `false` Should grunt-sort-json use the rules defined by jshint? #### options.jshintrc Type: `String` Default value: `.jshintrc` Relative path to your project's jshintrc file. ### Usage Examples #### Default Options All you need to do is specify the files to alphabetize as the source files. Here, we opt to use the rules defined by our ``.jshintrc`` file. ```js grunt.initConfig({ sortJSON: { src: [ 'translations/english.json', 'translations/french.json' ], options: { jshint: true } } }); ``` **or** ```js grunt.initConfig({ sortJSON: { task: { src: [ 'translations/english.json', 'translations/french.json' ], options: { spacing: 6 } } } }); ``` ### Before Sorting { "two": "2", "one": "1", "3": "three", "4": { "b": "b", "a": "a" } } ### After Sorting { "3": "three", "4": { "a": "a", "b": "b" }, "one": "1", "two": "2" } ## Run Tests > npm install > npm test ## Contributing In lieu of a formal , take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/). ## Contributors * [Zachary Wolfe](https://github.com/zdwolfe) ## Release History * 2013-05-12   v0.0.1   First version! --- Task submitted by [Andrew Mead](http://www.andrewjmead.com)