easy-component-generator
Version:
    • 1.57 kB
JavaScript
;
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
},
};
`;
}