Skip to content

Commit 9739aea

Browse files
authored
Merge pull request #786 from constructive-io/devin/1772752266-cli-codegen-improvements
feat(codegen): auto-generate docs with dot-notation, clean types, --no-tty, and backend-default awareness
2 parents 52f5457 + ac6d46e commit 9739aea

218 files changed

Lines changed: 1441 additions & 791 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

graphql/codegen/src/__tests__/codegen/__snapshots__/cli-generator.test.ts.snap

Lines changed: 66 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ CRUD operations for Car records.
295295
| \`isElectric\` | Boolean |
296296
| \`createdAt\` | Datetime |
297297

298-
**Create fields:** \`make\`, \`model\`, \`year\`, \`isElectric\`
298+
**Required create fields:** \`make\`, \`model\`, \`year\`, \`isElectric\`
299299

300300
### \`driver\`
301301

@@ -317,7 +317,7 @@ CRUD operations for Driver records.
317317
| \`name\` | String |
318318
| \`licenseNumber\` | String |
319319

320-
**Create fields:** \`name\`, \`licenseNumber\`
320+
**Required create fields:** \`name\`, \`licenseNumber\`
321321

322322
## Custom Operations
323323

@@ -337,8 +337,8 @@ Authenticate a user
337337

338338
| Argument | Type |
339339
|----------|------|
340-
| \`email\` | String (required) |
341-
| \`password\` | String (required) |
340+
| \`--email\` | String (required) |
341+
| \`--password\` | String (required) |
342342

343343
## Output
344344

@@ -349,6 +349,14 @@ myapp car list | jq '.[]'
349349
myapp car get --id <uuid> | jq '.'
350350
\`\`\`
351351

352+
## Non-Interactive Mode
353+
354+
Use \`--no-tty\` to skip all interactive prompts (useful for scripts and CI):
355+
356+
\`\`\`bash
357+
myapp --no-tty car create --name "Sedan" --year 2024
358+
\`\`\`
359+
352360
---
353361

354362
Built by the [Constructive](https://constructive.io) team.
@@ -454,7 +462,7 @@ myapp car list
454462
### Create a car
455463

456464
\`\`\`bash
457-
myapp car create --make "value" --model "value" --year "value" --isElectric "value"
465+
myapp car create --make <value> --model <value> --year <value> --isElectric <value>
458466
\`\`\`
459467

460468
### Get a car by id
@@ -493,7 +501,7 @@ myapp driver list
493501
### Create a driver
494502

495503
\`\`\`bash
496-
myapp driver create --name "value" --licenseNumber "value"
504+
myapp driver create --name <value> --licenseNumber <value>
497505
\`\`\`
498506

499507
### Get a driver by id
@@ -576,6 +584,9 @@ myapp auth set-token <token>
576584
myapp car list
577585
myapp car get --id <value>
578586
myapp car create --<field> <value>
587+
588+
# Non-interactive mode (skip all prompts, use flags only)
589+
myapp --no-tty car list
579590
\`\`\`
580591

581592
## Examples
@@ -589,6 +600,12 @@ myapp auth set-token <token>
589600
myapp car list
590601
\`\`\`
591602

603+
### Non-interactive mode (for scripts and CI)
604+
605+
\`\`\`bash
606+
myapp --no-tty car create --<field> <value>
607+
\`\`\`
608+
592609
## References
593610

594611
See the \`references/\` directory for detailed per-entity API documentation:
@@ -2895,7 +2912,7 @@ CRUD operations for User records.
28952912
| \`email\` | String |
28962913
| \`name\` | String |
28972914

2898-
**Create fields:** \`email\`, \`name\`
2915+
**Required create fields:** \`email\`, \`name\`
28992916

29002917
### \`auth:current-user\`
29012918

@@ -2913,8 +2930,8 @@ Authenticate a user
29132930

29142931
| Argument | Type |
29152932
|----------|------|
2916-
| \`email\` | String (required) |
2917-
| \`password\` | String (required) |
2933+
| \`--email\` | String (required) |
2934+
| \`--password\` | String (required) |
29182935
- **Flags:** \`--save-token\` auto-saves returned token to credentials
29192936

29202937
## members Commands
@@ -2938,7 +2955,7 @@ CRUD operations for Member records.
29382955
| \`id\` | UUID |
29392956
| \`role\` | String |
29402957

2941-
**Create fields:** \`role\`
2958+
**Required create fields:** \`role\`
29422959

29432960
## app Commands
29442961

@@ -2965,7 +2982,7 @@ CRUD operations for Car records.
29652982
| \`isElectric\` | Boolean |
29662983
| \`createdAt\` | Datetime |
29672984

2968-
**Create fields:** \`make\`, \`model\`, \`year\`, \`isElectric\`
2985+
**Required create fields:** \`make\`, \`model\`, \`year\`, \`isElectric\`
29692986

29702987
## Output
29712988

@@ -2976,6 +2993,14 @@ myapp auth:user list | jq '.[]'
29762993
myapp auth:user get --id <uuid> | jq '.'
29772994
\`\`\`
29782995

2996+
## Non-Interactive Mode
2997+
2998+
Use \`--no-tty\` to skip all interactive prompts (useful for scripts and CI):
2999+
3000+
\`\`\`bash
3001+
myapp --no-tty auth:user create --name "Example"
3002+
\`\`\`
3003+
29793004
---
29803005

29813006
Built by the [Constructive](https://constructive.io) team.
@@ -3127,7 +3152,7 @@ myapp auth:user list
31273152
### Create a user
31283153

31293154
\`\`\`bash
3130-
myapp auth:user create --email "value" --name "value"
3155+
myapp auth:user create --email <value> --name <value>
31313156
\`\`\`
31323157
",
31333158
"fileName": "cli-auth/references/user.md",
@@ -3198,6 +3223,9 @@ CLI commands for the auth API target — 1 tables and 2 custom operations via my
31983223
myapp auth:user list
31993224
myapp auth:user get --id <value>
32003225
myapp auth:user create --<field> <value>
3226+
3227+
# Non-interactive mode (skip all prompts, use flags only)
3228+
myapp --no-tty auth:user list
32013229
\`\`\`
32023230

32033231
## Examples
@@ -3208,6 +3236,12 @@ myapp auth:user create --<field> <value>
32083236
myapp auth:user list
32093237
\`\`\`
32103238

3239+
### Non-interactive mode (for scripts and CI)
3240+
3241+
\`\`\`bash
3242+
myapp --no-tty auth:user create --<field> <value>
3243+
\`\`\`
3244+
32113245
## References
32123246

32133247
See the \`references/\` directory for detailed per-entity API documentation:
@@ -3246,7 +3280,7 @@ myapp members:member list
32463280
### Create a member
32473281

32483282
\`\`\`bash
3249-
myapp members:member create --role "value"
3283+
myapp members:member create --role <value>
32503284
\`\`\`
32513285
",
32523286
"fileName": "cli-members/references/member.md",
@@ -3270,6 +3304,9 @@ CLI commands for the members API target — 1 tables and 0 custom operations via
32703304
myapp members:member list
32713305
myapp members:member get --id <value>
32723306
myapp members:member create --<field> <value>
3307+
3308+
# Non-interactive mode (skip all prompts, use flags only)
3309+
myapp --no-tty members:member list
32733310
\`\`\`
32743311

32753312
## Examples
@@ -3280,6 +3317,12 @@ myapp members:member create --<field> <value>
32803317
myapp members:member list
32813318
\`\`\`
32823319

3320+
### Non-interactive mode (for scripts and CI)
3321+
3322+
\`\`\`bash
3323+
myapp --no-tty members:member create --<field> <value>
3324+
\`\`\`
3325+
32833326
## References
32843327

32853328
See the \`references/\` directory for detailed per-entity API documentation:
@@ -3316,7 +3359,7 @@ myapp app:car list
33163359
### Create a car
33173360

33183361
\`\`\`bash
3319-
myapp app:car create --make "value" --model "value" --year "value" --isElectric "value"
3362+
myapp app:car create --make <value> --model <value> --year <value> --isElectric <value>
33203363
\`\`\`
33213364
",
33223365
"fileName": "cli-app/references/car.md",
@@ -3340,6 +3383,9 @@ CLI commands for the app API target — 1 tables and 0 custom operations via mya
33403383
myapp app:car list
33413384
myapp app:car get --id <value>
33423385
myapp app:car create --<field> <value>
3386+
3387+
# Non-interactive mode (skip all prompts, use flags only)
3388+
myapp --no-tty app:car list
33433389
\`\`\`
33443390

33453391
## Examples
@@ -3350,6 +3396,12 @@ myapp app:car create --<field> <value>
33503396
myapp app:car list
33513397
\`\`\`
33523398

3399+
### Non-interactive mode (for scripts and CI)
3400+
3401+
\`\`\`bash
3402+
myapp --no-tty app:car create --<field> <value>
3403+
\`\`\`
3404+
33533405
## References
33543406

33553407
See the \`references/\` directory for detailed per-entity API documentation:

0 commit comments

Comments
 (0)