loopback-seeder v0.2.0
loopback-seeder
Expressive fixtures generator for Loopback
Installation
Basic usage
npm install --save loopback-seederyarn add loopback-seederThen, in your server/component-config.json, add :
{
"loopback-seeder": {
"dir": "server/seeds",
"migrate": false,
"autoLoad": false
}
}Write your YML fixture file server/seeds/data.yml (relative to process.cwd() and adapt according your model) :
Group:
group{1..10}:
name: "Groupe {@} depuis les fixtures"
User:
user{1..10}:
name: "User {@} : {{name.lastName}}"
groupId: @group{@}
email: "{{internet.email}}"
birthDate: "2016-01-01"
favoriteNumber: "(function() { return Math.round(Math.random()*1000);})()"How to load fixtures ?
If
autoLoadis set totrue, fixtures will be loaded when you start your applicationWith the server:
app.seed()(return a promise)e.g:
app.seed() .then(function() { console.log('Done!'); }) .catch(function(err) { console.log('Errors:', err); });
Configuration options
dir(default value'server/seeds'relative to process.cwd(), or provide a absolute path)The directory to seed from
migrate(default valuefalse)If set to
false, data fixtures will be append instead of deleting all data from the database first. WARNINGtruewill erase your databaseautoLoad(default valuefalse)
Features
Load data according your model
Multiple generators :
User: user{1..45}: name: "User number {@}"{@}represents the current identifier for the generatorReferences :
Group: group{1..3}: name: "Groupe number {@}" User: user{1..9}: name: "User number {@}" group: @group1 # Reference to group1 user{10..19}: name: "User number {@}" group: @group.* # Reference to any matching group@group1represents the reference for the group1 and can be used in other fixtures@group.*represents the reference for a random matching groupFakers :
User: user{1..10}: name: "User n°{@} : {{name.lastName}} {{name.firstName}}" email: "{{internet.email}}"You can use Faker.js API to provide fake data
Custom function :
User: user{1..10}: favoriteNumber: "(function() { return Math.round(Math.random()*1000);})()"You can use custom functions too
Credits
License
ISC