uni-config

    4.0.0 • Public • Published

    uni-config

    Shared config for universal JavaScript apps.

    Loads configs in a certain order, next config always overriding previous one. Performs a deep merge of nested properties.

    To use this module create a config folder next to your node_modules folder with one of the following files (loaded in this order):

    1. default.js
    2. mycustomenv.js where mycustomenv is what you would set NODE_ENV to
    3. local.js

    Defaults:

    By default config object is supplied with the following properties:

    • environment is the value of NODE_ENV environment variable or 'development'
    • debug is true if environment is development
    • sandbox is true if SANDBOX environment variable is set to true or debug is true

    Options:

    All options can be set in the process environment:

    • NODE_ENV sets node environment, default: development
    • SANDBOX sets sandbox mode, default: (empty), accepts: true
    • CONFIG_DIR sets the name/path to config folder, relative to the project root, default: config

    Usage:

    const config = require('uni-config');
    // use your config

    There is a special UniConfigPlugin for Webpack to bundle config in your client app:

    const UniConfigPlugin = require('uni-config/plugin');
    // ...
    plugins: [
      new UniConfigPlugin(options),
    ],

    UniConfigPlugin accepts an options object:

    const options = {
      // An optional function to filter full config and hide secrets from the client app.
      // By default entire config object will be accessible to the client.
      // It's highly recommended to pass this function to filter your full config and only output
      // client relevant portions preserving original object structure.
      getConfig: (fullConfig) => {
        const { clientSafePortion } = fullConfig;
        const configWithoutSecrets = { clientSafePortion };
        return configWithoutSecrets;
      },
      // An optional boolean flag that switches internal loader output
      // between ES Module (default) and Common JS format
      esModule: true,
    };

    Install

    npm i uni-config

    DownloadsWeekly Downloads

    1

    Version

    4.0.0

    License

    MIT

    Unpacked Size

    7.41 kB

    Total Files

    7

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar