UNPKG

tencentcloud-edgeone-migration-nodejs-v2

Version:

tencentcloud cdn config copy to edgeone

150 lines (143 loc) 3.56 kB
const utils = require('../utils'); const { t } = require("../../i18n/trans"); const genLog = require("../../logGenerator"); function CacheKey(domain, domainConfig, ruleTransferLog) { const keyConfig = domainConfig.CacheKey; if (!keyConfig) { ruleTransferLog.push({ config: t('缓存键规则配置(CacheKey)'), result: t('未配置'), detail: '' }); genLog.defaultLog(`${t('缓存键规则配置(CacheKey)')}${t('未配置')}`) return null; } const { KeyRules } = keyConfig; const eoRules = []; KeyRules.forEach(rule => { let eoRule = { 'Conditions': [ { 'Conditions': [ { 'Operator': 'equal', 'Target': rule.RuleType === 'path' ? 'url' :utils.getTarget(rule.RuleType), 'IgnoreCase': false, 'Values': utils.genOriginValue(rule) } ] } ], 'Actions': [{ 'NormalAction': { 'Action': 'CacheKey', 'Parameters': [ { 'Name': 'FullUrlCache', 'Values': [rule.FullUrlCache] }, { 'Name': 'Type', 'Values': [ 'QueryString' ] }, { 'Name': 'Switch', 'Values': [rule.QueryString.Switch] }, { 'Name': 'Value', 'Values': rule.QueryString.Value ? rule.QueryString.Value.split(';') : [] } ] } }] }; if (rule.QueryString.Action) { eoRule.Actions[0].NormalAction.Parameters.push({ 'Name': 'Action', 'Values': [rule.QueryString.Action] }); } eoRule.Actions[0].NormalAction.Parameters.push({ 'Name': 'Type', 'Values': [ 'IgnoreCase' ] }, { 'Name': 'Switch', 'Values': [rule.IgnoreCase] }); eoRules.push(eoRule); }); let allFileRule = { 'Conditions': [ { 'Conditions': [ { 'Operator': 'equal', 'Target': 'host', 'Values': [ 'all' ] } ] } ], 'Actions': [ { 'NormalAction': { 'Action': 'CacheKey', 'Parameters': [ { 'Name': 'FullUrlCache', 'Values': [keyConfig.FullUrlCache] }, { 'Name': 'Type', 'Values': [ 'QueryString' ] }, { 'Name': 'Switch', 'Values': [keyConfig.QueryString.Switch] }, { 'Name': 'Value', 'Values': keyConfig.QueryString.Value ? keyConfig.QueryString.Value.split(';') : [] } ] } } ] }; if (keyConfig.QueryString.Action) { allFileRule.Actions[0].NormalAction.Parameters.push({ 'Name': 'Action', 'Values': [keyConfig.QueryString.Action] }); } allFileRule.Actions[0].NormalAction.Parameters.push({ 'Name': 'Type', 'Values': [ 'IgnoreCase' ] }, { 'Name': 'Switch', 'Values': [keyConfig.IgnoreCase] }); eoRules.unshift(allFileRule); ruleTransferLog.push({ config: t('缓存键规则配置(CacheKey)'), result: t('成功'), detail: '' }); genLog.successLog(`${t('缓存键规则配置(CacheKey)')}${t('成功')}`) return { 'Rules': eoRules, 'Tags': [] }; } module.exports = CacheKey;