Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

111
Views
Set custom headers based on different envs

I want to set custom headers of "id", "env", and "name" based on envs in my application, they all have different values for different envs. I am having trouble figuring out the most effective way to make it work based on my code logic.

Here is how I define the env:

let host = "xxxxxxxx";

function getHost() {
  var env = getEnv();

  env = env ? env : process.env.REACT_APP_ENV;

  switch (env) {
    case "stage":
      host = 
       "xxxxxxxxxxxxxxxxxxx";
      break;
    case "prod":
      host = 
        "xxxxxxxxxxxxxxxxx";
      break;
    case "local":
      host = "xxxxxxxxxxxxxx";
      break;
    case "dev":
      default:
        host = "xxxxxxxxxxxxxxxxxxx";
      break;
  }
  return host;
}

export const HOST = getHost();

Here is pretty much how every "headers" is set in my app, as you can see there are only some values so far:

export function fetchRefresh(token) {
  return (dispatch) => {
    return fetch(API_ROOT + "/xxxxxxx/xxx/xxxxxx", {
      method: "POST",
      headers: {
        authorization: `Bearer ${token}`,
        "Content-Type": "application/json",
        Accept: "application/json",
      },
      body: token,
    })
    .then()
    // the rest
  }
}

I thought about doing something like this, and adding HEADERS to headers: {} in my code, but it will only make the 3 custom headers I want to add a single object, they should all be separate values not object:

function getHeaders() {
  var env = getEnv();

  env = env ? env : process.env.REACT_APP_ENV;

  switch (env) {
    case "stage":
      return {
        "ID": "xxxxxxxxxxxxxx",
        "ENV": "xxxxxxxxxxxx",
        "NAME": "xxxxxxxx",
      }
    case "prod":
      return {
        "ID": "xxxxxxxxxxxxxx",
        "ENV": "xxxxxxxxxxxx",
        "NAME": "xxxxxxxx",
      }
    case "local":
      return {
        "ID": "xxxxxxxxxxxxxx",
        "ENV": "xxxxxxxxxxxx",
        "NAME": "xxxxxxxx",
      }
    case "dev":
      return {
        "ID": "xxxxxxxxxxxxxx",
        "ENV": "xxxxxxxxxxxx",
        "NAME": "xxxxxxxx",
      }
  }
}

export const HEADERS = getHeaders();

Can you please help? Thank you

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Do you mean retriving environmental variables? You can set your own by working with the 'dotenv' package, which is very commonly used.

https://www.npmjs.com/package/dotenv

You can set your environment variables in .env file like this:

MY_SECRET="new-secret-string"
KEY=VALUE

Which can be processed by

// This will read variables from .env file
require('dotenv').config();

console.log(process.env.MY_SECRET)
about 4 years ago · Juan Pablo Isaza Report

0

You'll want to do the following. First, install https://www.npmjs.com/package/env-cmd

Next, you can specify the .env to be used depending upon your environment as so. The below code allows you to specify configuration declaratively rather than imperatively (which is what you attempted to do). Even though you are adding one more dependency, you are getting a more resilient way of doing things. Now, when you say process.env.REACT_APP_ID process.env.REACT_APP_ENV process.env.REACT_APP_NAME, then depending on env the correct values will be transparently picked up.

"scripts": {
    "start": "env-cmd -f env_anotherenv.env react-scripts start",
    "start_vscode": "env-cmd -f env_vscode.env react-scripts start",
    "build_staging": "env-cmd -f env_staging.env react-scripts build --profile",
    "build_production": "env-cmd -f env_production.env react-scripts build --profile"
}

Example of env_production.env will be

REACT_APP_ID = someid
REACT_APP_ENV = someenv
REACT_APP_NAME = somename
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!