import publicApi from '../../Api'; import type { TrackingProductFields } from './types'; import { viewItem } from '../events/views/viewItem'; import { viewItemList } from '../events/views/viewItemList'; import type { ApiParams, ProductConditionFields, ProductFields, ProductSortFields, UrlBrand, UrlListing, UrlPage, UrlProduct, } from '../../Api/types'; export function getUrl( path: string, options?: Pick< ApiParams, 'condition' | 'fields' | 'limit' | 'offset' | 'meta' | 'order' >, ) { let fields: Array = ['price', 'brand', 'variation', 'mainCategory']; if (options?.fields) fields = [...options.fields, ...fields]; return publicApi.product .getUrl(path, { ...options, fields }) .then(data => { const pageData = data as UrlProduct | UrlPage | UrlBrand | UrlListing; if (pageData.type === 'product') viewItem(pageData.content); if (pageData.type === 'brand' || pageData.type === 'category') viewItemList(pageData); return data; }); }