1.0.1 • Published 3 years ago

vatsalshah-cosmic v1.0.1

Weekly downloads
-
License
ISC
Repository
github
Last release
3 years ago

🌌 Cosmic

Find and load configuration for your app, based on cosmiconfig, with fallback to environment variables.

Coverage Status Travis Status

⭐ 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 @vatsal2210/cosmic

Import 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 build

Run unit tests and view coverage:

npm run test-without-reporting