42 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			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 _;
 | 
						|
}
 |