UNPKG

mongoose-data-seed

Version:

Seed mongodb with data using mongoose models

54 lines (47 loc) 1.61 kB
import commandLineArgs from 'command-line-args'; import { validateSeedersFolderName, validateSeederTemplatePath, } from '../../utils/helpers'; import { promptSeedersFolder, promptSeederTemplate } from './prompts'; import optionDefinitions from './option-definitions'; /** * Get init options from argv * @param {string[]} argv cli argv * @return {Object} init options * @property {string} seedersFolder * @property {string} customSeederTemplate * @property {boolean} helpWanted */ export const getOptions = argv => { const { seedersFolder, seederTemplate: customSeederTemplate, help: helpWanted, } = commandLineArgs(optionDefinitions, { argv }); return { seedersFolder, customSeederTemplate, helpWanted }; }; /** * Prompt missing options for init command * @param {Object} [options={}] Init command options * @param {[type]} options.seedersFolder seeders folder * @param {[type]} options.customSeederTemplate custom seeder template * @return {Promise} Options without missing */ export const promptMissingOptions = async ({ seedersFolder, customSeederTemplate, } = {}) => { const getSeedersFolder = async () => validateSeedersFolderName(seedersFolder) ? seedersFolder : promptSeedersFolder(); const getCustomSeederTemplate = async () => validateSeederTemplatePath(customSeederTemplate) ? customSeederTemplate : promptSeederTemplate(); return { seedersFolder: await getSeedersFolder(), customSeederTemplate: await getCustomSeederTemplate(), }; };