UNPKG

decentralized-internet

Version:

An NPM library of programs to create decentralized web and distributed computing projects

1 lines 703 B
import{randomObjectId}from"@ecomplus/utils";import fixItemQuantity from"./../lib/fix-item-quantity";import fixSubtotal from"./../lib/fix-subtotal";export default({data:t,save:i},e,[r,a=!1])=>{if(!("string"==typeof r.product_id&&"number"==typeof r.quantity&&r.quantity>=0&&"number"==typeof r.price&&r.price>=0))return null;let n;for(let i=0;i<t.items.length;i++){const e=t.items[i];e.product_id===r.product_id&&e.variation_id===r.variation_id&&(e.quantity+=r.quantity,r.price&&(e.price=r.price),r.final_price&&(e.final_price=r.final_price),n=fixItemQuantity(e))}return n||(r._id||(r._id=randomObjectId()),t.items.push(r),n=fixItemQuantity(r)),fixSubtotal(t),e.emit("addItem",{data:t,item:n}),a&&i(!1),n};