gsolver
v0.9.0
Published
Dynamic configuration gsolver
Downloads
22
Readme
solver
This library is a small utility that it's used by simple-config-loader to solve dependencies in configuration files.
It will resolve an object's templated properties which might reference other properties in the same object or in a provided context object.
Templated properties are strings that follow the syntax ${property}
. Properties can be nested within objects, ${property.name}
.
You reference objects or properties by their keypath. A keypath is a string representing the location of a piece of data.
var data = {
user: {
name: 'Peperone',
address: {
city: 'New York'
}
}
};
You can reference strings or objects using two different syntaxes:
- Object interpolation:
@{user}
or@{user.address}
- String interpolation:
${user.name}
or${user.address.city}
Getting Started
Install the module with: npm install solver
Examples
Check out the example directory in the github repository.
A quick example:
var Solver = require('..');
var context = {
nick: 'Peperone',
greeting: 'Hello',
user: {
name: 'Pepe',
address: {
city: 'New York'
}
}
};
var re = new Solver();
var output = re.solve({
strings: {
message: '${greeting} ${user.name}! Still living in ${user.address.city}?',
welcome: '${nick}, how are you?'
},
references: {
user: '@{user}'
}
}, context);
console.log(output.strings.message); //Hello Pepe! Still living in New York?
console.log(output.strings.welcome); // Peperone, how are you?
console.log(output.references.user); // { name: 'Pepe', address: { city: 'New York' } }
Documentation
To see how it's being used, check simple-config-loader.
License
Copyright (c) 2015 goliatone
Licensed under the MIT license.