From bc4ccda73db96671ca2f80a488fa0c5c695bf017 Mon Sep 17 00:00:00 2001 From: Leonardo Mendoza Date: Wed, 8 Jan 2025 16:28:49 -0600 Subject: [PATCH] 9562-implement-dynamic-environment-variable-loading-for-single-artifact-deployment --- angular.json | 2 +- package.json | 9 +- src/assets/local-dev-environment.js | 339 +++++----------------------- 3 files changed, 68 insertions(+), 282 deletions(-) diff --git a/angular.json b/angular.json index dc3d689a6..ed6e607c7 100644 --- a/angular.json +++ b/angular.json @@ -411,7 +411,7 @@ "./node_modules/@angular/material/prebuilt-themes/indigo-pink.css", "src/styles.scss" ], - "scripts": ["src/assets/dev-runtime-environment-setter.js"], + "scripts": ["src/assets/local-dev-environment.js"], "assets": ["src/favicon.ico", "src/assets", "src/manifest.json"], "sourceMap": true } diff --git a/package.json b/package.json index 074e7cdc1..0d019d25a 100644 --- a/package.json +++ b/package.json @@ -2,15 +2,16 @@ "name": "ng-orcid", "version": "0.0.0", "scripts": { - "start-local": "ts-node -P scripts/tsconfig.json scripts/runtime-environment-setter.dev-runtime.ts && ng serve --disable-host-check --host 0.0.0.0", - "start": "ts-node -P scripts/tsconfig.json scripts/runtime-environment-setter.dev-runtime.ts && ng serve --configuration=local-qa --host 0.0.0.0", + "start-local": "npm run build-runtime-env && ng serve --disable-host-check --host 0.0.0.0", + "start": "npm run build-runtime-env && ng serve --configuration=local-qa --host 0.0.0.0", "start-sandbox": "ng serve --configuration=local-sandbox --host 0.0.0.0", "start:en": "ng serve --configuration=local-qa-en --disable-host-check", "start:ar": "ng serve --configuration=local-qa-ar --disable-host-check", "start:fr": "ng serve --configuration=local-qa-fr --disable-host-check", "start:xx": "ng serve --configuration=local-qa-xx --disable-host-check", - "test": "ng test", - "test-headless": "ng test --watch=false --browsers=ChromeHeadless", + "test": "npm run build-runtime-env && ng test", + "test-headless": "npm run build-runtime-env && ng test --watch=false --browsers=ChromeHeadless", + "build-runtime-env": "ts-node -P scripts/tsconfig.json scripts/runtime-environment-setter.dev-runtime.ts", "lint": "echo 'temporally disable Angular linter to until eslint update'", "e2e": "ng e2e", "prebuild": "rimraf dist && yarn build:i18n && yarn build:browserslist", diff --git a/src/assets/local-dev-environment.js b/src/assets/local-dev-environment.js index 4409ddbc8..95397e981 100644 --- a/src/assets/local-dev-environment.js +++ b/src/assets/local-dev-environment.js @@ -1,277 +1,62 @@ -//DO NOT MODIFY THIS environment file directly, to updat this file. -//To update environments please update the files under "/Users/l.mendoza/code/orcid-angular/src/environments" - -;(function () { - // The raw environment objects - var environmentProduction = { - production: true, - debugger: false, - ROBOTS: 'all', - API_NEWS: 'https://info.orcid.org/feed/', - API_PUB: '//pub./v3.0', - API_WEB: '///', - BASE_URL: '///', - INFO_SITE: 'https://info.orcid.org/', - SHOW_TEST_WARNING_BANNER: false, - GOOGLE_ANALYTICS_TESTING_MODE: false, - GOOGLE_TAG_MANAGER: 'GTM-WDKLQXL', - GOOGLE_RECAPTCHA: '6Lfj4AoTAAAAAAjr0x3Gu2RcVpA1-0LJAhV-GRQj', - ZENDESK: 'b8313acd-6439-4894-b431-8c5a2ae9e7cb', - HELP_HERO_ID: 'oYFQMrzFHA', - INSTITUTIONAL_AUTOCOMPLETE_DISPLAY_AMOUNT: 20, - VERBOSE_SNACKBAR_ERRORS_REPORTS: false, - WORDPRESS_S3: 'https://homepage-prod.orcid.org', - WORDPRESS_S3_FALLBACK: 'https://homepage-fallback.orcid.org', - NEW_RELIC_APP: '772335825', - LANGUAGE_MENU_OPTIONS: { - ar: 'العربية', - cs: 'Čeština', - de: 'Deutsch', - en: 'English', - es: 'Español', - fr: 'Français', - it: 'Italiano', - ja: '日本語', - ko: '한국어', - pl: 'Polski', - pt: 'Português', - ru: 'Русский', - tr: 'Türkçe', - 'zh-CN': '简体中文', - 'zh-TW': '繁體中文', - }, - proxyMode: null, - CAN_DISABLE_TEST_WARNING_BANNER: null, - } - var environmentQa = { - production: true, - debugger: true, - ROBOTS: 'noindex, nofollow', - API_NEWS: 'https://info.qa.orcid.org/feed/', - API_PUB: '//pub./v3.0', - API_WEB: '///', - BASE_URL: '///', - INFO_SITE: 'https://info.qa.orcid.org/', - GOOGLE_ANALYTICS_TESTING_MODE: true, - GOOGLE_TAG_MANAGER: 'GTM-TRLHLRZ', - GOOGLE_RECAPTCHA: '6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI', - ZENDESK: 'b8313acd-6439-4894-b431-8c5a2ae9e7cb', - HELP_HERO_ID: 'oYFQMrzFHA', - SHOW_TEST_WARNING_BANNER: true, - CAN_DISABLE_TEST_WARNING_BANNER: true, - INSTITUTIONAL_AUTOCOMPLETE_DISPLAY_AMOUNT: 20, - VERBOSE_SNACKBAR_ERRORS_REPORTS: true, - WORDPRESS_S3: 'https://homepage-qa.orcid.org', - WORDPRESS_S3_FALLBACK: 'https://homepage-fallback.orcid.org', - NEW_RELIC_APP: '772335827', - LANGUAGE_MENU_OPTIONS: { - ar: 'العربية', - cs: 'Čeština', - de: 'Deutsch', - en: 'English', - es: 'Español', - fr: 'Français', - it: 'Italiano', - ja: '日本語', - ko: '한국어', - pl: 'Polski', - pt: 'Português', - ru: 'Русский', - tr: 'Türkçe', - 'zh-CN': '简体中文', - 'zh-TW': '繁體中文', - xx: '** xx', - src: '** source', - lr: '** lr', - rl: '** rl', - uk: '** Ukrainian', - ca: '** Catalan', - }, - proxyMode: false, - } - var environmentSandbox = { - production: true, - debugger: false, - ROBOTS: 'noindex, nofollow', - API_NEWS: 'https://info.qa.orcid.org/feed/', - API_PUB: '//pub./v3.0', - API_WEB: '///', - BASE_URL: '///', - INFO_SITE: 'https://info.qa.orcid.org/', - GOOGLE_ANALYTICS_TESTING_MODE: false, - GOOGLE_TAG_MANAGER: 'GTM-M9Z7DHS', - GOOGLE_RECAPTCHA: '6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI', - HELP_HERO_ID: 'oYFQMrzFHA', - ZENDESK: null, - SHOW_TEST_WARNING_BANNER: true, - CAN_DISABLE_TEST_WARNING_BANNER: false, - INSTITUTIONAL_AUTOCOMPLETE_DISPLAY_AMOUNT: 20, - VERBOSE_SNACKBAR_ERRORS_REPORTS: false, - WORDPRESS_S3: 'https://homepage-prod.orcid.org', - WORDPRESS_S3_FALLBACK: 'https://homepage-fallback.orcid.org', - NEW_RELIC_APP: '772335828', - LANGUAGE_MENU_OPTIONS: { - ar: 'العربية', - cs: 'Čeština', - de: 'Deutsch', - en: 'English', - es: 'Español', - fr: 'Français', - it: 'Italiano', - ja: '日本語', - ko: '한국어', - pl: 'Polski', - pt: 'Português', - ru: 'Русский', - tr: 'Türkçe', - 'zh-CN': '简体中文', - 'zh-TW': '繁體中文', - }, - proxyMode: false, - } - var environment4200 = { - production: false, - debugger: true, - ROBOTS: 'all', - API_NEWS: 'https://www.mocky.io/v2/5dced45b3000007300931ce8', - API_PUB: '///v3.0', - API_WEB: '///', - BASE_URL: '///', - INFO_SITE: 'https://info.orcid.org/', - GOOGLE_ANALYTICS_TESTING_MODE: true, - GOOGLE_TAG_MANAGER: 'GTM-0000000', - GOOGLE_RECAPTCHA: '6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI', - HELP_HERO_ID: 'oYFQMrzFHA', - ZENDESK: null, - SHOW_TEST_WARNING_BANNER: true, - CAN_DISABLE_TEST_WARNING_BANNER: true, - INSTITUTIONAL_AUTOCOMPLETE_DISPLAY_AMOUNT: 50, - VERBOSE_SNACKBAR_ERRORS_REPORTS: true, - WORDPRESS_S3: 'https://homepage-qa.orcid.org', - WORDPRESS_S3_FALLBACK: 'https://homepage-fallback.orcid.org', - NEW_RELIC_APP: '772335827', - LANGUAGE_MENU_OPTIONS: { - ar: 'العربية', - cs: 'Čeština', - de: 'Deutsch', - en: 'English', - es: 'Español', - fr: 'Français', - it: 'Italiano', - ja: '日本語', - ko: '한국어', - pl: 'Polski', - pt: 'Português', - ru: 'Русский', - tr: 'Türkçe', - 'zh-CN': '简体中文', - 'zh-TW': '繁體中文', - xx: '** xx', - src: '** source', - lr: '** lr', - rl: '** rl', - uk: '** Ukrainian', - ca: '** Catalan', - }, - proxyMode: true, - } - var environmentDev = { - production: false, - debugger: true, - ROBOTS: 'all', - API_NEWS: 'https://www.mocky.io/v2/5dced45b3000007300931ce8', - API_PUB: '//pub./v3.0', - API_WEB: '///', - BASE_URL: '///', - INFO_SITE: 'https://info.orcid.org/', - GOOGLE_ANALYTICS_TESTING_MODE: true, - GOOGLE_TAG_MANAGER: 'GTM-0000000', - GOOGLE_RECAPTCHA: '6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI', - HELP_HERO_ID: 'oYFQMrzFHA', - ZENDESK: null, - SHOW_TEST_WARNING_BANNER: true, - CAN_DISABLE_TEST_WARNING_BANNER: true, - INSTITUTIONAL_AUTOCOMPLETE_DISPLAY_AMOUNT: 50, - VERBOSE_SNACKBAR_ERRORS_REPORTS: true, - WORDPRESS_S3: 'https://homepage-qa.orcid.org', - WORDPRESS_S3_FALLBACK: 'https://homepage-fallback.orcid.org', - NEW_RELIC_APP: '772335827', - LANGUAGE_MENU_OPTIONS: { - ar: 'العربية', - cs: 'Čeština', - de: 'Deutsch', - en: 'English', - es: 'Español', - fr: 'Français', - it: 'Italiano', - ja: '日本語', - ko: '한국어', - pl: 'Polski', - pt: 'Português', - ru: 'Русский', - tr: 'Türkçe', - 'zh-CN': '简体中文', - 'zh-TW': '繁體中文', - xx: '** xx', - src: '** source', - lr: '** lr', - rl: '** rl', - uk: '** Ukrainian', - ca: '** Catalan', - }, - proxyMode: false, - } - - function getCurrentLeanDomain() { - var port = window.location.port ? ':' + window.location.port : '' - // e.g. "qa.myorg.com" -> ["qa", "myorg", "com"] - // .slice(-2) -> ["myorg", "com"] - return window.location.hostname.split('.').slice(-2).join('.') + port - } - - function getSubDomain() { - // e.g. "qa.myorg.com" -> ["qa", "myorg", "com"] - // .slice(0, -2) -> ["qa"] - var subdomain = window.location.hostname.split('.').slice(0, -2).join('.') - return subdomain ? subdomain + '.' : '' - } - - function replaceEnvironmentVars(env) { - if (!env) return - if (env.API_WEB) { - env.API_WEB = env.API_WEB.replace('', getSubDomain()).replace( - '', - getCurrentLeanDomain() - ) - } - if (env.BASE_URL) { - env.BASE_URL = env.BASE_URL.replace( - '', - getSubDomain() - ).replace('', getCurrentLeanDomain()) - } - if (env.API_PUB) { - env.API_PUB = env.API_PUB.replace('', getSubDomain()).replace( - '', - getCurrentLeanDomain() - ) - } - } - - var domain = window.location.hostname + window.location.pathname - var chosenEnv = environmentProduction // default to production - - if (domain.includes('qa.orcid.org')) { - chosenEnv = environmentQa - } else if (domain.includes('sandbox.orcid.org')) { - chosenEnv = environmentSandbox - } else if (domain.includes('localhost:4200')) { - chosenEnv = environment4200 - } else if (domain.includes('dev.orcid.org')) { - chosenEnv = environmentDev - } - - replaceEnvironmentVars(chosenEnv) - - window.runtimeEnvironment = chosenEnv -})() +//DO NOT MODIFY THIS environment file directly, to updat this file. +//To update environments please update the files under "/Users/l.mendoza/code/orcid-angular/src/environments" + + (function() { + // The raw environment objects + var environmentProduction = {"production":true,"debugger":false,"ROBOTS":"all","API_NEWS":"https://info.orcid.org/feed/","API_PUB":"//pub./v3.0","API_WEB":"///","BASE_URL":"///","INFO_SITE":"https://info.orcid.org/","SHOW_TEST_WARNING_BANNER":false,"GOOGLE_ANALYTICS_TESTING_MODE":false,"GOOGLE_TAG_MANAGER":"GTM-WDKLQXL","GOOGLE_RECAPTCHA":"6Lfj4AoTAAAAAAjr0x3Gu2RcVpA1-0LJAhV-GRQj","ZENDESK":"b8313acd-6439-4894-b431-8c5a2ae9e7cb","HELP_HERO_ID":"oYFQMrzFHA","INSTITUTIONAL_AUTOCOMPLETE_DISPLAY_AMOUNT":20,"VERBOSE_SNACKBAR_ERRORS_REPORTS":false,"WORDPRESS_S3":"https://homepage-prod.orcid.org","WORDPRESS_S3_FALLBACK":"https://homepage-fallback.orcid.org","NEW_RELIC_APP":"772335825","LANGUAGE_MENU_OPTIONS":{"ar":"العربية","cs":"Čeština","de":"Deutsch","en":"English","es":"Español","fr":"Français","it":"Italiano","ja":"日本語","ko":"한국어","pl":"Polski","pt":"Português","ru":"Русский","tr":"Türkçe","zh-CN":"简体中文","zh-TW":"繁體中文"},"proxyMode":null,"CAN_DISABLE_TEST_WARNING_BANNER":null}; + var environmentQa = {"production":true,"debugger":true,"ROBOTS":"noindex, nofollow","API_NEWS":"https://info.qa.orcid.org/feed/","API_PUB":"//pub./v3.0","API_WEB":"///","BASE_URL":"///","INFO_SITE":"https://info.qa.orcid.org/","GOOGLE_ANALYTICS_TESTING_MODE":true,"GOOGLE_TAG_MANAGER":"GTM-TRLHLRZ","GOOGLE_RECAPTCHA":"6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI","ZENDESK":"b8313acd-6439-4894-b431-8c5a2ae9e7cb","HELP_HERO_ID":"oYFQMrzFHA","SHOW_TEST_WARNING_BANNER":true,"CAN_DISABLE_TEST_WARNING_BANNER":true,"INSTITUTIONAL_AUTOCOMPLETE_DISPLAY_AMOUNT":20,"VERBOSE_SNACKBAR_ERRORS_REPORTS":true,"WORDPRESS_S3":"https://homepage-qa.orcid.org","WORDPRESS_S3_FALLBACK":"https://homepage-fallback.orcid.org","NEW_RELIC_APP":"772335827","LANGUAGE_MENU_OPTIONS":{"ar":"العربية","cs":"Čeština","de":"Deutsch","en":"English","es":"Español","fr":"Français","it":"Italiano","ja":"日本語","ko":"한국어","pl":"Polski","pt":"Português","ru":"Русский","tr":"Türkçe","zh-CN":"简体中文","zh-TW":"繁體中文","xx":"** xx","src":"** source","lr":"** lr","rl":"** rl","uk":"** Ukrainian","ca":"** Catalan"},"proxyMode":false}; + var environmentSandbox = {"production":true,"debugger":false,"ROBOTS":"noindex, nofollow","API_NEWS":"https://info.qa.orcid.org/feed/","API_PUB":"//pub./v3.0","API_WEB":"///","BASE_URL":"///","INFO_SITE":"https://info.qa.orcid.org/","GOOGLE_ANALYTICS_TESTING_MODE":false,"GOOGLE_TAG_MANAGER":"GTM-M9Z7DHS","GOOGLE_RECAPTCHA":"6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI","HELP_HERO_ID":"oYFQMrzFHA","ZENDESK":null,"SHOW_TEST_WARNING_BANNER":true,"CAN_DISABLE_TEST_WARNING_BANNER":false,"INSTITUTIONAL_AUTOCOMPLETE_DISPLAY_AMOUNT":20,"VERBOSE_SNACKBAR_ERRORS_REPORTS":false,"WORDPRESS_S3":"https://homepage-prod.orcid.org","WORDPRESS_S3_FALLBACK":"https://homepage-fallback.orcid.org","NEW_RELIC_APP":"772335828","LANGUAGE_MENU_OPTIONS":{"ar":"العربية","cs":"Čeština","de":"Deutsch","en":"English","es":"Español","fr":"Français","it":"Italiano","ja":"日本語","ko":"한국어","pl":"Polski","pt":"Português","ru":"Русский","tr":"Türkçe","zh-CN":"简体中文","zh-TW":"繁體中文"},"proxyMode":false}; + var environment4200 = {"production":false,"debugger":true,"ROBOTS":"all","API_NEWS":"https://www.mocky.io/v2/5dced45b3000007300931ce8","API_PUB":"///v3.0","API_WEB":"///","BASE_URL":"///","INFO_SITE":"https://info.orcid.org/","GOOGLE_ANALYTICS_TESTING_MODE":true,"GOOGLE_TAG_MANAGER":"GTM-0000000","GOOGLE_RECAPTCHA":"6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI","HELP_HERO_ID":"oYFQMrzFHA","ZENDESK":null,"SHOW_TEST_WARNING_BANNER":true,"CAN_DISABLE_TEST_WARNING_BANNER":true,"INSTITUTIONAL_AUTOCOMPLETE_DISPLAY_AMOUNT":50,"VERBOSE_SNACKBAR_ERRORS_REPORTS":true,"WORDPRESS_S3":"https://homepage-qa.orcid.org","WORDPRESS_S3_FALLBACK":"https://homepage-fallback.orcid.org","NEW_RELIC_APP":"772335827","LANGUAGE_MENU_OPTIONS":{"ar":"العربية","cs":"Čeština","de":"Deutsch","en":"English","es":"Español","fr":"Français","it":"Italiano","ja":"日本語","ko":"한국어","pl":"Polski","pt":"Português","ru":"Русский","tr":"Türkçe","zh-CN":"简体中文","zh-TW":"繁體中文","xx":"** xx","src":"** source","lr":"** lr","rl":"** rl","uk":"** Ukrainian","ca":"** Catalan"},"proxyMode":true}; + var environmentDev = {"production":false,"debugger":true,"ROBOTS":"all","API_NEWS":"https://www.mocky.io/v2/5dced45b3000007300931ce8","API_PUB":"//pub./v3.0","API_WEB":"///","BASE_URL":"///","INFO_SITE":"https://info.orcid.org/","GOOGLE_ANALYTICS_TESTING_MODE":true,"GOOGLE_TAG_MANAGER":"GTM-0000000","GOOGLE_RECAPTCHA":"6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI","HELP_HERO_ID":"oYFQMrzFHA","ZENDESK":null,"SHOW_TEST_WARNING_BANNER":true,"CAN_DISABLE_TEST_WARNING_BANNER":true,"INSTITUTIONAL_AUTOCOMPLETE_DISPLAY_AMOUNT":50,"VERBOSE_SNACKBAR_ERRORS_REPORTS":true,"WORDPRESS_S3":"https://homepage-qa.orcid.org","WORDPRESS_S3_FALLBACK":"https://homepage-fallback.orcid.org","NEW_RELIC_APP":"772335827","LANGUAGE_MENU_OPTIONS":{"ar":"العربية","cs":"Čeština","de":"Deutsch","en":"English","es":"Español","fr":"Français","it":"Italiano","ja":"日本語","ko":"한국어","pl":"Polski","pt":"Português","ru":"Русский","tr":"Türkçe","zh-CN":"简体中文","zh-TW":"繁體中文","xx":"** xx","src":"** source","lr":"** lr","rl":"** rl","uk":"** Ukrainian","ca":"** Catalan"},"proxyMode":false}; + + function getCurrentLeanDomain() { + var port = window.location.port ? ':' + window.location.port : ''; + // e.g. "qa.myorg.com" -> ["qa", "myorg", "com"] + // .slice(-2) -> ["myorg", "com"] + return window.location.hostname.split('.').slice(-2).join('.') + port; + } + + function getSubDomain() { + // e.g. "qa.myorg.com" -> ["qa", "myorg", "com"] + // .slice(0, -2) -> ["qa"] + var subdomain = window.location.hostname.split('.').slice(0, -2).join('.'); + return subdomain ? subdomain + '.' : ''; + } + + function replaceEnvironmentVars(env) { + if (!env) return; + if (env.API_WEB) { + env.API_WEB = env.API_WEB + .replace('', getSubDomain()) + .replace('', getCurrentLeanDomain()); + } + if (env.BASE_URL) { + env.BASE_URL = env.BASE_URL + .replace('', getSubDomain()) + .replace('', getCurrentLeanDomain()); + } + if (env.API_PUB) { + env.API_PUB = env.API_PUB + .replace('', getSubDomain()) + .replace('', getCurrentLeanDomain()); + } + } + + var domain = window.location.hostname + window.location.pathname; + var chosenEnv = environmentProduction; // default to production + + if (domain.includes('qa.orcid.org')) { + chosenEnv = environmentQa; + } else if (domain.includes('sandbox.orcid.org')) { + chosenEnv = environmentSandbox; + } else if (domain.includes('localhost:4200')) { + chosenEnv = environment4200; + } else if (domain.includes('dev.orcid.org')) { + chosenEnv = environmentDev; + } + + replaceEnvironmentVars(chosenEnv); + + window.runtimeEnvironment = chosenEnv; + })(); + \ No newline at end of file