UNPKG

@ribajs/shopify

Version:

Shopify extension for Riba.js

65 lines 5.54 kB
import { HttpService } from "@ribajs/core"; export class ShopifyProductService { static get(handle) { if (this.cache[handle]) { return new Promise((resolve) => { resolve(this.cache[handle]); }); } else { return HttpService.getJSON(`/products/${handle}.js`).then((res) => { const product = res.body; this.cache[handle] = product; return this.cache[handle]; }); } } static fitsVariantOptions(variant, optionValues) { let fit = true; for (const position0 in optionValues) { if (optionValues[position0]) { const optionValue = optionValues[position0]; fit = fit && variant.options.indexOf(optionValue.toString()) > -1; } } return fit; } static getVariantOfOptions(product, optionValues) { let result = null; if (product) { for (const i in product.variants) { if (product.variants[i]) { result = null; const variant = product.variants[i]; const fits = this.fitsVariantOptions(variant, optionValues); if (fits) { result = variant; break; } } } } return result; } static getVariant(product, id) { const result = product.variants.find((variant) => variant.id === id) || null; return result; } static getOption(product, name) { const result = product.options.find((option) => option.name.toLowerCase() === name.toLowerCase()); return result; } static getOptionIncludes(product, searchSubstr) { const result = product.options.find((option) => option.name.includes(searchSubstr)); return result; } static prepare(product) { product.featured_image.replace(/(^\w+:|^)\/\//, "//"); for (const option of product.options) { option.name = option.name.toLowerCase(); } return product; } static cache = {}; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcGlmeS1wcm9kdWN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvc2hvcGlmeS1wcm9kdWN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQVEzQyxNQUFNLE9BQU8scUJBQXFCO0lBS3pCLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBYztRQUM5QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN2QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBaUIsYUFBYSxNQUFNLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDdkUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDTixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQztnQkFDN0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FDRixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFRTSxNQUFNLENBQUMsa0JBQWtCLENBQzlCLE9BQThCLEVBQzlCLFlBQXNCO1FBRXRCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQztRQUVmLEtBQUssTUFBTSxTQUFTLElBQUksWUFBWSxFQUFFLENBQUM7WUFDckMsSUFBSSxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDNUIsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLFNBQVMs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