interface Config { targets?: Record; } interface TargetsAndBrowsersListResult { targets: Record; browserslist: string[]; } export default function getTargetsAndBrowsersList({ config }: { config: Config }): TargetsAndBrowsersListResult { let targets: Record = config.targets || {}; targets = Object.keys(targets) .reduce((memo, key) => { memo[key] = targets[key]; return memo; }, {} as Record); let browserslist: string[]; if (Array.isArray(targets.browsers)) { browserslist = targets.browsers; } else { browserslist = Object.keys(targets).map(key => `${key} >= ${targets[key]}`); } return { targets, browserslist, }; }