UNPKG

@onurege3467/zerohelper

Version:

ZeroHelper is a versatile high-performance utility library and database framework for Node.js, fully written in TypeScript.

38 lines (37 loc) 1.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DataSeeder = void 0; const index_1 = require("../functions/index"); class DataSeeder { constructor(database) { this.db = database; } generateValue(field) { switch (field.type) { case 'id': return Date.now().toString(36) + Math.random().toString(36).substr(2); case 'email': return `${(0, index_1.randomText)(5)}@${(0, index_1.randomArray)(['gmail.com', 'outlook.com', 'zero.io'])}`; case 'number': return (0, index_1.randomNumber)(field.min ?? 0, field.max ?? 1000); case 'string': return (0, index_1.randomText)(field.length ?? 8); case 'boolean': return Math.random() > 0.5; case 'date': return new Date(Date.now() - Math.random() * 10000000000); case 'pick': return (0, index_1.randomArray)(field.values ?? []); default: return null; } } /** * Seeds a table with mock data based on a schema. */ async seed(table, count, schema) { const dataArray = []; for (let i = 0; i < count; i++) { const row = {}; for (const [key, field] of Object.entries(schema)) { row[key] = this.generateValue(field); } dataArray.push(row); } await this.db.bulkInsert(table, dataArray); return count; } } exports.DataSeeder = DataSeeder;