🌌 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.json
property
- 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
.cosmicrc
file in JSON or YAML format
- a
.cosmicrc.json
file
- a
.cosmicrc.yaml
, .cosmicrc.yml
, or .cosmicrc.js
file
- a
cosmic.config.js
file exporting a JS object
Apart from these, it also looks for:
- a
cosmic.yaml
, cosmic.yml
, or cosmic.js
file without "rc"
- Environment variables
💡 Usage
Install the package from npm:
npm install @anandchowdhary/cosmic
Import and use:
import { cosmic } from "@anandchowdhary/cosmic";
const config = await cosmic("project");
Use the config
function to fetch a value:
import { cosmic, config } from "@anandchowdhary/cosmic";
await cosmic("project");
const environment = config("nodeEnv");
Clear the cache and fetch configuration available:
import { clearCosmicCache } from "@anandchowdhary/cosmic";
clearCosmicCache();
Sync functions are also available:
import { cosmicSync } from "@anandchowdhary/cosmic";
const config = cosmicSync("project");
👩💻 Development
Build TypeScript:
npm run build
Run unit tests and view coverage:
npm run test-without-reporting
📄 License
MIT © Anand Chowdhary