Skip to content

Latest commit

 

History

History
214 lines (148 loc) · 4.58 KB

README.md

File metadata and controls

214 lines (148 loc) · 4.58 KB

goodz

A command-line utility for generating goodness

Goodz allows for structured, repeatable code generation for development teams.

Install

Install globally

$ npm install -g goodz

Install locally in your project

$ yarn add goodz --dev
// package.json
"Scripts": {
    "goodz": "goodz"
}

Usage

$ goodz --help

  Usage
    $ goodz          Select from a list of generators
    $ goodz <name>   Run a generator of that name

  Options
    -h, --help       Display the help screen
    -d, --dir        Specify base path directory
    -v, --version    Display the version number

  Examples
    $ goodz react.component
    $ goodz react.component --dir app

Uses Plop and Inquirer underneath... 🙌

Generators

React App

Generates a functional React app. Based on Create React App, but with some added goodness.

$ goodz react.app

Options

What is the name of your project?

Should this react app have Redux? (Y/n)

React Component

Generates a react component inside your app, based on atomic design principles

$ goodz react.component

Options

Name of component?" (e.g. Button)

Where should this component live?
choices: ["atoms", "molecules", "organisms", "templates"]

Do you need Styled Components, Material Design, or SCSS?",
choices: ["Styled Components", "Material Design", "SCSS"]

Do you need a Stateless or Stateful component?
choices: ["Stateless", "Stateful"]

Should this component be connected to the redux store? (y/N)

What functions would you like to include?
choices: ["constructor", "componentDidMount", "componentWillMount"]
*statefull components only*

What redux functions would you like to include?
choices: ["componentWillReceiveProps", "mapStateToProps", "mapDispatchToProps"]
*connected components only*

Output

  └── src
      └── components
          └── atoms
              └── Button
                  |── Button.js            - Component file
                  |── Button.style.js      - Scoped styled component
                  |── index.js             - For easy reference
                  └── __tests__
                      └── Button.test.js   - Jest unit test file

React Saga

Generates a saga inside your Redux app

$ goodz react.saga

Options

Saga Name? (e.g. counter)

Action Constant? (e.g. COUNTER_INCREMENT)

Reducer Constant? (e.g. COUNTER_CHANGED)

Output

  └── src
      └── state
        |── middleware.js
        |── saga.js
        └── store.js
        └── counter
          |── counter.actions.js
          |── counter.reducer.js
          |── counter.saga.js
          └── index.js

Gatsby App

Generates a Gatsby site readt to go. Site is based on Gatsby Starter Default

$ goodz gatsby.app

Options

What is the name of your project?

Do you want to use Contentful as a source? (Y/n)

What is your Contentful API Token?

What is your Contentful Space ID?

Output

  └── src
      └── config
      └── gatsby
      └── src

Gatsby Template

Generates a Gatsby templates in the templates folder of your Gatsby project.

$ goodz gatsby.template

Options

Template Name (e.g. blogPost)

FAQ

Why did you make this?

Everyone deserves some goodness from time to time.

Related

License

MIT