UNPKG

@swell/cli

Version:

Swell's command line interface/utility

48 lines (47 loc) 1.42 kB
import { titleize } from 'inflection'; const validContentViewValues = ['list', 'edit', 'new']; const validateViews = (values, onError) => { const invalid = values.filter((v) => !validContentViewValues.includes(v)); if (invalid.length > 0) { onError(`Invalid view(s): ${invalid.join(', ')}\n\nValid views: ${validContentViewValues.join(', ')}\n\nExample: swell create content visitors -v list,edit,new -y`, { exit: 1 }); } }; const parseViews = (views) => { if (views.length === 0) { return []; } const viewResponse = []; for (const viewId of views) { viewResponse.push({ id: viewId, ...(viewId === 'list' ? { nav: {} } : {}), fields: [], tabs: [], }); } return viewResponse; }; const parseFields = (fields) => { if (fields.length === 0) { return []; } const fieldResponse = []; for (const fieldPair of fields) { if (fieldPair.includes(':')) { const [id, type] = fieldPair.split(':'); fieldResponse.push({ id, label: titleize(id), type, }); } else { fieldResponse.push({ id: fieldPair, label: titleize(fieldPair), }); } } return fieldResponse; }; export { parseFields, parseViews, validateViews };