diff --git a/src/CONFIG.js b/src/CONFIG.ts similarity index 62% rename from src/CONFIG.js rename to src/CONFIG.ts index 4f9eab573a9e..e08b771d4b34 100644 --- a/src/CONFIG.js +++ b/src/CONFIG.ts @@ -1,25 +1,24 @@ -import get from 'lodash/get'; import {Platform} from 'react-native'; -import Config from 'react-native-config'; -import getPlatform from './libs/getPlatform/index'; +import Config, {NativeConfig} from 'react-native-config'; +import getPlatform from './libs/getPlatform'; import * as Url from './libs/Url'; import CONST from './CONST'; // react-native-config doesn't trim whitespace on iOS for some reason so we -// add a trim() call to lodashGet here to prevent headaches -const lodashGet = (config, key, defaultValue) => get(config, key, defaultValue).trim(); +// add a trim() call to prevent headaches +const get = (config: NativeConfig, key: string, defaultValue: string): string => (config?.[key] ?? defaultValue).trim(); // Set default values to contributor friendly values to make development work out of the box without an .env file -const ENVIRONMENT = lodashGet(Config, 'ENVIRONMENT', CONST.ENVIRONMENT.DEV); -const newExpensifyURL = Url.addTrailingForwardSlash(lodashGet(Config, 'NEW_EXPENSIFY_URL', 'https://new.expensify.com/')); -const expensifyURL = Url.addTrailingForwardSlash(lodashGet(Config, 'EXPENSIFY_URL', 'https://www.expensify.com/')); -const stagingExpensifyURL = Url.addTrailingForwardSlash(lodashGet(Config, 'STAGING_EXPENSIFY_URL', 'https://staging.expensify.com/')); -const stagingSecureExpensifyUrl = Url.addTrailingForwardSlash(lodashGet(Config, 'STAGING_SECURE_EXPENSIFY_URL', 'https://staging-secure.expensify.com/')); -const ngrokURL = Url.addTrailingForwardSlash(lodashGet(Config, 'NGROK_URL', '')); -const secureNgrokURL = Url.addTrailingForwardSlash(lodashGet(Config, 'SECURE_NGROK_URL', '')); -const secureExpensifyUrl = Url.addTrailingForwardSlash(lodashGet(Config, 'SECURE_EXPENSIFY_URL', 'https://secure.expensify.com/')); -const useNgrok = lodashGet(Config, 'USE_NGROK', 'false') === 'true'; -const useWebProxy = lodashGet(Config, 'USE_WEB_PROXY', 'true') === 'true'; +const ENVIRONMENT = get(Config, 'ENVIRONMENT', CONST.ENVIRONMENT.DEV); +const newExpensifyURL = Url.addTrailingForwardSlash(get(Config, 'NEW_EXPENSIFY_URL', 'https://new.expensify.com/')); +const expensifyURL = Url.addTrailingForwardSlash(get(Config, 'EXPENSIFY_URL', 'https://www.expensify.com/')); +const stagingExpensifyURL = Url.addTrailingForwardSlash(get(Config, 'STAGING_EXPENSIFY_URL', 'https://staging.expensify.com/')); +const stagingSecureExpensifyUrl = Url.addTrailingForwardSlash(get(Config, 'STAGING_SECURE_EXPENSIFY_URL', 'https://staging-secure.expensify.com/')); +const ngrokURL = Url.addTrailingForwardSlash(get(Config, 'NGROK_URL', '')); +const secureNgrokURL = Url.addTrailingForwardSlash(get(Config, 'SECURE_NGROK_URL', '')); +const secureExpensifyUrl = Url.addTrailingForwardSlash(get(Config, 'SECURE_EXPENSIFY_URL', 'https://secure.expensify.com/')); +const useNgrok = get(Config, 'USE_NGROK', 'false') === 'true'; +const useWebProxy = get(Config, 'USE_WEB_PROXY', 'true') === 'true'; const expensifyComWithProxy = getPlatform() === 'web' && useWebProxy ? '/' : expensifyURL; // Throw errors on dev if config variables are not set correctly @@ -58,8 +57,8 @@ export default { DEFAULT_SECURE_API_ROOT: secureURLRoot, STAGING_API_ROOT: stagingExpensifyURL, STAGING_SECURE_API_ROOT: stagingSecureExpensifyUrl, - PARTNER_NAME: lodashGet(Config, 'EXPENSIFY_PARTNER_NAME', 'chat-expensify-com'), - PARTNER_PASSWORD: lodashGet(Config, 'EXPENSIFY_PARTNER_PASSWORD', 'e21965746fd75f82bb66'), + PARTNER_NAME: get(Config, 'EXPENSIFY_PARTNER_NAME', 'chat-expensify-com'), + PARTNER_PASSWORD: get(Config, 'EXPENSIFY_PARTNER_PASSWORD', 'e21965746fd75f82bb66'), EXPENSIFY_CASH_REFERER: 'ecash', CONCIERGE_URL_PATHNAME: 'concierge/', DEVPORTAL_URL_PATHNAME: '_devportal/', @@ -69,8 +68,8 @@ export default { IS_IN_STAGING: ENVIRONMENT === CONST.ENVIRONMENT.STAGING, IS_USING_LOCAL_WEB: useNgrok || expensifyURLRoot.includes('dev'), PUSHER: { - APP_KEY: lodashGet(Config, 'PUSHER_APP_KEY', '268df511a204fbb60884'), - SUFFIX: lodashGet(Config, 'PUSHER_DEV_SUFFIX', ''), + APP_KEY: get(Config, 'PUSHER_APP_KEY', '268df511a204fbb60884'), + SUFFIX: get(Config, 'PUSHER_DEV_SUFFIX', ''), CLUSTER: 'mt1', }, SITE_TITLE: 'New Expensify', @@ -78,11 +77,11 @@ export default { DEFAULT: '/favicon.png', UNREAD: '/favicon-unread.png', }, - CAPTURE_METRICS: lodashGet(Config, 'CAPTURE_METRICS', 'false') === 'true', - ONYX_METRICS: lodashGet(Config, 'ONYX_METRICS', 'false') === 'true', - DEV_PORT: process.env.PORT || 8082, - E2E_TESTING: lodashGet(Config, 'E2E_TESTING', 'false') === 'true', - SEND_CRASH_REPORTS: lodashGet(Config, 'SEND_CRASH_REPORTS', 'false') === 'true', + CAPTURE_METRICS: get(Config, 'CAPTURE_METRICS', 'false') === 'true', + ONYX_METRICS: get(Config, 'ONYX_METRICS', 'false') === 'true', + DEV_PORT: process.env.PORT ?? 8082, + E2E_TESTING: get(Config, 'E2E_TESTING', 'false') === 'true', + SEND_CRASH_REPORTS: get(Config, 'SEND_CRASH_REPORTS', 'false') === 'true', IS_USING_WEB_PROXY: getPlatform() === 'web' && useWebProxy, APPLE_SIGN_IN: { SERVICE_ID: 'com.chat.expensify.chat.AppleSignIn', @@ -92,4 +91,4 @@ export default { WEB_CLIENT_ID: '921154746561-gpsoaqgqfuqrfsjdf8l7vohfkfj7b9up.apps.googleusercontent.com', IOS_CLIENT_ID: '921154746561-s3uqn2oe4m85tufi6mqflbfbuajrm2i3.apps.googleusercontent.com', }, -}; +} as const; diff --git a/src/libs/getPlatform/index.website.js b/src/libs/getPlatform/index.js similarity index 100% rename from src/libs/getPlatform/index.website.js rename to src/libs/getPlatform/index.js