starter-structure-cli 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +92 -0
- package/bin/starter-structure-cli.js +942 -0
- package/package.json +34 -0
- package/scripts/check-templates.js +66 -0
- package/templates/backend-only/express-mongoose-jwt/.env.example +6 -0
- package/templates/backend-only/express-mongoose-jwt/README.md +43 -0
- package/templates/backend-only/express-mongoose-jwt/config/db.js +19 -0
- package/templates/backend-only/express-mongoose-jwt/controllers/auth/index.js +91 -0
- package/templates/backend-only/express-mongoose-jwt/index.js +44 -0
- package/templates/backend-only/express-mongoose-jwt/middleware/authenticate.js +35 -0
- package/templates/backend-only/express-mongoose-jwt/middleware/error-handler.js +16 -0
- package/templates/backend-only/express-mongoose-jwt/middleware/not-found.js +7 -0
- package/templates/backend-only/express-mongoose-jwt/models/user.js +54 -0
- package/templates/backend-only/express-mongoose-jwt/package.json +30 -0
- package/templates/backend-only/express-mongoose-jwt/routes/auth/index.js +12 -0
- package/templates/backend-only/express-mongoose-jwt/routes/index.js +16 -0
- package/templates/backend-only/express-mongoose-jwt/utils/api-response.js +20 -0
- package/templates/backend-only/express-mongoose-jwt/utils/generate-token.js +9 -0
package/README.md
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# starter-structure-cli
|
|
2
|
+
|
|
3
|
+
Scaffold your own starter templates from a stack combination such as `react vite ts tailwind express prisma mysql`, `nextjs tailwind mongoose mongodb`, or `vue vite ts tailwind express mongoose`.
|
|
4
|
+
|
|
5
|
+
The CLI discovers templates directly from your local `templates/` folder, so you only maintain the template code once. Naming the template folder with stack tokens is enough for the generator to match it.
|
|
6
|
+
|
|
7
|
+
## Template layout
|
|
8
|
+
|
|
9
|
+
Put each starter inside:
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
templates/
|
|
13
|
+
fullstack/
|
|
14
|
+
react-vite-ts-tailwind-express-prisma-mysql/
|
|
15
|
+
react-vite-ts-tailwind-express-sequelize-mysql/
|
|
16
|
+
nextjs-tailwind-mongoose-mongodb/
|
|
17
|
+
single/
|
|
18
|
+
react-vite-ts-tailwind/
|
|
19
|
+
vue-vite-ts-tailwind/
|
|
20
|
+
backend-only/
|
|
21
|
+
express-mongoose-jwt/
|
|
22
|
+
monorepo-client-server/
|
|
23
|
+
react-vite-ts-express-mongoose/
|
|
24
|
+
monorepo-turbo-pnpm/
|
|
25
|
+
nextjs-api-express-prisma/
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Your folder names become the searchable stack tokens.
|
|
29
|
+
|
|
30
|
+
## Usage
|
|
31
|
+
|
|
32
|
+
Interactive:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npx starter-structure-cli my-app
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Direct stack query:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
npx starter-structure-cli my-pos react vite ts tailwind express sequelize mysql
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
With explicit flags:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npx starter-structure-cli my-saas --category fullstack --frontend react --backend express --orm prisma --database mysql --styling tailwind
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Exact template:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npx starter-structure-cli my-gym --template fullstack/react-vite-ts-tailwind-express-sequelize-mysql
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
List discovered templates:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npx starter-structure-cli --list
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Supported filters
|
|
63
|
+
|
|
64
|
+
- `--category`: `fullstack`, `frontend-only`, `single`, `backend-only`, `monorepo`, `turbo`
|
|
65
|
+
- `--frontend`: `react`, `nextjs`, `vue`
|
|
66
|
+
- `--backend`: `express`, `nestjs`, `fastify`
|
|
67
|
+
- `--styling`: `tailwind`, `shadcn`
|
|
68
|
+
- `--orm`: `prisma`, `mongoose`, `sequelize`
|
|
69
|
+
- `--database`: `mongodb`, `mysql`, `postgres`
|
|
70
|
+
- `--auth`: `jwt`, `nextauth`
|
|
71
|
+
- `--language`: `ts`, `js`
|
|
72
|
+
|
|
73
|
+
## Placeholder replacement
|
|
74
|
+
|
|
75
|
+
The CLI replaces `__APP_NAME__` in copied file contents and file/folder names.
|
|
76
|
+
|
|
77
|
+
## Publish to npm
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
npm install
|
|
81
|
+
npm publish
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
`prepack` validates that every template directory contains at least one file. This prevents publishing a package that ships no starter templates.
|
|
85
|
+
|
|
86
|
+
## Development
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
npm install
|
|
90
|
+
node ./scripts/check-templates.js
|
|
91
|
+
node ./bin/starter-structure-cli.js --list
|
|
92
|
+
```
|