UNPKG

supa-seed

Version:

A constraint-aware, framework-agnostic database seeding framework with deep PostgreSQL business logic discovery and MakerKit integration support

112 lines 2.6 kB
/** * Basic File System Asset Loading * Phase 1, Checkpoint A3 - Foundation for hybrid seeding */ export interface AssetMetadata { title?: string; description?: string; tags?: string[]; category?: string; author?: string; date?: string; featured?: boolean; [key: string]: any; } export interface LoadedAsset { id: string; filePath: string; type: 'markdown' | 'json' | 'image' | 'csv'; content?: string; metadata: AssetMetadata; fileSize: number; lastModified: Date; isValid: boolean; validationErrors?: string[]; } export interface AssetLoadOptions { patterns: string[]; baseDirectory?: string; includeContent?: boolean; validateSchema?: boolean; maxFileSize?: number; allowedExtensions?: string[]; } export interface AssetLoadResult { assets: LoadedAsset[]; errors: Array<{ filePath: string; error: string; }>; totalFiles: number; successCount: number; errorCount: number; } export declare class AssetLoader { private defaultOptions; /** * Load assets from file system using glob patterns */ loadAssets(options: AssetLoadOptions): Promise<AssetLoadResult>; /** * Load a single asset file */ private loadSingleAsset; /** * Parse markdown file with frontmatter */ private parseMarkdownWithFrontmatter; /** * Extract metadata from JSON data */ private extractJsonMetadata; /** * Extract metadata from image files */ private extractImageMetadata; /** * Validate markdown asset */ private validateMarkdownAsset; /** * Validate JSON asset */ private validateJsonAsset; /** * Validate image asset */ private validateImageAsset; /** * Generate unique asset ID from file path */ private generateAssetId; /** * Get MIME type from file extension */ private getMimeType; /** * Parse CSV data into structured format */ private parseCsvData; /** * Parse a single CSV line */ private parseCsvLine; /** * Extract metadata from CSV data */ private extractCsvMetadata; /** * Validate CSV asset */ private validateCsvAsset; /** * Get asset loading statistics */ static getLoadingStats(result: AssetLoadResult): { successRate: number; avgFileSize: number; typeDistribution: Record<string, number>; validationRate: number; }; } //# sourceMappingURL=asset-loader.d.ts.map