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
JavaScript
;
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