@pfantato/printful-ts
Version:
Typescript SDK to integrate with Printful
55 lines (54 loc) • 1.95 kB
JavaScript
"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,
});