Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eagerworks/next-gen
https://github.com/eagerworks/next-gen
Last synced: 17 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/eagerworks/next-gen
- Owner: eagerworks
- License: mit
- Created: 2023-08-19T15:35:13.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-08-19T22:35:56.000Z (over 1 year ago)
- Last Synced: 2024-11-13T13:05:01.944Z (about 2 months ago)
- Language: TypeScript
- Size: 32.2 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Next-Gen Boilerplate Generator
This utility facilitates the setup process for a NextJS application incorporating the [T3 stack](https://create.t3.gg/) (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:
```bash
npm install -g next-gen
```## Usage
### Initialization
Before diving into component generation, initialize your project:
```bash
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`:
```bash
next-gen generate [options]
```#### Parameters:
- ``: 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!)- ``: The christening name for the component.
#### Options:
- `-a, --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:
- [x] string
- [x] number
- [x] boolean
- [x] date
- [x] json
- [x] text
- [x] float
- [x] double
- [ ] enums
- [ ] references#### Examples:
1. For a 'User' controller generation:
```bash
next-gen generate controller User
```2. For a 'Post' schema birth with respective attributes:
```bash
next-gen generate schema Post --attributes title:string,body:string
```3. Generating all the fundamental components (scaffold) for a 'Product':
```bash
next-gen generate scaffold Product --attributes name:string,price:number
```## Roadmap
- [ ] Add more types
- [x] Generate New page
- [x] Generate Edit page
- [ ] Generate Index page
- [ ] Generate Show page
- [x] 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! 🚀