UNPKG

@pfantato/printful-ts

Version:

Typescript SDK to integrate with Printful

55 lines (54 loc) 1.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.VariantPrice = exports.ProductPrice = exports.VariantPriceData = exports.VariantTechniquePrice = exports.AdditionalPlacement = exports.OptionPrice = exports.Currency = void 0; const zod_1 = require("zod"); const technique_schema_1 = require("./technique.schema"); exports.Currency = zod_1.z .string() .refine(currency => currency.length === 3) .transform(val => val.toLocaleUpperCase()); exports.OptionPrice = zod_1.z.object({ name: zod_1.z.string(), type: zod_1.z.string(), values: zod_1.z.array(zod_1.z.array(zod_1.z.any())), description: zod_1.z.string(), prices: zod_1.z.any(), }); exports.AdditionalPlacement = zod_1.z.object({ id: zod_1.z.string(), title: zod_1.z.string(), type: zod_1.z.string(), technique_key: zod_1.z.string(), price: zod_1.z.string(), discounted_price: zod_1.z.string(), placement_options: zod_1.z.array(exports.OptionPrice), layers: zod_1.z.array(zod_1.z.object({ type: zod_1.z.string(), additional_price: zod_1.z.string(), layer_options: zod_1.z.array(exports.OptionPrice), })), }); exports.VariantTechniquePrice = zod_1.z.object({ technique_key: technique_schema_1.TechniqueKey, technique_display_name: zod_1.z.string(), price: zod_1.z.string(), discounted_price: zod_1.z.string(), }); exports.VariantPriceData = zod_1.z.object({ id: zod_1.z.number(), techniques: zod_1.z.array(exports.VariantTechniquePrice), }); exports.ProductPrice = zod_1.z.object({ currency: exports.Currency, product: zod_1.z.object({ id: zod_1.z.number(), placements: zod_1.z.array(exports.AdditionalPlacement), }), variants: zod_1.z.array(exports.VariantPriceData), }); exports.VariantPrice = exports.ProductPrice.pick({ currency: true, product: true, }).extend({ variant: exports.VariantPriceData, });