generator-react-domain
v0.1.18
Published
Generate React Components with Domain-Driven File Structuring
Downloads
10
Maintainers
Readme
generator-react-domain
This Generator helps you create connected React components with the Domain file structure :snowflake:
$ tree
.
├── Component.fixtures.js
├── Component.js
├── ComponentActions.js
├── ComponentConstants.js
├── ComponentHelper.js
├── ComponentReducer.js
├── ComponentSelectors.js
├── __tests__
│ ├── Component.test.js
│ ├── ComponentActions.test.js
│ ├── ComponentIntegration.test.js
│ ├── ComponentReducer.test.js
│ └── ComponentSelectors.test.js
├── component.scss
└── index.js
Usage
# install
npm install --global yo generator-react-domain
# run it # destination # name
yo react-domain src/components ComponentName
Options
--redux
- Create Redux files.
Tests
This generator is using an external package called react-redux-test-utils to create light and readable test templates for your components. The package uses enzyme
at its core.
Config
create a .yo-rc.json
file in your project's root folder and fill it:
{
"generator-react-domain": {
"templatesPath": "path to your templates folder",
"componentsPath": "path to your components folder",
"redux": true # create redux files,
"yarn": true # use yarn instead of npm
}
}
Replacing Templates
To learn how to create Templates, refer to ejs.co
- fill your
.yo-rc.json
file in your project's root folder withtemplatesPath
as seen above.
- Put supported files in your templates folder, make sure to be case-sensitive.
| File | Description | Has Template
| ------------- | ------------- | ------------- |
| Component.js | Component | :white_check_mark:
| Component_test.js | Component Test | :white_check_mark:
| Actions.js | Redux Actions | :white_check_mark:
| Actions_test.js | Actions Test | :white_check_mark:
| Reducer.js | Redux Reducer | :white_check_mark:
| Reducer_test.js | Reducer Test | :white_check_mark:
| Selectors.js | Redux Selectors | :white_check_mark:
| Selectors_test.js | Selectors Test | :white_check_mark:
| index.js | Index file | :white_check_mark:
| Integration_test.js | Redux Flow Test | :white_check_mark:
| Constants.js | Constants | :white_check_mark:
| Helper.js | Helper methods |
| Scss.js | SCSS File |
| Fixtures.js | Fixtures/Mocks |
All Templates receive the following props
<%= name %> # Pascal case name
<%= name_upper %> # Capitalized name
<%= name_lower %> # Camel case name