grunt-json-structure-diff
v0.0.1
Published
Compare JSON files for structure equality, despite the actual content
Downloads
4
Readme
grunt-json-structure-diff
Compare JSON files for structure equality, despite the actual content
Important Note
This plugin is on EARLY stage of development, is not properly tested, and does not yet allow a number of customizations I planned for it. Be careful if you use it on your projects! Make sure you provide the exact version you want to use until a (more) stable version is released (from 0.1.0 and after).
Getting Started
This plugin requires Grunt.
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a 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-json-structure-diff --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-json-structure-diff');
The "json_structure_diff" task
Overview
In your project's Gruntfile, add a section named json_structure_diff
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
json_structure_diff: {
options: {
// Task-specific options go here.
},
your_target: {
// Target-specific file lists and/or options go here.
},
},
})
This plugin takes a list of folders containing JSON files. The folders MUST have the exact same structure (number of files and file names). It will then compare each file with their counterparts in the other folders and return an error list if the structures don't match. The error list is displayed in the Grunt console and is printed into the file pointed to in the configurations.
Options
options.breakOnFail
Type: Boolean
Default value: false
Whether it should abort the Grunt task on error or not.
options.verbose
Type: Boolean
Default value: true
Whether it should print to the console the error log.
Usage Examples
Default Options
In this example, Grunt will continue to run even if errors are found and they will be printed on the console.
grunt.initConfig({
json_structure_diff: {
options: {},
files: {
'logs/log.txt': ['src/folderWithJson1', 'src/folderWithJson2']
}
},
})
Custom Options
In this example, if an error is found, Grunt is aborted immediately. No error will be printed on the console
grunt.initConfig({
json_structure_diff: {
options: {
breakOnFail: true,
verbose: false
},
files: {
'logs/log.txt': ['src/folderWithJson1', 'src/folderWithJson2']
}
},
})
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
Release History
(Nothing yet)
License
Copyright (c) 2015 Filipe Garcia. Licensed under the MIT license.
TODO
- TESTS!!;
- Add support for direct file input, instead of folders that need to be in sync;
- JSDoc.