Aurelia-config is an aurelia plugin that allows you to load and configure plugins in a normalized manner.
Using this plugin you can make it a lot easier to allow for configuration using IoC.
You can allow app developers to configure your plugin through a simple config object. The way you expose it is simple: export an object literal called config
, and give it a namespace / key to use. This is the same object your configure()
function will receive upon plugin-configuration time.
// your-plugin.js
export function configure(aurelia, config) {
// config is pojo
}
export {
/* you need to namespace your defaults */
'your-plugin': {
/* This is your (optional) default config. */
}
} as config;
Now app developers can use this config. Keep on reading to figure out how.
In stead of using .plugin()
for every plugin, you only use it for the aurelia-config
plugin. Aurelia-config will register the rest of the plugins, using the corresponding namespace segment of your exported default config (if existing) merged with the appConfigOverwrites.
// Example config
let appConfigOverwrites = {
'aurelia-api': {
endpoints: [
{name: 'api', url: 'http://127.0.0.1:1337/'}
]
},
'aurelia-notification': {
baseClass: 'custom-notifications'
}
};
// Configure function
export function configure(aurelia) {
aurelia.use
.standardConfiguration()
.plugin('aurelia-config', configure => {
return configure([
'aurelia-api',
'aurelia-notification',
], appConfigOverwrites);
});
}
This library is used by plugins and applications.
You can find usage examples and the documentation at aurelia-config-doc.
The changelog provides you with information about important changes.
If you additionally want to use aurelia-config
to access the global configuration, you can install it for Jspm with jspm i aurelia-config
from your plugin root resp. npm i aurelia-config --save
for webpack or aurelia-cli.
Run npm i aurelia-config --save
from your project root.
Aurelia-config makes use homefront. So, add following to the build.bundles.dependencies
section of aurelia-project/aurelia.json
.
"dependencies": [
// ...
{
"name": "homefront",
"path": "../node_modules/homefront/dist",
"main": "index"
},
"aurelia-config",
// ...
],
Run jspm i aurelia-config
from your project root.
Add aurelia-config
to the bundles.dist.aurelia.includes
section of build/bundles.js
.
If the installation results in having forks, try resolving them by running:
jspm inspect --forks
jspm resolve --only registry:package-name@version
Run npm i aurelia-config --save
from your project root.
Add 'aurelia-config'
in the coreBundles.aurelia section
of your webpack.config.js
.
Npm-based installations pick up the typings automatically. For Jspm-based installations, run typings i github:spoonx/aurelia-config
or add "aurelia-config": "github:spoonx/aurelia-config",
to your typings.json
and run typings i
.