21 lines
619 B
JavaScript
21 lines
619 B
JavaScript
|
/**
|
||
|
* Internal dependencies
|
||
|
*/
|
||
|
import { fromEntriesPolyfill } from './from-entries-polyfill';
|
||
|
|
||
|
/**
|
||
|
* Get an array of selected shipping rates keyed by Package ID.
|
||
|
*
|
||
|
* @param {Array} shippingRates Array of shipping rates.
|
||
|
* @return {Object} Object containing the package IDs and selected rates in the format: { [packageId:string]: rateId:string }
|
||
|
*/
|
||
|
export const deriveSelectedShippingRates = ( shippingRates ) =>
|
||
|
fromEntriesPolyfill(
|
||
|
shippingRates.map(
|
||
|
( { package_id: packageId, shipping_rates: packageRates } ) => [
|
||
|
packageId,
|
||
|
packageRates.find( ( rate ) => rate.selected )?.rate_id,
|
||
|
]
|
||
|
)
|
||
|
);
|