create-meridian-app 0.1.27 → 0.1.28
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 +134 -0
- package/package.json +1 -1
package/README.md
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# create-meridian-app
|
|
2
|
+
|
|
3
|
+
CLI for creating and managing MeridianJS projects. Scaffold a new project interactively, or manage an existing one with sub-commands for dev, production start, builds, database migrations, code generation, and the admin dashboard.
|
|
4
|
+
|
|
5
|
+
## Create a New Project
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npx create-meridian-app
|
|
9
|
+
# or
|
|
10
|
+
npx create-meridian-app my-app
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
The interactive wizard prompts for:
|
|
14
|
+
- Project name
|
|
15
|
+
- Database URL
|
|
16
|
+
- HTTP port (default: `9000`)
|
|
17
|
+
- Whether to include the admin dashboard
|
|
18
|
+
- Optional modules (Google OAuth, SendGrid, Resend, SES, S3)
|
|
19
|
+
- Whether to seed demo data
|
|
20
|
+
|
|
21
|
+
## CLI Commands
|
|
22
|
+
|
|
23
|
+
Once a project is created, the `meridian` CLI is available locally in the project:
|
|
24
|
+
|
|
25
|
+
### Development
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npm run dev
|
|
29
|
+
# or
|
|
30
|
+
meridian dev
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Starts the API server with `NODE_ENV=development` and, if `@meridianjs/admin-dashboard` is installed, starts the dashboard server. Loads `.env` automatically.
|
|
34
|
+
|
|
35
|
+
### Production
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npm start
|
|
39
|
+
# or
|
|
40
|
+
meridian start
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Starts the API server with `NODE_ENV=production`. Same process as `dev` but without development-only behaviour (schema auto-sync is disabled via `autoSyncSchema: false` in config).
|
|
44
|
+
|
|
45
|
+
### Build
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npm run build
|
|
49
|
+
# or
|
|
50
|
+
meridian build
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Runs `tsc --noEmit` to type-check the project.
|
|
54
|
+
|
|
55
|
+
### Database
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# Sync schema (adds missing tables/columns, never drops)
|
|
59
|
+
npm run db:migrate
|
|
60
|
+
meridian db:migrate
|
|
61
|
+
|
|
62
|
+
# Generate a migration file
|
|
63
|
+
npm run db:generate add-due-date
|
|
64
|
+
meridian db:generate add-due-date
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Code Generation
|
|
68
|
+
|
|
69
|
+
Scaffold boilerplate files for common patterns:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
meridian generate module <name> # New module in src/modules/
|
|
73
|
+
meridian generate workflow <name> # New workflow in src/workflows/
|
|
74
|
+
meridian generate subscriber <event> # New subscriber in src/subscribers/
|
|
75
|
+
meridian generate job <name> # New scheduled job in src/jobs/
|
|
76
|
+
meridian generate route <path> # New API route file
|
|
77
|
+
meridian generate plugin <name> # New local plugin in src/plugins/
|
|
78
|
+
|
|
79
|
+
# Alias
|
|
80
|
+
meridian g module my-feature
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Admin Dashboard
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# Serve the dashboard standalone (separate from API)
|
|
87
|
+
meridian serve-dashboard
|
|
88
|
+
meridian serve-dashboard --port 3000
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### User Management
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
meridian user:create --email admin@example.com --role super-admin
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Scaffolded Project Structure
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
my-app/
|
|
101
|
+
├── src/
|
|
102
|
+
│ ├── main.ts Entry point
|
|
103
|
+
│ ├── api/
|
|
104
|
+
│ │ ├── middlewares.ts Route-level middleware config
|
|
105
|
+
│ │ └── admin/ File-based API routes
|
|
106
|
+
│ ├── modules/ Custom domain modules
|
|
107
|
+
│ ├── workflows/ DAG workflows with compensation
|
|
108
|
+
│ ├── subscribers/ Event subscribers
|
|
109
|
+
│ ├── jobs/ Scheduled background jobs
|
|
110
|
+
│ ├── links/ Cross-module link definitions
|
|
111
|
+
│ └── admin/
|
|
112
|
+
│ └── widgets/
|
|
113
|
+
│ └── index.tsx Dashboard widget extensions
|
|
114
|
+
├── meridian.config.ts Framework configuration
|
|
115
|
+
├── .env Environment variables
|
|
116
|
+
├── .env.example Environment variable template
|
|
117
|
+
├── package.json
|
|
118
|
+
└── tsconfig.json
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Project `package.json` Scripts
|
|
122
|
+
|
|
123
|
+
| Script | Command | Description |
|
|
124
|
+
|---|---|---|
|
|
125
|
+
| `npm run dev` | `meridian dev` | Development server |
|
|
126
|
+
| `npm start` | `meridian start` | Production server |
|
|
127
|
+
| `npm run build` | `meridian build` | Type-check |
|
|
128
|
+
| `npm run db:migrate` | `meridian db:migrate` | Sync database schema |
|
|
129
|
+
| `npm run db:generate` | `meridian db:generate` | Generate migration |
|
|
130
|
+
| `npm run seed:demo` | (if opted in) | Seed demo data |
|
|
131
|
+
|
|
132
|
+
## License
|
|
133
|
+
|
|
134
|
+
MIT
|