UNPKG

jatg

Version:

Just Another Template Generator

37 lines 1.41 kB
import prompts from 'prompts'; import { JatgError } from '../models/jatg-error.js'; async function promptTemplate(templates, composites) { const names = new Set([ ...composites.map(c => c.name), ...templates.map(t => t.name), ]); if (names.size === 0) throw new JatgError('No templates registered. Initialize one with "jatg --init"'); const { template } = await prompts({ name: 'template', message: 'Template', type: 'select', choices: [...names].map(name => ({ value: name, title: name, })), }, { onCancel: () => { throw new JatgError('Generation canceled'); } }); return template; } function findTemplatesByName(templates, composites, template) { const composite = composites.find(c => c.name === template); if (composite) return composite.templates.flatMap(name => findTemplatesByName(templates, composites, name)); const singleTemplate = templates.find(t => t.name === template); if (singleTemplate) return [singleTemplate]; throw new JatgError(`Template "${template}" was not found`); } export async function pickTemplate(templates, composites, template) { if (!template) template = await promptTemplate(templates, composites); return findTemplatesByName(templates, composites, template); } //# sourceMappingURL=pickTemplate.js.map