Grabbed dndbeyond's source code
``` ~/go/bin/sourcemapper -output ddb -jsurl https://media.dndbeyond.com/character-app/static/js/main.90aa78c5.js ```
This commit is contained in:
@@ -0,0 +1,191 @@
|
||||
const { Constants } = require("@dndbeyond/character-rules-engine/es");
|
||||
enum EnvTypeEnum {
|
||||
PRODUCTION = "production",
|
||||
STAGING = "staging",
|
||||
TEST = "test",
|
||||
DRAFT = "draft",
|
||||
REVIEW = "review",
|
||||
DEVELOPMENT = "development",
|
||||
LOCAL_APP_SHELL = "local_app_shell",
|
||||
}
|
||||
|
||||
const envConfigs = {
|
||||
[EnvTypeEnum.PRODUCTION]: {
|
||||
apiInfo: {
|
||||
[Constants.ApiTypeEnum.WEBSITE]: "https://www.dndbeyond.com",
|
||||
[Constants.ApiTypeEnum.CHARACTER_SERVICE]:
|
||||
"https://character-service.dndbeyond.com",
|
||||
[Constants.ApiTypeEnum.GAME_DATA_SERVICE]:
|
||||
"https://gamedata-service.dndbeyond.com",
|
||||
},
|
||||
gameLogApiEndpoint: "https://www.dndbeyond.com",
|
||||
ddbApiEndpoint: "https://api.dndbeyond.com",
|
||||
diceAssetEndpoint: "https://www.dndbeyond.com/dice",
|
||||
diceApiEndpoint: "https://dice-service.dndbeyond.com",
|
||||
analyticTrackingId: "UA-26524418-48",
|
||||
authEndpoint: "https://auth-service.dndbeyond.com/v1/cobalt-token",
|
||||
env: EnvTypeEnum.PRODUCTION,
|
||||
ddbMediaUrl: "https://www.dndbeyond.com",
|
||||
},
|
||||
[EnvTypeEnum.STAGING]: {
|
||||
apiInfo: {
|
||||
[Constants.ApiTypeEnum.WEBSITE]: "https://stg.dndbeyond.com",
|
||||
[Constants.ApiTypeEnum.CHARACTER_SERVICE]:
|
||||
"https://character-service-stg.dndbeyond.com",
|
||||
[Constants.ApiTypeEnum.GAME_DATA_SERVICE]:
|
||||
"https://gamedata-service-stg.dndbeyond.com",
|
||||
},
|
||||
gameLogApiEndpoint: "https://stg.dndbeyond.com",
|
||||
ddbApiEndpoint: "https://test-api.dndbeyond.com",
|
||||
diceAssetEndpoint: "https://stg.dndbeyond.com/dice",
|
||||
diceApiEndpoint: "https://dice-service-stg.dndbeyond.com",
|
||||
analyticTrackingId: "UA-26524418-48",
|
||||
authEndpoint: "https://auth-service-stg.dndbeyond.com/v1/cobalt-token",
|
||||
env: EnvTypeEnum.STAGING,
|
||||
ddbMediaUrl: "https://www.dndbeyond.com",
|
||||
},
|
||||
[EnvTypeEnum.DRAFT]: {
|
||||
apiInfo: {
|
||||
[Constants.ApiTypeEnum.WEBSITE]: "https://draft.dndbeyond.com",
|
||||
[Constants.ApiTypeEnum.CHARACTER_SERVICE]:
|
||||
"https://character-service-draft.dndbeyond.com",
|
||||
[Constants.ApiTypeEnum.GAME_DATA_SERVICE]:
|
||||
"https://gamedata-service-draft.dndbeyond.com",
|
||||
},
|
||||
gameLogApiEndpoint: "https://stg.dndbeyond.com",
|
||||
ddbApiEndpoint: "https://test-api.dndbeyond.com",
|
||||
diceAssetEndpoint: "https://stg.dndbeyond.com/dice",
|
||||
diceApiEndpoint: "https://dice-service-stg.dndbeyond.com",
|
||||
analyticTrackingId: "UA-26524418-48",
|
||||
authEndpoint: "https://auth-service-stg.dndbeyond.com/v1/cobalt-token",
|
||||
env: EnvTypeEnum.DRAFT,
|
||||
ddbMediaUrl: "https://www.dndbeyond.com",
|
||||
},
|
||||
[EnvTypeEnum.REVIEW]: {
|
||||
apiInfo: {
|
||||
[Constants.ApiTypeEnum.WEBSITE]: "https://review.dndbeyond.com",
|
||||
[Constants.ApiTypeEnum.CHARACTER_SERVICE]:
|
||||
"https://character-service-review.dndbeyond.com",
|
||||
[Constants.ApiTypeEnum.GAME_DATA_SERVICE]:
|
||||
"https://gamedata-service-review.dndbeyond.com",
|
||||
},
|
||||
gameLogApiEndpoint: "https://stg.dndbeyond.com",
|
||||
ddbApiEndpoint: "https://test-api.dndbeyond.com",
|
||||
diceAssetEndpoint: "https://stg.dndbeyond.com/dice",
|
||||
diceApiEndpoint: "https://dice-service-stg.dndbeyond.com",
|
||||
analyticTrackingId: "UA-26524418-48",
|
||||
authEndpoint: "https://auth-service-stg.dndbeyond.com/v1/cobalt-token",
|
||||
env: EnvTypeEnum.REVIEW,
|
||||
ddbMediaUrl: "https://www.dndbeyond.com",
|
||||
},
|
||||
[EnvTypeEnum.DEVELOPMENT]: {
|
||||
analyticTrackingId: "UA-26524418-48",
|
||||
env: EnvTypeEnum.DEVELOPMENT,
|
||||
diceAssetEndpoint: process.env.REACT_APP_DICE_ASSET_URL,
|
||||
diceApiEndpoint: process.env.REACT_APP_DICE_API_URL,
|
||||
gameLogApiEndpoint: process.env.REACT_APP_GAMELOG_API_URL,
|
||||
ddbApiEndpoint: process.env.REACT_APP_DDB_API_URL,
|
||||
authEndpoint: `${process.env.REACT_APP_DDB_AUTH_URL}`,
|
||||
apiInfo: {
|
||||
[Constants.ApiTypeEnum.WEBSITE]: process.env.REACT_APP_DDB_BASE_URL,
|
||||
[Constants.ApiTypeEnum.CHARACTER_SERVICE]:
|
||||
process.env.REACT_APP_CHARACTER_SERVICE_URL,
|
||||
[Constants.ApiTypeEnum.GAME_DATA_SERVICE]:
|
||||
process.env.REACT_APP_GAMEDATA_API_URL,
|
||||
},
|
||||
ddbMediaUrl: "https://www.dndbeyond.com",
|
||||
},
|
||||
[EnvTypeEnum.LOCAL_APP_SHELL]: {
|
||||
apiInfo: {
|
||||
[Constants.ApiTypeEnum.WEBSITE]: "http://dev.dndbeyond.com:8080",
|
||||
[Constants.ApiTypeEnum.CHARACTER_SERVICE]:
|
||||
"https://character-service-stg.dndbeyond.com",
|
||||
[Constants.ApiTypeEnum.GAME_DATA_SERVICE]:
|
||||
"https://gamedata-service-stg.dndbeyond.com",
|
||||
},
|
||||
gameLogApiEndpoint: "https://stg.dndbeyond.com",
|
||||
ddbApiEndpoint: "https://test-api.dndbeyond.com",
|
||||
diceAssetEndpoint: "https://stg.dndbeyond.com/dice",
|
||||
diceApiEndpoint: "https://dice-service-stg.dndbeyond.com",
|
||||
analyticTrackingId: "UA-26524418-48",
|
||||
authEndpoint: "https://auth-service-stg.dndbeyond.com/v1/cobalt-token",
|
||||
env: EnvTypeEnum.LOCAL_APP_SHELL,
|
||||
ddbMediaUrl: "https://www.dndbeyond.com",
|
||||
},
|
||||
};
|
||||
|
||||
function getWebsite(env: EnvTypeEnum): string {
|
||||
return envConfigs[env].apiInfo[Constants.ApiTypeEnum.WEBSITE];
|
||||
}
|
||||
|
||||
function getConfig() {
|
||||
let envKey: EnvTypeEnum = EnvTypeEnum.PRODUCTION;
|
||||
switch (window.location.origin) {
|
||||
case getWebsite(EnvTypeEnum.PRODUCTION):
|
||||
envKey = EnvTypeEnum.PRODUCTION;
|
||||
break;
|
||||
case getWebsite(EnvTypeEnum.STAGING):
|
||||
envKey = EnvTypeEnum.STAGING;
|
||||
break;
|
||||
case getWebsite(EnvTypeEnum.DRAFT):
|
||||
envKey = EnvTypeEnum.DRAFT;
|
||||
break;
|
||||
case getWebsite(EnvTypeEnum.REVIEW):
|
||||
envKey = EnvTypeEnum.REVIEW;
|
||||
break;
|
||||
case getWebsite(EnvTypeEnum.DEVELOPMENT):
|
||||
envKey = EnvTypeEnum.DEVELOPMENT;
|
||||
break;
|
||||
case getWebsite(EnvTypeEnum.LOCAL_APP_SHELL):
|
||||
envKey = EnvTypeEnum.LOCAL_APP_SHELL;
|
||||
break;
|
||||
default:
|
||||
envKey = EnvTypeEnum.PRODUCTION;
|
||||
break;
|
||||
}
|
||||
// this is the config for the current environment
|
||||
let config: Record<string, any> = {
|
||||
...envConfigs[envKey],
|
||||
debug: process.env.NODE_ENV !== "production",
|
||||
launchDarkylyClientId: process.env.REACT_APP_LAUNCH_DARKLY_CLIENT_ID,
|
||||
production: process.env.NODE_ENV === "production",
|
||||
version: process.env.REACT_APP_VERSION,
|
||||
analyticTrackingId: process.env.REACT_APP_TRACKING_ID,
|
||||
env: process.env.NODE_ENV,
|
||||
characterServiceBaseUrl: `${
|
||||
envConfigs[envKey].apiInfo[Constants.ApiTypeEnum.CHARACTER_SERVICE]
|
||||
}/character/v5`,
|
||||
userServiceBaseUrl: `${
|
||||
envConfigs[envKey].apiInfo[Constants.ApiTypeEnum.CHARACTER_SERVICE]
|
||||
}/user/v5`,
|
||||
ddbBaseUrl: envConfigs[envKey].apiInfo[Constants.ApiTypeEnum.WEBSITE],
|
||||
environment: envKey,
|
||||
basePathname: "/characters",
|
||||
};
|
||||
return config;
|
||||
}
|
||||
|
||||
// Export config items individually
|
||||
export const {
|
||||
analyticTrackingId,
|
||||
env,
|
||||
diceAssetEndpoint,
|
||||
diceApiEndpoint,
|
||||
gameLogApiEndpoint,
|
||||
ddbApiEndpoint,
|
||||
authEndpoint,
|
||||
apiInfo,
|
||||
ddbMediaUrl,
|
||||
debug,
|
||||
launchDarkylyClientId,
|
||||
production,
|
||||
version,
|
||||
characterServiceBaseUrl,
|
||||
userServiceBaseUrl,
|
||||
ddbBaseUrl,
|
||||
environment,
|
||||
basePathname,
|
||||
} = getConfig();
|
||||
|
||||
// Export the entire config object
|
||||
export default getConfig();
|
||||
Reference in New Issue
Block a user