Read Java .properties files. Supports adding dynamically some files and array key value (same key multiple times)
Install the module with: npm install java-properties
var properties = require('java-properties');
// Reference a properties file
var values = properties.of('values.properties');
//Read a value from the properties file
values.get('a.key'); //returns value of a.key
//Add an additional file's properties
values.add('anotherfile.properties');
//Clear out all values
values.reset();
...
// returns the value of a.key of 'defaultValue' if key is not found
values.get('a.key', 'defaultValue');
...
// returns the value of the a.int.key as an int or 18
values.getInt('a.int.key', 18);
...
// returns the value of the a.float.key as a float or 18.23
values.getFloat('a.float.key', 18.23);
...
// returns the value of the a.bool.key as an boolean. Parse true or false with any case or 0 or 1
values.getBoolean('a.bool.key', true);
...
// returns all the keys
values.getKeys();
...
// adds another file the properties list
values.addFile('anotherFile.properties');
...
// empty the keys previously loaded
values.reset();
...
[ -- .properties file
an.array.key=value1
an.array.key=value2
]
values.get('an.array.key'); // returns [value1, value2]
// Multiple contexts
var myFile = new PropertiesFile(
'example.properties',
'arrayExample.properties');
myFile.get('arrayKey');
var myOtherFile = new PropertiesFile();
myOtherFile.addFile('example.properties');
myOtherFile.addFile('example2.properties');
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.
- 0.1.0 Initial commit
- 0.1.5 Support empty strings
- 0.1.6 New API:
getKeys
- 0.1.7 New APIs:
addFile
andreset
- 0.1.8 Add array key (the same key many time in files)
- 0.2.0 Wrap features into a class to be able to have multiple running contexts
- 0.2.1 Add default value to get method. Add getInt and getFloat to get an integer or float value
- 0.2.2 Add getBoolean method to get a value as a boolean. Accepted values are true, TRUE, false, FALSE, 0, 1
- 0.2.3 Add getMatchingKeys method
- 0.2.4 Allow multi-line properties
- 0.2.5 Refactorings, no new features
- 0.2.6 FIX interpolation when a property is multivalued
- 0.2.7 Get only last value for int and boolean in case of multivalued attribute
- 0.2.8 FIX unicode \uxxxx char decoding
- 0.2.9 Allow multiple double quotation marks
- 0.2.10 fix bug with escaped : & = (thanks @Drapegnik)
- 1.0.0 Rewrite as Typescript. Support Node 6+ only
Licensed under the MIT license.