mirror of https://github.com/jkjoy/sunpeiwen.git
42 lines
1.6 KiB
TypeScript
42 lines
1.6 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 _;
|
|
}
|