UNPKG

@megaads/wm

Version:

To install the library, use npm:

104 lines (85 loc) 3.11 kB
import fetch from "node-fetch"; import WM from "./index"; interface Variant { id: number; slug: string; values: Array<{ id: number }>; } interface ProductVariant { id: number; sku: string, variants: number[]; price: number; high_price: number; } interface Galleries { [key: number]: string[]; } interface FetchDataResult { variants: Variant[]; productVariants: ProductVariant[]; galleries: Galleries; } async function fetchData(productId: number): Promise<FetchDataResult> { const variantResponse = await fetch(`https://sku-api.test.megaads.vn/v2/variant/${productId}?ignore_localization=1`); const variantDataJson = await variantResponse.json() as { result: { variants: Variant[], productVariants: ProductVariant[] } }; const variants = variantDataJson.result.variants; const productVariants = variantDataJson.result.productVariants; const galleryResponse = await fetch(`https://sku-api.test.megaads.vn/gallery/${productId}?ignore_localization=1`); const galleriesDataJson = await galleryResponse.json() as { result: Galleries }; const galleries = galleriesDataJson.result; return { variants, productVariants, galleries }; } async function getDetails(productId: number, productSkuId: number): Promise<void> { const { variants, productVariants, galleries } = await fetchData(productId); const variantsService = WM.initVariants({ variants: variants, productVariants: productVariants, galleries: galleries }); const retVal = variantsService.getProductSkuDetail(productSkuId); console.log(JSON.stringify(retVal)); } getDetails(158287360, 3408937481).then(() => {}); function getCdnUrl(url: string): void { const imagesWM = WM.initImages({ baseCdnUrl: 'https://cdn.printerval.com' }) console.log(imagesWM.getImageCdn(url, 960, 960, false, false, {})); } getCdnUrl('https://assets.printerval.com/seller/2024/02/15/womens-espresso-martini-drinking-coffee-lovers-cocktail-bartender-v-neck-t-shirt-15f0742d17528a2355b987d587766f8b.png'); // format price function getPrice(): void { const priceService = WM.initPrice({ currencyUnit: 'USD' }); console.log(priceService.formatPrice(1000000)); } getPrice(); // print location const printLocationsService = WM.initPrintLocations([ { "id": 1, "name": "Front", "value": "front" }, { "id": 2, "name": "Chest", "value": "chest" }, { "id": 3, "name": "Back", "value": "back" }, { "id": 4, "name": "Chest & Back", "value": "chest_back" } ], 'us'); // get additional price console.log(printLocationsService.getAdditionalPrice('chest_back', 7, 10)); // decor galleries console.log(printLocationsService.getGalleries(['https://cdn.printerval.com/image/t-shirts-men-heavyweight-t-shirt-1,black,print-2024-01-10_61ea1b01-5f99-46d1-ba76-17ddb8e712a5,2d2d2d.jpeg'], 'chest'));