Skip to content

A CLI generator for React components, pages, styled-components and redux store, HTTP services, redux-box store, redux module.

License

Notifications You must be signed in to change notification settings

NishantSinghChandel/reactjs-component-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

react-component-generator

A CLI generator for React components, pages, styled-components and redux store, HTTP services, redux-box store, redux module.

Install

$ npm install -g reactjs-component-generator

Usage

The most basic command runs a wizard to create a component.

$ rg

Note: Names can be given in any format (slug-case, camelCase, PascalCase, UPPERCASE, lowercase etc.).

functional component

Directly create a functional component based on the current settings.

$ rg functional-component <name>

class component

Directly create a class component based on the current settings.

$ rg component <name>

Typescript component

Directly create a component with typeScript config based on the current settings.

$ rg tscomponent <name>

The generated file will be *filename.ts *filename.scss

Page [Recommended for Next.js]

Directly create a page based on the current settings.

$ rg page <name>

The generated file will be *filename.js *index.js *filename.scss

Arguments:

  • name: The name you want to use for the component.

Options:

  • -d, --destination <destination>: Override the destination for component.
  • -p, --template-path <template-path>: Override template path.
  • -t, --template <template>: Override template type. By default it uses the 'component' folder from the template path. With this option you can use a different template folder.
  • -f, --force: Force creation of a component. By default it's impossible to create a component if the destination path doesn't exist. This option forces the creation of a component and will generates the destination folders if they don't exist.

Examples:

$ rg component check-box
$ rg component RadioButton -d ./components/ui
$ rg component videoPlayer -d ./src/components/players/ -t base-video-component -f

The generated file will be *filename.css *index.js *filename.js

Typescript Page [Recommended for Next.js + typeScript]

Directly create a page with typeScript config based on the current settings.

$ rg tspage <name>

The generated file will be *filename.ts *index.ts *filename.scss

styled component

Directly create a component based on the current settings with styled component.

$ rg-styled <name>

Arguments:

  • name: The name you want to use for the component.

Options:

  • -d, --destination <destination>: Override the destination for component.
  • -p, --template-path <template-path>: Override template path.
  • -t, --template <template>: Override template type. By default it uses the 'component' folder from the template path. With this option you can use a different template folder.
  • -f, --force: Force creation of a component. By default it's impossible to create a component if the destination path doesn't exist. This option forces the creation of a component and will generates the destination folders if they don't exist.

Examples:

$ rg-styled check-box
$ rg-styled RadioButton -d ./my-component/ui
$ rg-styled videoPlayer -d ./src/my-component/players/ -t base-video-component -f

The generated file will be *filename.styled.js *index.js *filename.js

redux [Recommended for redux]

Directly create a store based on the current settings.

$ rg redux <name>

Arguments:

name: The name doen't have any impact here but required. Options:

  • -d, --destination <destination>: Override the destination for store.
  • -p, --template-path <template-path>: Override template path.
  • -t, --template <template>: Override template type. By default it uses the 'src' folder from the template path. With this option you can use a different template folder.
  • -f, --force: Force creation of a store. By default it's impossible to create a store if the destination path doesn't exist. This option forces the creation of a component and will generates the destination folders if they don't exist.

Examples:

$ rg redux user
$ rg redux shopping-cart -d ./modules
$ rg redux Car -t complex-store

The generated file will be

$ user [Default module]
$ index.js [Container all the reducer]

redux module [Recommended for redux]

Directly create a store module based on the current settings.

$ rg redux-module <name>

Arguments:

name: The name doesn't have any impact here but required. Options:

  • -d, --destination <destination>: Override the destination for store module.
  • -p, --template-path <template-path>: Override template path.
  • -t, --template <template>: Override template type. By default it uses the 'store' folder from the template path. With this option you can use a different template folder.
  • -f, --force: Force creation of a store module. By default it's impossible to create a store module if the destination path doesn't exist. This option forces the creation of a store module and will generates the destination folders if they don't exist.

Examples:

$ rg redux-module user
$ rg redux-module shopping-cart -d ./modules
$ rg redux-module Car -t complex-store

The generated file will be

  • action.js [All actions related to module]
  • mutations.js [All mutations related to module]
  • reducer.js [All reducer related to module]
  • state.js [All state variable related to module]

route [using react-router]

Directly create a react-router route setup.

$ rg route

services

Directly create a services based on the current settings.

$ rg services <name>

Arguments:

name: The name doen't have any impact here but required. Options:

  • -d, --destination <destination>: Override the destination for services.
  • -p, --template-path <template-path>: Override template path.
  • -t, --template <template>: Override template type. By default it uses the 'src' folder from the template path. With this option you can use a different template folder.
  • -f, --force: Force creation of a services. By default it's impossible to create a services if the destination path doesn't exist. This option forces the creation of a services and will generates the destination folders if they don't exist.

Examples:

$ rg services user
$ rg services shopping-cart -d ./modules
$ rg services Car -t complex-store

The generated file will be

  • config [folder contains http request method, local storage methods, and api url file]
  • user.js [Defaul service for api call]

service module

Directly create a service module based on the current settings.

$ rg service-module <name>

Arguments:

name: The name you want to use for the service module. Options:

  • -d, --destination <destination>: Override the destination for service module.
  • -p, --template-path <template-path>: Override template path.
  • -t, --template <template>: Override template type. By default it uses the 'src/services' folder from the template path. With this option you can use a different template folder.
  • -f, --force: Force creation of a service module. By default it's impossible to create a service module if the destination path doesn't exist. This option forces the creation of a service module and will generates the destination folders if they don't exist.

Examples:

$ rg service-module user
$ rg service-module shopping-cart -d ./modules
$ rg service-module Car -t complex-store

The generated file will be

  • filename.js [contains api call request]

config [create a service configuration]

Directly create a service configuration based on the current settings.

$ rg config <name>

Arguments:

name: The name you want to use for the config. Options:

  • -d, --destination <destination>: Override the destination for config.
  • -p, --template-path <template-path>: Override template path.
  • -t, --template <template>: Override template type. By default it uses the 'src/services' folder from the template path. With this option you can use a different template folder.
  • -f, --force: Force creation of a config. By default it's impossible to create a config if the destination path doesn't exist. This option forces the creation of a config and will generates the destination folders if they don't exist.

Examples:

$ rg config util
$ rg config shopping-cart -d ./modules
$ rg config Car -t complex-store

The generated file will be

  • apiUrl.js [contains api url ]
  • request.js [contains http request methods (get, post, put, delete, patch, update)]
  • storage.js [contains methods for local storage]

request

Directly create a request module based on the current settings.

$ rg request <name>

Arguments:

name: The name you want to use for the request module. Options:

  • -d, --destination <destination>: Override the destination for request module.
  • -p, --template-path <template-path>: Override template path.
  • -t, --template <template>: Override template type. By default it uses the 'src/services/config' folder from the template path. With this option you can use a different template folder.
  • -f, --force: Force creation of a config. By default it's impossible to create a request if the destination path doesn't exist. This option forces the creation of a request and will generates the destination folders if they don't exist.

Examples:

$ rg request apiRequest
$ rg request shopping-cart -d ./modules
$ rg request Car -t complex-store

The generated file will be

  • filename.js [contains http request methods (get, post, put, delete, patch, update)]

storage

Directly create a storage module based on the current settings.

$ rg storage <name>

Arguments:

name: The name you want to use for the storage module. Options:

  • -d, --destination <destination>: Override the destination for storage module.
  • -p, --template-path <template-path>: Override template path.
  • -t, --template <template>: Override template type. By default it uses the 'src/services/config' folder from the template path. With this option you can use a different template folder.
  • -f, --force: Force creation of a storage. By default it's impossible to create a storage if the destination path doesn't exist. This option forces the creation of a storage and will generates the destination folders if they don't exist.

Examples:

$ rg storage localStorage
$ rg storage shopping-cart -d ./modules
$ rg storage Car -t complex-store

The generated file will be

  • storage.js [contains methods for local storage]

setup

Directly create a setup for store and services based on the current settings.

$ rg setup <name>

Arguments:

name: The name is required but doesn't have any impact. Options:

  • -d, --destination <destination>: Override the destination for setup.
  • -p, --template-path <template-path>: Override template path.
  • -t, --template <template>: Override template type. By default it uses the 'src' folder from the template path. With this option you can use a different template folder.
  • -f, --force: Force creation of a setup. By default it's impossible to create a setup if the destination path doesn't exist. This option forces the creation of a setup and will generates the destination folders if they don't exist.

Examples:

$ rg setup text
$ rg setup shopping-cart -d ./modules
$ rg setup Car -t complex-store

This will generate the store and services module, the structure is mentioned above.

store [Recommended for redux-box]

Directly create a store module based on the current settings.

$ rg store <name>

Arguments:

name: The name you want to use for the store module. Options:

  • -d, --destination <destination>: Override the destination for store module.
  • -p, --template-path <template-path>: Override template path.
  • -t, --template <template>: Override template type. By default it uses the 'store' folder from the template path. With this option you can use a different template folder.
  • -f, --force: Force creation of a store. By default it's impossible to create a component if the destination path doesn't exist. This option forces the creation of a component and will generates the destination folders if they don't exist.

Examples:

$ rg store user
$ rg store shopping-cart -d ./modules
$ rg store Car -t complex-store

Note:This store is specifically for Redux-box users. Take a look at redux-box : https://www.npmjs.com/search?q=redux-box

The generated file will be *action.js *index.js *mutations.js *sagas.js *state.js

settings

Set or display settings. Without any options it will display the settings. By default it will set the settings locally in a .reactgenerator file. You can also set global settings by using the global option -g --global.

$ rg settings

Options:

  • -v, --view-destination <destination>: Set default view destination.
  • -c, --component-destination <destination>: Set default component destination.
  • -s, --store-destination <destination>: Set default store destination.
  • -t, --template-path <template-path>: Set template path.
  • -l, --log: Log global or local settings depending on the global flag.
  • -g, --global: Set global settings.

Examples:

$ rg settings -l
$ rg settings -v ./view -c ./component -s ./store/modules -t ./template
$ rg settings -g -c ./components

reset

Reset global settings to the defaults.

$ rg reset

show-templates

Open the default template directory. The default templates can be edited to fit your needs.

$ rg show-templates

copy-templates

Copy the default templates to another directory. This is handy when you want to customize the default templates. Don't forget to run rg init or set the template path with rg settings.

$ rg copy-templates

About

A CLI generator for React components, pages, styled-components and redux store, HTTP services, redux-box store, redux module.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published