cosmic

🌌 Find and load configuration for your app, based on cosmiconfig

MIT License

Downloads
69
Stars
1
Committers
3

🌌 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

Package Rankings
Top 10.72% on Npmjs.org
Badges
Extracted from project README
Node CI Travis CI Coverage Dependencies License Vulnerabilities Based on Node.ts npm type definitions npm package npm downloads Contributors semantic-release
Related Projects