sunmao-sdk
Version:
榫卯-开箱即用赋能-sdk
75 lines (65 loc) • 2.25 kB
JavaScript
;
import { CP } from "..";
/**
* 接入外部服务时
* 以线上为准则,外部服务的稳定性第一
* 避免外部服务预发影响本服务预发
*/
// 依赖宫廷的转发网关
export const redirectUrl = `https://serverless-gateway.alibtrip.com/redirect`;
// 字典统一走其他数据来源
export const getDictionaries = `https://admin.alibtrip.com/enum/dictionary/queryEnum.action`;
/**
* 支持HSF代理
* 由于HSF环境特性,额外提供此功能
* 外部服务不稳定性由用户兜底
* @returns 环境对应服务地址
*/
export const getHsfHost = () => {
switch (CP.getSunmaoParams().env) {
case "prod":
return "https://fl-btrip-cp.fc.alibaba-inc.com";
case "pre":
return "https://fl-btrip-cp.pre-fc.alibaba-inc.com";
default:
return "http://fl-btrip-cp.fc.alibaba.net";
}
};
// // 榫卯平台 线上地址
export const host = "https://fl-btrip-cp.fc.alibaba-inc.com";
// export const host = "https://fl-btrip-cp.pre-fc.alibaba-inc.com"; // TODOdev 测试预发环境,使用
// export const getPageDetails = `${getHsfHost()}/ext/page/details`; // TODOdev 榫卯平台本地开发时,使用
export const getPageDetails = `${host}/ext/page/details`;
export const getDictionariesOld = `${host}/ext/dic/select/list`;
export const getProDictionaries = `${host}/api/dic/project/list`;
export const sunmaoLog = `${host}/ext/sunmao/log`;
export const aclCheckPermissions = `/api/acl/checkPermissions`;
/**
* 用于日志系统记录判断
* @param {请求链接} url
* @returns 日志是否跳过该请求
*/
export const isSkipLog = url => {
return !(
url.includes(sunmaoLog) // 过滤日志请求
// 不在过滤字典获取、schema获取,用于埋点
//|| url.includes(getPageDetails) ||
// url.includes(getDictionaries) ||
// url.includes(getDictionariesOld)
);
};
/**
* 用于日志系统记录判断
* @param {请求链接} url
* @param {请求体} body
* @returns 是否为日志请求
*/
export const isLogFetch = (url, body) => {
try {
const data = JSON.parse(body);
return (
data.url === sunmaoLog && url.includes(redirectUrl) // 日志请求
); // 代理转发
} catch {}
return false;
};