Skip to content
This repository has been archived by the owner on Dec 7, 2022. It is now read-only.

glekner/generator-react-domain

Repository files navigation

generator-react-domain

Coverage Status Build Status

This Generator helps you create connected React components with the Domain file structure ❄️

$ 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

  1. fill your .yo-rc.json file in your project's root folder with templatesPath as seen above.
  1. Put supported files in your templates folder, make sure to be case-sensitive.
File Description Has Template
Component.js Component
Component_test.js Component Test
Actions.js Redux Actions
Actions_test.js Actions Test
Reducer.js Redux Reducer
Reducer_test.js Reducer Test
Selectors.js Redux Selectors
Selectors_test.js Selectors Test
index.js Index file
Integration_test.js Redux Flow Test
Constants.js Constants
Helper.js Helper methods
Scss.js SCSS File
Fixtures.js Fixtures/Mocks

All Templates receive the following props

  <%= name %>       # Pascal case name
  <%= name_upper %> # Uppercased name
  <%= name_lower %> # Camel case name

License

MIT

About

Generate React Components with Domain-Driven File Structuring ❄️

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published