UNPKG

keystone-seeder

Version:
60 lines (59 loc) 3.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateFieldValue = exports.buildSeedData = exports.initializeContext = exports.getFieldsMeta = exports.getModelConfig = exports.getAvailableModels = void 0; exports.seed = seed; const models_1 = require("./models"); const data_generator_1 = require("./data-generator"); /** * Main seeding function that creates records for a specified model */ async function seed(context, { modelName, recordCount, relationMode }) { try { const model = await (0, models_1.getModelConfig)(modelName); const fieldsMeta = await (0, models_1.getFieldsMeta)(context, modelName); let successCount = 0; console.log(`\n(seeder) Starting to seed ${recordCount} ${modelName} records...\n`); for (let i = 0; i < recordCount; i++) { try { // Generate seed data with relation field information const seedData = (0, data_generator_1.buildSeedData)(model, fieldsMeta, relationMode ? context : undefined, relationMode); // Handle relation fields if present const finalData = { ...seedData }; delete finalData._relationFields; // Process relation fields if they exist if (seedData._relationFields && relationMode) { for (const relationField of seedData._relationFields) { const { fieldName, relatedModel, isList } = relationField; // Import the handleRelationField function // Use the handleRelationField function to process relations const relationData = await (0, data_generator_1.handleRelationField)(context, { name: fieldName, type: relatedModel, isList }, relationMode); if (relationData) { finalData[fieldName] = relationData; } } } console.log(`(seeder) Creating ${modelName} entry #${i + 1}/${recordCount}...`); await context.sudo().db[modelName].createOne({ data: finalData }); successCount++; } catch (error) { console.error(`Error creating ${modelName} entry #${i + 1}:`, error); } } console.log(`\n(seeder) Seeding complete! Successfully created ${successCount}/${recordCount} records.`); } catch (error) { console.error("Error during seeding process:", error); throw error; } } // Export all necessary functions var models_2 = require("./models"); Object.defineProperty(exports, "getAvailableModels", { enumerable: true, get: function () { return models_2.getAvailableModels; } }); Object.defineProperty(exports, "getModelConfig", { enumerable: true, get: function () { return models_2.getModelConfig; } }); Object.defineProperty(exports, "getFieldsMeta", { enumerable: true, get: function () { return models_2.getFieldsMeta; } }); var context_1 = require("./context"); Object.defineProperty(exports, "initializeContext", { enumerable: true, get: function () { return context_1.initializeContext; } }); var data_generator_2 = require("./data-generator"); Object.defineProperty(exports, "buildSeedData", { enumerable: true, get: function () { return data_generator_2.buildSeedData; } }); Object.defineProperty(exports, "generateFieldValue", { enumerable: true, get: function () { return data_generator_2.generateFieldValue; } });