Nightingale Posing Mischievously

    @47ng/check-env
    TypeScript icon, indicating that this package has built-in type declarations

    3.0.0 • Public • Published

    @47ng/check-env

    NPM MIT License CI/CD Coverage Status

    Check that the critical environment variables are set for your app, and that you did not leave dangerous development overrides in production.

    Installation

    yarn add @47ng/check-env
    

    Usage

    import { checkEnv } from '@47ng/check-env'
    
    checkEnv({
      // Will log an error and throw if any of these are missing:
      required: [
        'SOME_API_SECRET',
        'PRIVATE_TOKEN',
        'SOME_OTHER_IMPORTANT_THING'
        // ...
      ],
    
      // Will log an error and throw if any of these are set in production:
      unsafe: [
        'LOCAL_OVERRIDE_DISABLE_HTTPS',
        'INSECURE_COOKIES'
        // ...
      ]
    })

    If some required environment variable are not set, it will tell you and throw an error at the end: "CLI output"

    Error handling

    You can choose to skip throwing an error with the noThrow option:

    checkEnv({
      noThrow: true,
      ...
    })

    Conditional Checks

    If you want to require some variables only in production, you can add a condition before the variable name, any falsy value will be ignored:

    const __PROD__ = process.env.NODE_ENV === 'production'
    
    checkEnv({
      required: [
        'ALWAYS_REQUIRED',
        __PROD__ && 'ONLY_REQUIRED_IN_PRODUCTION',
        !__PROD__ && 'YOU_GET_THE_IDEA'
      ]
    })

    Logging

    By default, check-env uses console.err with emoji.

    You can override the default logging methods with logMissing and logUnsafe.

    Example using Pino:

    const logger = require('pino')()
    
    checkEnv({
      logMissing: name => logger.error(`Missing required environment variable ${name}`),
      logUnsafe: name => logger.warn(`Unsafe environment variable ${name} set in production`),
      ...
    })

    License

    MIT - Made with ❤️ by François Best

    Using this package at work ? Sponsor me to help with support and maintenance.

    Install

    npm i @47ng/check-env

    DownloadsWeekly Downloads

    1,297

    Version

    3.0.0

    License

    MIT

    Unpacked Size

    11.2 kB

    Total Files

    6

    Last publish

    Collaborators

    • franky47