UNPKG

easy-component-generator

Version:

![npm](https://img.shields.io/npm/v/easy-component-generator) ![license](https://img.shields.io/npm/l/easy-component-generator) ![downloads](https://img.shields.io/npm/dt/easy-component-generator) ![size](https://img.shields.io/bundlephobia/min/easy-compo

63 lines (58 loc) 1.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getComponentTemplate = getComponentTemplate; exports.getPropsTemplate = getPropsTemplate; exports.getTypesTemplate = getTypesTemplate; exports.getHookTemplate = getHookTemplate; exports.getFileTemplate = getFileTemplate; exports.getStorybookTemplate = getStorybookTemplate; function getComponentTemplate(name) { return `import React from 'react'; import { I${name}Props } from './${name}Types'; export const ${name} = (props: I${name}Props) => { return ( <div>${name} component</div> ); }; `; } function getPropsTemplate(name) { return `export interface I${name}Props { // Props }; `; } function getTypesTemplate(name) { const baseName = name.replace(/(Types?)$/, ''); return `export type T${baseName} = { // Type };`; } function getHookTemplate(name) { return `export const ${name.startsWith('use') || name.startsWith('Use') ? name : 'use' + name} = () => { //Hook };`; } function getFileTemplate(name) { return `export const ${name} = () => { //Write here };`; } function getStorybookTemplate(name) { return `import React from 'react'; import { ${name} } from './${name}'; import type { Meta, StoryObj } from '@storybook/react'; const meta: Meta<typeof ${name}> = { title: 'Components/${name}', component: ${name}, tags: ['autodocs'], }; export default meta; type Story = StoryObj<typeof ${name}>; export const Default: Story = { args: { // Default props here }, }; `; }