UNPKG

supa-seed

Version:

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

182 lines 5.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SCHEMA_MAPPINGS = void 0; exports.getFieldWithFallback = getFieldWithFallback; exports.mergeSchemaMapping = mergeSchemaMapping; exports.SCHEMA_MAPPINGS = { makerkit: { userTable: { name: 'accounts', emailField: 'email', idField: 'id', nameField: 'name', pictureField: 'picture_url' }, setupTable: { name: 'setups', userField: 'user_id', idField: 'id', titleField: 'title', descriptionField: 'description', categoryField: 'category', publicField: 'is_public' }, baseTemplateTable: { name: 'base_templates', idField: 'id', descriptionField: 'description', typeField: 'type', makeField: 'make', modelField: 'model', yearField: 'year' }, mediaAttachmentsTable: { name: 'media_attachments', idField: 'id', userField: 'account_id', filePathField: 'file_path', fileNameField: 'file_name', fileSizeField: 'file_size', fileTypeField: 'file_type', altTextField: 'alt_text', descriptionField: 'description', storageBucketField: 'storage_bucket', uploadStatusField: 'upload_status', publicField: 'is_public' } }, 'makerkit-profiles': { userTable: { name: 'profiles', emailField: 'email', idField: 'id', nameField: 'display_name', bioField: 'bio', pictureField: 'avatar_url' }, setupTable: { name: 'setups', userField: 'user_id', idField: 'id', titleField: 'title', descriptionField: 'description', categoryField: 'category', publicField: 'is_public' }, mediaAttachmentsTable: { name: 'media_attachments', idField: 'id', userField: 'user_id', filePathField: 'file_path', fileNameField: 'file_name', fileSizeField: 'file_size', fileTypeField: 'file_type', altTextField: 'alt_text', descriptionField: 'description', storageBucketField: 'storage_bucket', uploadStatusField: 'upload_status', publicField: 'is_public' } }, simple: { userTable: { name: 'profiles', emailField: 'email', idField: 'id', nameField: 'display_name' }, setupTable: { name: 'setups', userField: 'profile_id', idField: 'id', titleField: 'title', descriptionField: 'description' }, mediaAttachmentsTable: { name: 'media_attachments', idField: 'id', userField: 'profile_id', filePathField: 'file_path', fileNameField: 'file_name', fileSizeField: 'file_size', fileTypeField: 'file_type', altTextField: 'alt_text', descriptionField: 'description', storageBucketField: 'storage_bucket', uploadStatusField: 'upload_status', publicField: 'is_public' } }, custom: { userTable: { name: 'users', emailField: 'email', idField: 'id', nameField: 'name' }, setupTable: { name: 'posts', userField: 'user_id', idField: 'id', titleField: 'title', descriptionField: 'content' }, mediaAttachmentsTable: { name: 'media_attachments', idField: 'id', userField: 'user_id', filePathField: 'file_path', fileNameField: 'file_name', fileSizeField: 'file_size', fileTypeField: 'file_type', altTextField: 'alt_text', descriptionField: 'description', storageBucketField: 'storage_bucket', uploadStatusField: 'upload_status', publicField: 'is_public' } } }; /** * Get field mapping with fallbacks */ function getFieldWithFallback(mapping, fieldType, fallbacks) { if (!mapping) return fallbacks[0]; const value = mapping[fieldType]; if (value) return value; // Try fallbacks for (const fallback of fallbacks) { if (fallback in mapping && mapping[fallback]) { return mapping[fallback]; } } return fallbacks[0]; } /** * Merge custom mappings with defaults */ function mergeSchemaMapping(defaultMapping, customMapping) { if (!customMapping) return defaultMapping; return { userTable: { ...defaultMapping.userTable, ...(customMapping.userTable || {}) }, setupTable: customMapping.setupTable ? { ...defaultMapping.setupTable, ...customMapping.setupTable } : defaultMapping.setupTable, baseTemplateTable: customMapping.baseTemplateTable ? { ...defaultMapping.baseTemplateTable, ...customMapping.baseTemplateTable } : defaultMapping.baseTemplateTable, mediaAttachmentsTable: customMapping.mediaAttachmentsTable ? { ...defaultMapping.mediaAttachmentsTable, ...customMapping.mediaAttachmentsTable } : defaultMapping.mediaAttachmentsTable }; } //# sourceMappingURL=schema-mappings.js.map