UNPKG

@prodbirdy/mockup-generator

Version:

Serverless-optimized TypeScript SDK for generating high-quality product mockups from PSD templates

145 lines (128 loc) 3.44 kB
/** * Mockup Generator SDK * Clean, serverless-optimized library for PSD mockup generation */ // Main SDK class export { MockupSDK } from "./MockupSDK"; // Types for TypeScript users export type { MockupSDKConfig, MockupSDKMode, MockupGenerationConfig, BatchMockupConfig, SmartObjectReplacement, ExportOptions, MockupResult, BatchMockupResult, BatchMockupResultItem, UploadOptions, UploadResult, ExportResult, StorageConfig, ExportFormat, FillMode, } from "./types"; // Error classes for catch blocks export { MockupSDKError, ValidationError, StorageError, ExportError, } from "./types"; // Utility functions for advanced users export { validateGenerationConfig, validateBatchConfig, validateUploadOptions, validateSmartObjects, validateExportOptions, } from "./validation"; // Re-export some utility types from constants for backward compatibility export type { PrintArea } from "../constants"; /** * Quick start examples and factory functions */ import { MockupSDK } from "./MockupSDK"; import type { MockupSDKConfig, MockupGenerationConfig } from "./types"; /** * Create a quick SDK instance for serverless environments * Uses mode='serverless' with optional environment variable loading */ export async function createServerlessSDK( config: Omit<MockupSDKConfig, "mode"> = {} ): Promise<MockupSDK> { return MockupSDK.create({ mode: "serverless", ...config }); } /** * Create a development SDK with debugging enabled * Uses mode='development' with optional environment variable loading */ export async function createDevelopmentSDK( config: Omit<MockupSDKConfig, "mode"> = {} ): Promise<MockupSDK> { return MockupSDK.create({ mode: "development", ...config }); } /** * Create a production SDK with optimal settings * Uses mode='production' with optional environment variable loading */ export async function createProductionSDK( config: Omit<MockupSDKConfig, "mode"> = {} ): Promise<MockupSDK> { return MockupSDK.create({ mode: "production", ...config }); } /** * Create an auto-detecting SDK that configures itself based on the environment * Uses mode='auto' and automatically loads storage from environment variables */ export async function createAutoSDK( config: Omit<MockupSDKConfig, "mode"> = {} ): Promise<MockupSDK> { return MockupSDK.create({ mode: "auto", ...config }); } /** * Quick mockup generation function for simple use cases */ export async function generateQuickMockup( psd: string | Buffer, smartObjectName: string, image: string | Buffer, exportFormats: string[] = ["png"] ): Promise<{ psd: Buffer; exports: Array<{ format: string; buffer: Buffer; size: number }>; }> { const sdk = await createServerlessSDK(); try { const config: MockupGenerationConfig = { psd, replacements: [ { name: smartObjectName, image, fillMode: "fit", }, ], exports: exportFormats.map((format) => ({ format: format as any, quality: 90, })), }; const result = await sdk.generate(config); return { psd: result.psd, exports: result.exports.map((exp) => ({ format: exp.format, buffer: exp.buffer, size: exp.size, })), }; } finally { await sdk.cleanup(); } } /** * Version information */ export const VERSION = "1.0.0"; export const SDK_NAME = "Mockup Generator SDK";