formatInventoryConfig.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import { dataFix } from '../utils/dataFix';
  2. import { isObject } from '../utils/isObject';
  3. import { isArray } from '../utils/isArray';
  4. import { formatObjKey } from '../utils/formatObjKey';
  5. export function formatInventoryConfig(inventoryConfig, toArray = false) {
  6. if (toArray && isObject(inventoryConfig)) inventoryConfig = [inventoryConfig];
  7. if (isArray(inventoryConfig)) {
  8. inventoryConfig = inventoryConfig.map(formatFn);
  9. } else {
  10. inventoryConfig = formatFn(inventoryConfig);
  11. }
  12. return inventoryConfig;
  13. }
  14. function formatFn(_) {
  15. dataFix(_, { bool: ['IsEnabled'] }, conf => {
  16. // prefix
  17. conf.prefix = conf.Filter.Prefix;
  18. delete conf.Filter;
  19. // OSSBucketDestination
  20. conf.OSSBucketDestination = conf.Destination.OSSBucketDestination;
  21. // OSSBucketDestination.rolename
  22. conf.OSSBucketDestination.rolename = conf.OSSBucketDestination.RoleArn.replace(/.*\//, '');
  23. delete conf.OSSBucketDestination.RoleArn;
  24. // OSSBucketDestination.bucket
  25. conf.OSSBucketDestination.bucket = conf.OSSBucketDestination.Bucket.replace(/.*:::/, '');
  26. delete conf.OSSBucketDestination.Bucket;
  27. delete conf.Destination;
  28. // frequency
  29. conf.frequency = conf.Schedule.Frequency;
  30. delete conf.Schedule.Frequency;
  31. // optionalFields
  32. if (conf?.OptionalFields?.Field && !isArray(conf.OptionalFields?.Field))
  33. conf.OptionalFields.Field = [conf.OptionalFields.Field];
  34. });
  35. // firstLowerCase
  36. _ = formatObjKey(_, 'firstLowerCase', { exclude: ['OSSBucketDestination', 'SSE-OSS', 'SSE-KMS'] });
  37. return _;
  38. }