@convermax/api
Version:
A package for searching products via Convermax API
2 lines • 2.09 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ConvermaxYmmApi=t():e.ConvermaxYmmApi=t()}(this,(()=>(()=>{"use strict";var e={d:(t,o)=>{for(var n in o)e.o(o,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:o[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},t={};function o(e){return Object.fromEntries(Object.entries(e).map((e=>{let[t,o]=e;return[t.toLowerCase(),encodeURIComponent(o)]})))}function n(e){return r(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:"").join("&").replace(/\.=/g,"=")}function r(e,t){const o=[];if(e)if(Array.isArray(e))e.forEach((e=>o.push(...r(e,t))));else if("object"==typeof e)for(const n in e){const i=e[n];o.push(...r(i,`${t}${n}.`))}else o.push(`${t}=${e}`);return o}e.d(t,{default:()=>s});let i=function(e){return e.VehicleSpecific="Vehicle Specific",e.ManyFitments="Many Fitments",e.NoFitmentData="No Fitment Data",e.UniversalFit="Universal Fit",e.NonVehicleProducts="Non-Vehicle Products",e}({});const c={apiVersion:2},s={searchByVehicle:async function(e,t,r){const i=`https://${e}.myconvermax.com/search.json`,s={};void 0!==r?.page&&(s.page=r.page.toString()),void 0!==r?.pageSize&&(s.pageSize=r.pageSize.toString()),Object.entries(t).forEach(((e,t)=>{let[o,n]=e;s[`facet.${t}.field`]=o,s[`facet.${t}.selection`]=n}));const a={...c};s.extra=o(a);const f=`${i}?${n(s)}`;try{const e=await fetch(f);if(!e.ok)throw new Error(`HTTP error! Status: ${e.status}`);return(await e.json()).Items??[]}catch(e){return console.error("Error fetching products:",e),[]}},getFitments:async function(e,t){const r=`https://${e}.myconvermax.com/ymm/fitments.json`,s={productId:encodeURIComponent(t)},a={...c};s.extra=o(a);const f=`${r}?${n(s)}`;try{const e=await fetch(f);if(!e.ok)throw new Error(`HTTP error! Status: ${e.status}`);return await e.json()}catch(e){return console.error("Error fetching fitments:",e),{Fitment:i.NoFitmentData,Fields:null,Fitments:null}}}};return t.default})()));
//# sourceMappingURL=index.js.map