@captive/plop-config
Version:
40 lines (39 loc) • 1.44 kB
JavaScript
import * as Variables from './template/variables.js';
import * as Component from './template/Component.tsx.template.js';
import * as Test from './template/Component.spec.template.js';
import * as Index from './template/index.template.js';
import { componentNamePrompt } from '../../prompt/index.js';
export const reactComponentGenerator = (options) => ({
name: 'react-component',
generator: {
prompts: [
{
name: Variables.componentName,
...componentNamePrompt,
},
],
actions: () => [
{
path: `${options.componentPath}/{{ ${Variables.componentName} }}/{{ ${Variables.componentName} }}.tsx`,
data: {
...options,
},
template: Component.template,
type: 'add',
},
{
path: `${options.componentPath}/{{ ${Variables.componentName} }}/{{ ${Variables.componentName} }}.spec.ts`,
template: Test.template,
type: 'add',
data: {
importTest: options.test === 'vitest' ? 'vitest' : '@jest/globals',
},
},
{
path: `${options.componentPath}/{{ ${Variables.componentName} }}/index.ts`,
template: Index.template,
type: 'add',
},
],
},
});