@alicloud/console-base-conf-parse-env 1.4.1 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,10 +10,9 @@ var _enum = require("../enum");
10
10
  var _getEnv = _interopRequireDefault(require("./get-env"));
11
11
  var _getSite = _interopRequireDefault(require("./get-site"));
12
12
  var _getChannel = _interopRequireDefault(require("./get-channel"));
13
- /**
14
- * 从浏览器、location、cookie 中获得到的静态数据,跟环境、站点、用户有关,项目的运行期间不可能变
15
- */
13
+ // 从浏览器、location、cookie 中获得到的静态数据,跟环境、站点、用户有关,项目的运行期间不可能变
16
14
  function parseEnv() {
15
+ var _hostname$match;
17
16
  var _ref = window,
18
17
  hostname = _ref.location.hostname;
19
18
  var ENV = (0, _getEnv.default)();
@@ -23,26 +22,29 @@ function parseEnv() {
23
22
  var ENV_IS_PRE = ENV === _enum.EEnv.PRE;
24
23
  var ENV_IS_PROD = ENV === _enum.EEnv.PROD;
25
24
 
26
- /**
27
- * 是否虚商
28
- *
29
- * 虚商链接地址规则:`{产品}4service{-地域后缀}.{console.}aliyun.com`
30
- */
25
+ // 是否虚商,虚商链接地址规则:`{产品}4service{-地域后缀}.{console.}aliyun.com`
31
26
  var DOMAIN_IS_4SERVICE = /4service/.test(hostname);
27
+
28
+ // 是否 日常环境
32
29
  var DOMAIN_IS_TEST = /\.test$/.test(hostname);
33
- var FECS_FOR_4SERVICE = 'fecs4service';
34
- // 本地|预发走 pre-fecs,日常|线上走 fecs
35
- var FECS_FOR_CONSOLE = ENV_IS_DEV || ENV_IS_PRE ? 'pre-fecs' : 'fecs';
36
- /**
37
- * 是否「标准」控制台
38
- *
39
- * 有的控制台(甚至有些内部应用会用 console-base,它们的域名不是 .console.aliyun.com),有些逻辑(比如 CloudShell 是否本地打开)需要调整
40
- */
30
+
31
+ // 是否 国内站
41
32
  var DOMAIN_IS_CONSOLE = /\.console\.aliyun\.(?:com|test)$/.test(hostname);
42
- // fecs 域名必须和当前页面域名一致
33
+
34
+ // 是否 国际站
43
35
  var DOMAIN_IS_ALIBABACLOUD = /\.alibabacloud\.(?:com|test)$/.test(hostname);
44
- // 不同的域名,保证可以获取到 SameSite 属性为 Lax 的 cookie,比如 login_aliyunid_ticket,避免误判成未登录
45
- var FECS_HOST = "".concat(DOMAIN_IS_4SERVICE ? FECS_FOR_4SERVICE : FECS_FOR_CONSOLE, ".console.").concat(DOMAIN_IS_ALIBABACLOUD ? 'alibabacloud' : 'aliyun', ".").concat(DOMAIN_IS_TEST ? 'test' : 'com');
36
+
37
+ /**
38
+ * fecs 请求域名规则:`{前缀}.console.{后缀}.{顶级域名}`
39
+ * 前缀:虚商环境 fecs4service || 其他环境:本地&预发 pre-fecs,日常&线上走 fecs
40
+ * 后缀:国内站 aliyun || 国际站 alibabacloud || 其他的比如一国一云获取 domain 最后的路径
41
+ * 顶级域名:测试环境是 test,其他环境是 com
42
+ */
43
+ var prefixDomain = "".concat(DOMAIN_IS_4SERVICE ? 'fecs4service' : ENV_IS_DEV || ENV_IS_PRE ? 'pre-fecs' : 'fecs');
44
+ var suffixDomain = "".concat(DOMAIN_IS_CONSOLE ? 'aliyun' : DOMAIN_IS_ALIBABACLOUD ? 'alibabacloud' : (_hostname$match = hostname.match(/[^.]+(?=\.[^.]+$)/)) === null || _hostname$match === void 0 ? void 0 : _hostname$match[0]);
45
+ var topDomain = "".concat(DOMAIN_IS_TEST ? 'test' : 'com');
46
+ var FECS_HOST = "".concat(prefixDomain, ".console.").concat(suffixDomain, ".").concat(topDomain);
47
+
46
48
  // 这个不推荐用 protocol-relative,Firefox 调用 CORS 时,有可能 request.header.Origin 是 null 而导致接口失败...
47
49
  var FECS_URL_BASE = "https://".concat(FECS_HOST);
48
50
  return {
@@ -4,10 +4,9 @@ import getEnv from './get-env';
4
4
  import getSite from './get-site';
5
5
  import getChannel from './get-channel';
6
6
 
7
- /**
8
- * 从浏览器、location、cookie 中获得到的静态数据,跟环境、站点、用户有关,项目的运行期间不可能变
9
- */
7
+ // 从浏览器、location、cookie 中获得到的静态数据,跟环境、站点、用户有关,项目的运行期间不可能变
10
8
  export default function parseEnv() {
9
+ var _hostname$match;
11
10
  var _ref = window,
12
11
  hostname = _ref.location.hostname;
13
12
  var ENV = getEnv();
@@ -17,26 +16,29 @@ export default function parseEnv() {
17
16
  var ENV_IS_PRE = ENV === EEnv.PRE;
18
17
  var ENV_IS_PROD = ENV === EEnv.PROD;
19
18
 
20
- /**
21
- * 是否虚商
22
- *
23
- * 虚商链接地址规则:`{产品}4service{-地域后缀}.{console.}aliyun.com`
24
- */
19
+ // 是否虚商,虚商链接地址规则:`{产品}4service{-地域后缀}.{console.}aliyun.com`
25
20
  var DOMAIN_IS_4SERVICE = /4service/.test(hostname);
21
+
22
+ // 是否 日常环境
26
23
  var DOMAIN_IS_TEST = /\.test$/.test(hostname);
27
- var FECS_FOR_4SERVICE = 'fecs4service';
28
- // 本地|预发走 pre-fecs,日常|线上走 fecs
29
- var FECS_FOR_CONSOLE = ENV_IS_DEV || ENV_IS_PRE ? 'pre-fecs' : 'fecs';
30
- /**
31
- * 是否「标准」控制台
32
- *
33
- * 有的控制台(甚至有些内部应用会用 console-base,它们的域名不是 .console.aliyun.com),有些逻辑(比如 CloudShell 是否本地打开)需要调整
34
- */
24
+
25
+ // 是否 国内站
35
26
  var DOMAIN_IS_CONSOLE = /\.console\.aliyun\.(?:com|test)$/.test(hostname);
36
- // fecs 域名必须和当前页面域名一致
27
+
28
+ // 是否 国际站
37
29
  var DOMAIN_IS_ALIBABACLOUD = /\.alibabacloud\.(?:com|test)$/.test(hostname);
38
- // 不同的域名,保证可以获取到 SameSite 属性为 Lax 的 cookie,比如 login_aliyunid_ticket,避免误判成未登录
39
- var FECS_HOST = "".concat(DOMAIN_IS_4SERVICE ? FECS_FOR_4SERVICE : FECS_FOR_CONSOLE, ".console.").concat(DOMAIN_IS_ALIBABACLOUD ? 'alibabacloud' : 'aliyun', ".").concat(DOMAIN_IS_TEST ? 'test' : 'com');
30
+
31
+ /**
32
+ * fecs 请求域名规则:`{前缀}.console.{后缀}.{顶级域名}`
33
+ * 前缀:虚商环境 fecs4service || 其他环境:本地&预发 pre-fecs,日常&线上走 fecs
34
+ * 后缀:国内站 aliyun || 国际站 alibabacloud || 其他的比如一国一云获取 domain 最后的路径
35
+ * 顶级域名:测试环境是 test,其他环境是 com
36
+ */
37
+ var prefixDomain = "".concat(DOMAIN_IS_4SERVICE ? 'fecs4service' : ENV_IS_DEV || ENV_IS_PRE ? 'pre-fecs' : 'fecs');
38
+ var suffixDomain = "".concat(DOMAIN_IS_CONSOLE ? 'aliyun' : DOMAIN_IS_ALIBABACLOUD ? 'alibabacloud' : (_hostname$match = hostname.match(/[^.]+(?=\.[^.]+$)/)) === null || _hostname$match === void 0 ? void 0 : _hostname$match[0]);
39
+ var topDomain = "".concat(DOMAIN_IS_TEST ? 'test' : 'com');
40
+ var FECS_HOST = "".concat(prefixDomain, ".console.").concat(suffixDomain, ".").concat(topDomain);
41
+
40
42
  // 这个不推荐用 protocol-relative,Firefox 调用 CORS 时,有可能 request.header.Origin 是 null 而导致接口失败...
41
43
  var FECS_URL_BASE = "https://".concat(FECS_HOST);
42
44
  return {
@@ -1,5 +1,2 @@
1
1
  import { IConfEnv } from '../types';
2
- /**
3
- * 从浏览器、location、cookie 中获得到的静态数据,跟环境、站点、用户有关,项目的运行期间不可能变
4
- */
5
2
  export default function parseEnv(): IConfEnv;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alicloud/console-base-conf-parse-env",
3
- "version": "1.4.1",
3
+ "version": "1.4.2",
4
4
  "description": "ConsoleBase CONF.ENV parse",
5
5
  "license": "MIT",
6
6
  "sideEffects": false,