hexo/node_modules/ali-oss/lib/common/utils/formatInventoryConfig.ts

42 lines
1.5 KiB
TypeScript

import { dataFix } from '../utils/dataFix';
import { isObject } from '../utils/isObject';
import { isArray } from '../utils/isArray';
import { formatObjKey } from '../utils/formatObjKey';
export function formatInventoryConfig(inventoryConfig, toArray = false) {
if (toArray && isObject(inventoryConfig)) inventoryConfig = [inventoryConfig];
if (isArray(inventoryConfig)) {
inventoryConfig = inventoryConfig.map(formatFn);
} else {
inventoryConfig = formatFn(inventoryConfig);
}
return inventoryConfig;
}
function formatFn(_) {
dataFix(_, { bool: ['IsEnabled'] }, conf => {
// prefix
conf.prefix = conf.Filter.Prefix;
delete conf.Filter;
// OSSBucketDestination
conf.OSSBucketDestination = conf.Destination.OSSBucketDestination;
// OSSBucketDestination.rolename
conf.OSSBucketDestination.rolename = conf.OSSBucketDestination.RoleArn.replace(/.*\//, '');
delete conf.OSSBucketDestination.RoleArn;
// OSSBucketDestination.bucket
conf.OSSBucketDestination.bucket = conf.OSSBucketDestination.Bucket.replace(/.*:::/, '');
delete conf.OSSBucketDestination.Bucket;
delete conf.Destination;
// frequency
conf.frequency = conf.Schedule.Frequency;
delete conf.Schedule.Frequency;
// optionalFields
if (conf?.OptionalFields?.Field && !isArray(conf.OptionalFields?.Field))
conf.OptionalFields.Field = [conf.OptionalFields.Field];
});
// firstLowerCase
_ = formatObjKey(_, 'firstLowerCase', { exclude: ['OSSBucketDestination', 'SSE-OSS', 'SSE-KMS'] });
return _;
}