vatsalshah-cosmic
v1.0.1
Published
Find and load configuration for your app, based on cosmiconfig
Maintainers
Readme
🌌 Cosmic
Find and load configuration for your app, based on cosmiconfig, with fallback to environment variables.
⭐ Features
Cosmic, like cosmiconfig, will look for a configuration file:
- a
package.jsonproperty - a JSON or YAML, extensionless "rc file"
- an "rc file" with the extensions .json, .yaml, .yml, or .js.
- a .config.js CommonJS module
For example, if the app name is "cosmic", these files will be searched:
- a cosmic property in
package.json - a
.cosmicrcfile in JSON or YAML format - a
.cosmicrc.jsonfile - a
.cosmicrc.yaml,.cosmicrc.yml, or.cosmicrc.jsfile - a
cosmic.config.jsfile exporting a JS object
Apart from these, it also looks for:
- a
cosmic.yaml,cosmic.yml, orcosmic.jsfile without "rc" - Environment variables
💡 Usage
Install the package from npm:
npm install @vatsal2210/cosmicImport and use:
import { cosmic } from '@vatsal2210/cosmic';
const config = await cosmic('project'); // {}Use the config function to fetch a value:
import { cosmic, config } from '@vatsal2210/cosmic';
await cosmic('project');
const environment = config('nodeEnv');Clear the cache and fetch configuration available:
import { clearCosmicCache } from '@vatsal2210/cosmic';
clearCosmicCache();Sync functions are also available:
import { cosmicSync } from '@vatsal2210/cosmic';
const config = cosmicSync('project'); // {}👩💻 Development
Build TypeScript:
npm run buildRun unit tests and view coverage:
npm run test-without-reporting