Skip to content
This repository has been archived by the owner on Mar 15, 2023. It is now read-only.

A grunt plugin for converting java property files to JSON files.

License

Notifications You must be signed in to change notification settings

jcbvm/grunt-properties-to-json

Repository files navigation

THIS PROJECT IS NO LONGER MAINTAINED

grunt-properties-to-json

Build Status dependency Status devDependency Status

A grunt plugin for converting java property files to JSON files.

Getting Started

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-properties-to-json --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-properties-to-json');

Usage

With the following config, each .properties file in src will be converted to json and will be saved as a .json file in the same directory as the property file.

grunt.initConfig({
    propertiesToJSON: {
        main: {
            src: ['path/to/properties/files', 'another/path/to/properties/files']
        }
    }
});

It is also possible to define a destination folder for the generated json files:

grunt.initConfig({
    propertiesToJSON: {
        main: {
            src: ['path/to/properties/files', 'another/path/to/properties/files'],
            dest: 'tmp'
        }
    }
});

Split keys by a separator

You can split keys in the property files by using the splitKeysBy option (a string or regular expression). With this option the keys in the property files will be splitted by the given string or regular expression and used as nested keys in the JSON output.

grunt.initConfig({
    propertiesToJSON: {
        main: {
            src: ['path/to/properties/files', 'another/path/to/properties/files'],
            dest: 'tmp',
            options: {
                splitKeysBy: '.'
            }
        }
    }
});

Include and/or exclude keys

You can explicitly include and/or exclude namespaces, effectively whitelisting or blacklisting. For each option, provide a string, regular expression or an array of strings and regular expressions. If both options are used, exclusions are applied first, then inclusions. If you combine this option with splitKeysBy you can include and/or exclude nested keys by respectively setting the deepInclude or deepExclude option to true.

grunt.initConfig({
    propertiesToJSON: {
        main: {
            src: ['path/to/properties/files', 'another/path/to/properties/files'],
            dest: 'tmp',
            options: {
                splitKeysBy: '.',
                exclude: ['message', /label$/],
                deepExclude: true
            }
        }
    }
});

Merge multiple property files to one JSON file

If you want multiple property files to be merged to one JSON file, you can set the merge option to true. The destination should be a file in which the merged JSON output will be written. You can combine this option with the options mentioned above (the merge will be applied as last operation, so splitted keys will also be merged).

grunt.initConfig({
    propertiesToJSON: {
        main: {
            src: ['path/to/properties/files', 'another/path/to/properties/files'],
            dest: 'tmp.json',
            options: {
                merge: true
            }
        }
    }
});

License

This project is released under the MIT license.

About

A grunt plugin for converting java property files to JSON files.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published