UNPKG

sails-hook-blacksails

Version:
59 lines (56 loc) 1.45 kB
import _ from 'lodash'; import faker from 'faker'; module.exports = { /** * * Generate seed data * @param {*} { * size, * model, * data, * include, * locales = ['zh_TW', 'zh_CN', 'en', 'de'], * } * @returns {Array} */ async create({ size, model, data, include, locales = ['zh_TW', 'zh_CN', 'en', 'de'], }) { const items = []; try { const inputHasNull = ValidatorHelper.checkNull({ size, model, }); sails.log.debug(`[SeedHelper] Create Seed Data for model ${model.name}...`); if (inputHasNull) { throw Error(MESSAGE.BAD_REQUEST.NO_REQUIRED_PARAMETER(inputHasNull)); } // eslint-disable-next-line const add = (data, options) => { // sails.log('[SeedHelper] Add Seed=>', data, options); return new Promise((resolve, reject) => model .create(data, options) .then(result => resolve(result.get({ plain: true }))) .catch(err => reject(err))); }; _.range(size).forEach((i) => { faker.seed(parseInt(i + new Date().getTime(), 10)); faker.locale = locales[faker.random.number(locales.length - 1)]; items.push(add(data(i), { include, raw : true, })); }); return await Promise.all(items); } catch (e) { sails.log.error(e); throw e; } }, };