config-profiler
TypeScript icon, indicating that this package has built-in type declarations

2.0.3 • Public • Published

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.

Donate

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-profiler

Why?

  • 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:

  1. Settings (if you set options.settings):
* Return `options.settings` if they are the object.
* Return config from `oprions.predefinedConfigs` by name in the `options.settings` if is a string and it is found.
* Return config from filepath defined in the `options.settings`.
  1. Trying to get the path to the config file from environment variable (if you set options.envVariableName)
  2. 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.json` if you set `options.packageProp`
  1. Trying to find the config file in the HOME directory.
  2. 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.

Package Sidebar

Install

npm i config-profiler

Weekly Downloads

1

Version

2.0.3

License

MIT

Last publish

Collaborators

  • mrmlnc