Socket
Socket
Sign inDemoInstall

sails-hook-spore

Package Overview
Dependencies
4
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    sails-hook-spore

Sails hook designed to seed models from Sequelize


Version published
Maintainers
1
Created

Readme

Source

Dependencies DevDependencies npm version

sails-hook-spore


A model seeder designed for Sequelize in sails.

Example

You just need to configure Sails.

//An infinite generator. You can also make them finite. It's up to you.
function* Restaurant(){
  let faker = require('faker');
  let i = 0;
  while(true){
    i++;
    yield {
      model: 'Restaurant',
      data: {
        name: faker.name.firstName(),
        id: i,
      }
    };
  }
}

module.exports.spore = {
  //Only necessary if you're not using sails-hook-sequelize as your orm replace hook
  ormHook: 'fireline',
  //Catalogs are static entries in your database.
  catalogs: {
    //This is used to prevent the unseed of catalogs
    models: ['TableType'],
    //And most queries follow this schema.
    data:[
      //This is the representation of an instance to create.
      {
        //Model name
        model: 'TableType',
        //Values. If you want to make an association, use its name
        //and indicate the id.
        data: {
          id: 1,
          name: 'Mini',
        },
      },
      {
        model: 'TableType',
        data: {
          id: 2,
          name: 'Pequeña',
        },
      },
      {
        model: 'TableType',
        data: {
          id: 3,
          name: 'Mediana',
        },
      },
      {
        model: 'TableType',
        data: {
          id: 4,
          name: 'Grande',
        },
      },
    ],
  },
  //The function that runs the initial seed. You should import it from somewhere else,
  //but for demostrative purposes, here it's a seed that returns a single Restaurant
  mainGenerator:() => {
    let restaurants = Restaurant();
    return [restaurants.next().value];
  },
  //In case you want to minimize the generators. (Or skip
  // mainGenerator) spore can execute your generator as many times as
  //you'd like. If it's an infinite generator, pass it like in the example
  generators:[
    {
      fx: Restaurant,
      times: 5,
    },
    //If you have a finite generator, you can pass only the reference
    //like so
    RestaurantFiniteGenerator,
  ]
};


If you have to run a function after the model is instantiated, you can add a method to your object afterCreate.

{
  model: 'TableType',
  data: {
    id: 4,
    name: 'Grande',
  },
  afterCreate: (tableCreated, cb) => {
    console.log(tableCreated.name);
    cb();
  }
},

Keywords

FAQs

Last updated on 13 Jan 2018

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc