19 lines
760 B
JavaScript
19 lines
760 B
JavaScript
|
import { IniSectionType } from "@smithy/types";
|
||
|
import { CONFIG_PREFIX_SEPARATOR } from "./loadSharedConfigFiles";
|
||
|
export const getConfigData = (data) => Object.entries(data)
|
||
|
.filter(([key]) => {
|
||
|
const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR);
|
||
|
if (indexOfSeparator === -1) {
|
||
|
return false;
|
||
|
}
|
||
|
return Object.values(IniSectionType).includes(key.substring(0, indexOfSeparator));
|
||
|
})
|
||
|
.reduce((acc, [key, value]) => {
|
||
|
const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR);
|
||
|
const updatedKey = key.substring(0, indexOfSeparator) === IniSectionType.PROFILE ? key.substring(indexOfSeparator + 1) : key;
|
||
|
acc[updatedKey] = value;
|
||
|
return acc;
|
||
|
}, {
|
||
|
...(data.default && { default: data.default }),
|
||
|
});
|