config-profiler
v2.0.3
Published
Find configuration for the current file from provided path, workspace, package, settings, HOME directory or env variable
Maintainers
Readme
config-profiler
Find configuration for the current file from provided path, settings,
package.json, workspace, HOME directory or env variable.
Donate
If you want to thank me, or promote your Issue.
Sorry, but I have work and support for plugins and modules requires some time after work. I will be glad of your support or PR's.
Install
$ npm i -S config-profilerWhy?
- Originally designed for my VS Code plugins, because many plugins use similar code.
- The ability to add your parsers for specific files or for one file.
- The ability to setup predefined configs and use they from configs.
- Less dependencies and more features.
How it works?
For example, if your config name is "my-cofig" we will search out configuration in the following places and order:
- Settings (if you set
options.settings): * Returnoptions.settingsif they are the object. * Return config fromoprions.predefinedConfigsby name in theoptions.settingsif is a string and it is found. * Return config from filepath defined in theoptions.settings. - Trying to get the path to the config file from environment variable (if you set
options.envVariableName) - Trying to find the config file in the current workspace (cwd). Closest config file to the current file. File from the following list:
*
options.configFiles*package.jsonif you setoptions.packageProp - Trying to find the config file in the HOME directory.
- If no configuration object is found then we return
null.
Usage
const ConfigProfiler = require('config-profiler');
const configProfiler = new ConfigProfiler('./path/to/current/workspace', {
configFiles: ['my-super-module-config.json', 'my-super-module-config.js']
});
configProfiler.getConfig('./path/to/current/file').then((result) => {
console.log(result);
// { from: './bla/bla/my-super-module-config.json', config: { ok: true } }
});API
See /docs/api.md.
Options
See /docs/options.md.
Changelog
See the Releases section of our GitHub project for changelogs for each release version.
License
This software is released under the terms of the MIT license.
