0.0.5 • Published 9 months ago

@eagerworks/next-gen v0.0.5

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

Next-Gen Boilerplate Generator

This utility facilitates the setup process for a NextJS application incorporating the T3 stack (trpc, nextjs, tailwind, prisma) by generating boilerplate code on-the-fly.

Features:

  • Create controller files.
  • Formulate schema files for Prisma.
  • Craft zod validation schemas.
  • Design forms with tailwind styling.
  • Start with a configuration file for your application.

Installation

Before you begin, ensure you've initiated your NextJS project. Then, bring this utility onboard:

npm install -g next-gen

Usage

Initialization

Before diving into component generation, initialize your project:

next-gen init

Executing this will yield a configuration file (next-gen.json) in your project's root. This config file allows you to set paths to your own templates and where each resource should be generated.

Crafting Components

To birth new components, the go-to command is generate:

next-gen generate <type> <name> [options]

Parameters:

  • <type>: Denotes the kind of component you aim to produce. Valid entries include:

    • controller
    • schema
    • zodSchemas
    • form
    • scaffold (Generates controller, schema, zodSchemas, and form all in one go!)
  • <name>: The christening name for the component.

Options:

  • -a, --attributes <attributes>: Specifies a list of component attributes in the name:type format. This is particularly beneficial when molding schemas. Ensure attributes are comma-separated.

    Example: --attributes name:string,age:number,email:string

Currently the following types are supported:

  • string
  • number
  • boolean
  • date
  • json
  • text
  • float
  • double
  • enums
  • references

Examples:

  1. For a 'User' controller generation:
next-gen generate controller User
  1. For a 'Post' schema birth with respective attributes:
next-gen generate schema Post --attributes title:string,body:string
  1. Generating all the fundamental components (scaffold) for a 'Product':
next-gen generate scaffold Product --attributes name:string,price:number

Roadmap

  • Add more types
  • Generate New page
  • Generate Edit page
  • Generate Index page
  • Generate Show page
  • Automatically add router to routes file
  • Form component should be created with necessary inputs
  • Allow setting custom inputs for each attribute type
  • Generate controller tests
  • Generate component test

Feedback

If you stumble upon an issue or have a spark of improvement, don't be shy! Head to the GitHub repository and let us know.

Happy NextJS adventures with the T3 stack! 🚀