fwinit 1.3.0 → 1.3.1
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 +84 -22
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# fwinit
|
|
2
2
|
|
|
3
|
-
CLI para crear proyectos desde templates. Instalás una vez y scaffoldás proyectos con un comando.
|
|
3
|
+
CLI para crear proyectos desde templates. Instalás una vez y scaffoldás proyectos con un comando: un solo template, o un proyecto full stack completo (backend + frontend + base de datos).
|
|
4
4
|
|
|
5
5
|
## Instalación
|
|
6
6
|
|
|
@@ -17,51 +17,112 @@ bun add -g fwinit
|
|
|
17
17
|
|
|
18
18
|
## Uso
|
|
19
19
|
|
|
20
|
-
### Modo directo
|
|
21
|
-
|
|
22
20
|
```bash
|
|
21
|
+
# Menú interactivo: elegís entre full stack, solo backend o solo frontend
|
|
22
|
+
fwinit
|
|
23
|
+
|
|
24
|
+
# Crear un solo template (backend o frontend)
|
|
23
25
|
fwinit fastify mi-api
|
|
24
26
|
fwinit aspnet mi-app
|
|
25
27
|
fwinit react-native mi-mobile
|
|
28
|
+
|
|
29
|
+
# Crear un proyecto completo: backend + frontend (+ db incluida)
|
|
30
|
+
fwinit fullstack mi-proyecto
|
|
31
|
+
|
|
32
|
+
# Elegir los templates sin preguntas (modo scripting/CI)
|
|
33
|
+
fwinit fullstack mi-proyecto -b fastify -f react-native -p pnpm
|
|
34
|
+
|
|
35
|
+
# Ver templates disponibles (agrupados por capa)
|
|
36
|
+
fwinit list
|
|
37
|
+
|
|
38
|
+
# Ayuda
|
|
39
|
+
fwinit --help
|
|
26
40
|
```
|
|
27
41
|
|
|
28
42
|
### Modo interactivo
|
|
29
43
|
|
|
30
|
-
|
|
31
|
-
|
|
44
|
+
`fwinit` sin argumentos abre el menú principal:
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
? ¿Qué querés crear?
|
|
48
|
+
> Full stack (backend + frontend)
|
|
49
|
+
Solo backend (API)
|
|
50
|
+
Solo frontend (app)
|
|
32
51
|
```
|
|
33
52
|
|
|
34
|
-
|
|
53
|
+
- **Full stack**: te pregunta primero el backend y después el frontend, y arma el monorepo completo.
|
|
54
|
+
- **Solo backend / Solo frontend**: te pregunta el template de la capa, el nombre, el layout y el package manager.
|
|
35
55
|
|
|
36
|
-
###
|
|
56
|
+
### Proyecto full stack
|
|
37
57
|
|
|
38
58
|
```bash
|
|
39
|
-
fwinit
|
|
59
|
+
fwinit fullstack mi-proyecto
|
|
40
60
|
```
|
|
41
61
|
|
|
42
|
-
|
|
62
|
+
Pregunta qué backend querés (ASP.NET, Express, Fastify, Node.js Vanilla) y qué frontend (React Native). Genera:
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
mi-proyecto/
|
|
66
|
+
├── backend/ # API (template elegido — trae su DB: Prisma o EF)
|
|
67
|
+
├── frontend/ # App (template frontend elegido)
|
|
68
|
+
├── .gitignore # .atl/ · odd · .opencode/
|
|
69
|
+
├── .opencode/ # Skills de opencode (create-specs incluida)
|
|
70
|
+
├── README.md # Cómo correr backend y frontend
|
|
71
|
+
└── specs/ # La creás con /create-specs
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
La base de datos no se configura aparte: viene incluida en el template backend (Prisma en los templates JS/TS, EF Core en ASP.NET).
|
|
75
|
+
|
|
76
|
+
### Layout de capa (monorepo liviano)
|
|
77
|
+
|
|
78
|
+
Al crear un solo template, el CLI pregunta si querés empaquetar el código en una carpeta de capa (default: sí):
|
|
43
79
|
|
|
44
80
|
```bash
|
|
45
|
-
|
|
81
|
+
# backend/ + .opencode/ + specs/ al mismo nivel
|
|
82
|
+
fwinit express mi-api
|
|
83
|
+
# raíz limpia (todo el código en mi-api/)
|
|
84
|
+
fwinit express mi-api --no-backend
|
|
85
|
+
# forzar el layout de capa sin preguntas
|
|
86
|
+
fwinit express mi-api --backend
|
|
46
87
|
```
|
|
47
88
|
|
|
89
|
+
Igual para frontend: `fwinit react-native mi-app` pregunta por `frontend/`.
|
|
90
|
+
|
|
91
|
+
## Flags
|
|
92
|
+
|
|
93
|
+
| Flag | Descripción |
|
|
94
|
+
|------|-------------|
|
|
95
|
+
| `-p, --pm <manager>` | Package manager: `npm`, `pnpm` o `bun` (saltea la pregunta) |
|
|
96
|
+
| `--backend` | Empaquetar el código en `backend/` (solo modo single, saltea la pregunta) |
|
|
97
|
+
| `--no-backend` | Dejar el código en la raíz del proyecto (saltea la pregunta) |
|
|
98
|
+
| `-b, --backend-template <tpl>` | Backend a usar en fullstack (saltea la pregunta) |
|
|
99
|
+
| `-f, --frontend-template <tpl>` | Frontend a usar en fullstack (saltea la pregunta) |
|
|
100
|
+
|
|
48
101
|
## Templates disponibles
|
|
49
102
|
|
|
50
|
-
| Template | Descripción | Runtime |
|
|
51
|
-
|
|
52
|
-
| `aspnet` | API REST con ASP.NET Core, Clean Architecture y C# | dotnet |
|
|
53
|
-
| `express` | API REST con Express, Prisma, TypeScript y Bun | bun |
|
|
54
|
-
| `fastify` | API REST con Fastify, Prisma, TypeScript y Bun | bun |
|
|
55
|
-
| `nodejs` | API con Node.js puro, Prisma, TypeScript y tsx | node |
|
|
56
|
-
| `react-native` | App móvil con React Native, Expo y TypeScript | node |
|
|
103
|
+
| Template | Capa | Descripción | Runtime |
|
|
104
|
+
|----------|------|-------------|---------|
|
|
105
|
+
| `aspnet` | backend | API REST con ASP.NET Core, Clean Architecture y C# | dotnet |
|
|
106
|
+
| `express` | backend | API REST con Express, Prisma, TypeScript y Bun | bun |
|
|
107
|
+
| `fastify` | backend | API REST con Fastify, Prisma, TypeScript y Bun | bun |
|
|
108
|
+
| `nodejs` | backend | API con Node.js puro, Prisma, TypeScript y tsx | node |
|
|
109
|
+
| `react-native` | frontend | App móvil con React Native, Expo y TypeScript | node |
|
|
110
|
+
|
|
111
|
+
La capa es metadata de cada template (`layer` en `templates/<TEMPLATE>/template.json`): para sumar un frontend nuevo (Astro, Next.js...), alcanza con agregar la carpeta del template y su `layer`. Los templates se clasifican por capa en la metadata, no por estructura de carpetas.
|
|
112
|
+
|
|
113
|
+
El runtime `bun` de un template se porta automáticamente a `node` (npm/pnpm) si elegís npm o pnpm: scripts con `tsx`, tests con `vitest` y sin `bun-types`.
|
|
57
114
|
|
|
58
115
|
## Qué hace
|
|
59
116
|
|
|
60
|
-
1. Descarga el ZIP del repositorio de templates desde GitHub
|
|
61
|
-
2. Extrae el template
|
|
62
|
-
3.
|
|
63
|
-
4.
|
|
64
|
-
5.
|
|
117
|
+
1. Descarga el ZIP del repositorio de templates desde GitHub (una sola vez, también en fullstack)
|
|
118
|
+
2. Extrae y copia el template (o los dos, `backend/` + `frontend/`) al proyecto
|
|
119
|
+
3. Sustituye el nombre del proyecto (package.json, app.json de Expo, proyectos ASP.NET con "Example")
|
|
120
|
+
4. Si corresponde, porta el template de runtime bun a node (npm/pnpm)
|
|
121
|
+
5. Instala `.opencode/` con la skill `create-specs` y el comando `/create-specs`
|
|
122
|
+
6. Limpia los lock files (cada proyecto instala los suyos)
|
|
123
|
+
7. Te muestra los próximos pasos (install y dev de cada carpeta)
|
|
124
|
+
|
|
125
|
+
En modo fullstack, además crea `.gitignore` y `README.md` en la raíz del monorepo.
|
|
65
126
|
|
|
66
127
|
## Desarrollo
|
|
67
128
|
|
|
@@ -93,6 +154,7 @@ bun run typecheck
|
|
|
93
154
|
```bash
|
|
94
155
|
node dist/index.js list
|
|
95
156
|
node dist/index.js fastify mi-api
|
|
157
|
+
node dist/index.js fullstack mi-proyecto -b fastify -f react-native -p pnpm
|
|
96
158
|
```
|
|
97
159
|
|
|
98
160
|
### Link global para desarrollo
|