Scaffolder
Creates new hooks, components, and utilities with a standard structure.
Quick Start
/scaffolder useNewHook # Create a hook
/scaffolder MyComponent # Create a component
/scaffolder myUtil # Create a utility
Generated Structure
src/{type}/{name}/
├── {name}.ts # Implementation
├── {name}.spec.ts # Tests
└── index.ts # Export
Hook Template
/**
* @description Hook description.
* @param {T} param - Parameter description.
* @returns {T} Return description.
* @example
* const result = useHookName(input);
*/
export function useHookName<T>(param: T): T {
// implementation
}
Test Template
import { renderHook } from '@testing-library/react';
import { renderHookSSR } from '../../_internal/test-utils/renderHookSSR.tsx';
describe('useHookName', () => {
it('is safe on server side rendering', () => {
const result = renderHookSSR.serverOnly(() => useHookName('test'));
expect(result.current).toBeDefined();
});
it('works correctly', () => {
const { result } = renderHook(() => useHookName('test'));
expect(result.current).toBe('test');
});
});
Workflow
- Confirm the name and type
- Create the folder structure
- Generate template files
- Add export to src/index.ts