UNPKG

@captive/plop-config

Version:
41 lines (40 loc) 1.48 kB
import slugify from '@sindresorhus/slugify'; import * as Variables from './template/variables.js'; import * as Index from './template/document.md.template.js'; import { composeValidators, requireNotEmpty, requireURL } from '../../validator/index.js'; import { extractIssueId } from './extractIssueId.js'; export const techDiveInGenerator = (options) => ({ name: 'tech-dive-in', generator: { prompts: [ { name: Variables.issueURL, type: 'input', message: 'Issue URL :', validate: composeValidators(requireURL()), }, { name: Variables.title, type: 'input', message: 'Title :', validate: composeValidators(requireNotEmpty()), }, ], actions: (answers) => { const issueURL = answers?.[Variables.issueURL]; const issueId = issueURL == null ? undefined : extractIssueId(issueURL); const title = (answers?.[Variables.title] ?? ''); const data = { [Variables.issueId]: issueId, }; return [ { path: `${options.techDiveInPath}/${issueId == null ? '' : `${issueId}-`}${slugify(title)}/README.md`, template: Index.template, type: 'add', data, }, ]; }, }, });