Files
freeCodeCamp/config/read-env.js
Ahmad Abdolsaheb 0df7ee430d feat(client): add growthbook (#48003)
* feat: initial set up

* feat: useFeature setup

* feat: adjust attributes

* chore(client): remove ts-disables in growth-book-wrapper

* feat: pull growthbook uri from env

* feat: adjust the staff atribute

* feat: make linter happy

* feat: update recruitment message

* refactor: simplify types

* chore: delete unused config

* fix: update copy

* fix: add growthbookUri to expected env vars

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2022-10-17 14:53:25 +02:00

87 lines
2.5 KiB
JavaScript

const path = require('path');
const envPath = path.resolve(__dirname, '../.env');
const { error } = require('dotenv').config({ path: envPath });
if (error) {
console.warn(`
----------------------------------------------------
Warning: .env file not found.
----------------------------------------------------
Please copy sample.env to .env
You can ignore this warning if using a different way
to setup this environment.
----------------------------------------------------
`);
}
const {
HOME_LOCATION: homeLocation,
API_LOCATION: apiLocation,
FORUM_LOCATION: forumLocation,
NEWS_LOCATION: newsLocation,
RADIO_LOCATION: radioLocation,
CLIENT_LOCALE: clientLocale,
CURRICULUM_LOCALE: curriculumLocale,
SHOW_LOCALE_DROPDOWN_MENU: showLocaleDropdownMenu,
ALGOLIA_APP_ID: algoliaAppId,
ALGOLIA_API_KEY: algoliaAPIKey,
STRIPE_PUBLIC_KEY: stripePublicKey,
PAYPAL_CLIENT_ID: paypalClientId,
PATREON_CLIENT_ID: patreonClientId,
DEPLOYMENT_ENV: deploymentEnv,
SENTRY_CLIENT_DSN: sentryClientDSN,
SHOW_UPCOMING_CHANGES: showUpcomingChanges,
SHOW_NEW_CURRICULUM: showNewCurriculum,
GROWTHBOOK_URI: growthbookUri
} = process.env;
const locations = {
homeLocation,
apiLocation,
forumLocation,
newsLocation,
radioLocation: !radioLocation
? 'https://coderadio.freecodecamp.org'
: radioLocation
};
module.exports = Object.assign(locations, {
clientLocale,
curriculumLocale,
showLocaleDropdownMenu: showLocaleDropdownMenu === 'true',
deploymentEnv,
environment: process.env.FREECODECAMP_NODE_ENV || 'development',
algoliaAppId:
!algoliaAppId || algoliaAppId === 'app_id_from_algolia_dashboard'
? ''
: algoliaAppId,
algoliaAPIKey:
!algoliaAPIKey || algoliaAPIKey === 'api_key_from_algolia_dashboard'
? ''
: algoliaAPIKey,
stripePublicKey:
!stripePublicKey || stripePublicKey === 'pk_from_stripe_dashboard'
? null
: stripePublicKey,
paypalClientId:
!paypalClientId || paypalClientId === 'id_from_paypal_dashboard'
? null
: paypalClientId,
patreonClientId:
!patreonClientId || patreonClientId === 'id_from_patreon_dashboard'
? null
: patreonClientId,
sentryClientDSN:
!sentryClientDSN || sentryClientDSN === 'dsn_from_sentry_dashboard'
? null
: sentryClientDSN,
showUpcomingChanges: showUpcomingChanges === 'true',
showNewCurriculum: showNewCurriculum === 'true',
growthbookUri:
!growthbookUri || growthbookUri === 'api_URI_from_Growthbook_dashboard'
? null
: growthbookUri
});