Skip to content

Commit 2af7bad

Browse files
committed
feat(codegen): replace generic <value> placeholders with type-aware placeholders
- Add fieldPlaceholder(), pkPlaceholder(), and argPlaceholder() helpers to docs-utils.ts - fieldPlaceholder: generates '<TypeName>' from CleanField (e.g. '<String>', '<UUID>') - pkPlaceholder: generates '<TypeName>' from PrimaryKeyField - argPlaceholder: handles scalars and INPUT_OBJECT types (expands fields when ≤5) - Update flattenedArgsToFlags() to use <TypeName> instead of <value> - Update ORM docs-generator to use type-aware placeholders for all code examples - Update hooks docs-generator to use type-aware placeholders for all code examples - Update CLI docs-generator to use type-aware flag placeholders - Thread TypeRegistry through generate.ts to ORM and hooks generators - Update test snapshots
1 parent 3b37352 commit 2af7bad

6 files changed

Lines changed: 165 additions & 101 deletions

File tree

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

Lines changed: 64 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -281,10 +281,10 @@ CRUD operations for Car records via myapp CLI
281281

282282
\`\`\`bash
283283
myapp car list
284-
myapp car get --id <value>
285-
myapp car create --make <value> --model <value> --year <value> --isElectric <value>
286-
myapp car update --id <value> [--make <value>] [--model <value>] [--year <value>] [--isElectric <value>]
287-
myapp car delete --id <value>
284+
myapp car get --id <UUID>
285+
myapp car create --make <String> --model <String> --year <Int> --isElectric <Boolean>
286+
myapp car update --id <UUID> [--make <String>] [--model <String>] [--year <Int>] [--isElectric <Boolean>]
287+
myapp car delete --id <UUID>
288288
\`\`\`
289289

290290
## Examples
@@ -298,7 +298,7 @@ myapp car list
298298
### Create a car
299299

300300
\`\`\`bash
301-
myapp car create --make <value> --model <value> --year <value> --isElectric <value>
301+
myapp car create --make <String> --model <String> --year <Int> --isElectric <Boolean>
302302
\`\`\`
303303

304304
### Get a car by id
@@ -320,10 +320,10 @@ CRUD operations for Driver records via myapp CLI
320320

321321
\`\`\`bash
322322
myapp driver list
323-
myapp driver get --id <value>
324-
myapp driver create --name <value> --licenseNumber <value>
325-
myapp driver update --id <value> [--name <value>] [--licenseNumber <value>]
326-
myapp driver delete --id <value>
323+
myapp driver get --id <UUID>
324+
myapp driver create --name <String> --licenseNumber <String>
325+
myapp driver update --id <UUID> [--name <String>] [--licenseNumber <String>]
326+
myapp driver delete --id <UUID>
327327
\`\`\`
328328

329329
## Examples
@@ -337,7 +337,7 @@ myapp driver list
337337
### Create a driver
338338

339339
\`\`\`bash
340-
myapp driver create --name <value> --licenseNumber <value>
340+
myapp driver create --name <String> --licenseNumber <String>
341341
\`\`\`
342342

343343
### Get a driver by id
@@ -381,15 +381,15 @@ Authenticate a user
381381
## Usage
382382

383383
\`\`\`bash
384-
myapp login --email <value> --password <value>
384+
myapp login --email <String> --password <String>
385385
\`\`\`
386386

387387
## Examples
388388

389389
### Run login
390390

391391
\`\`\`bash
392-
myapp login --email <value> --password <value>
392+
myapp login --email <String> --password <String>
393393
\`\`\`
394394
"
395395
`;
@@ -1409,15 +1409,15 @@ const { data, isLoading } = useCarsQuery({
14091409

14101410
// Get one car
14111411
const { data: item } = useCarQuery({
1412-
id: '<value>',
1412+
id: '<UUID>',
14131413
selection: { fields: { id: true, make: true, model: true, year: true, isElectric: true, createdAt: true } },
14141414
});
14151415

14161416
// Create a car
14171417
const { mutate: create } = useCreateCarMutation({
14181418
selection: { fields: { id: true } },
14191419
});
1420-
create({ make: '<value>', model: '<value>', year: '<value>', isElectric: '<value>' });
1420+
create({ make: '<String>', model: '<String>', year: '<Int>', isElectric: '<Boolean>' });
14211421
\`\`\`
14221422

14231423
### Driver
@@ -1430,15 +1430,15 @@ const { data, isLoading } = useDriversQuery({
14301430

14311431
// Get one driver
14321432
const { data: item } = useDriverQuery({
1433-
id: '<value>',
1433+
id: '<UUID>',
14341434
selection: { fields: { id: true, name: true, licenseNumber: true } },
14351435
});
14361436

14371437
// Create a driver
14381438
const { mutate: create } = useCreateDriverMutation({
14391439
selection: { fields: { id: true } },
14401440
});
1441-
create({ name: '<value>', licenseNumber: '<value>' });
1441+
create({ name: '<String>', licenseNumber: '<String>' });
14421442
\`\`\`
14431443

14441444
## Custom Operation Hooks
@@ -1485,7 +1485,7 @@ React Query hooks for Car data operations
14851485

14861486
\`\`\`typescript
14871487
useCarsQuery({ selection: { fields: { id: true, make: true, model: true, year: true, isElectric: true, createdAt: true } } })
1488-
useCarQuery({ id: '<value>', selection: { fields: { id: true, make: true, model: true, year: true, isElectric: true, createdAt: true } } })
1488+
useCarQuery({ id: '<UUID>', selection: { fields: { id: true, make: true, model: true, year: true, isElectric: true, createdAt: true } } })
14891489
useCreateCarMutation({ selection: { fields: { id: true } } })
14901490
useUpdateCarMutation({ selection: { fields: { id: true } } })
14911491
useDeleteCarMutation({})
@@ -1507,7 +1507,7 @@ const { data, isLoading } = useCarsQuery({
15071507
const { mutate } = useCreateCarMutation({
15081508
selection: { fields: { id: true } },
15091509
});
1510-
mutate({ make: '<value>', model: '<value>', year: '<value>', isElectric: '<value>' });
1510+
mutate({ make: '<String>', model: '<String>', year: '<Int>', isElectric: '<Boolean>' });
15111511
\`\`\`
15121512
"
15131513
`;
@@ -1523,7 +1523,7 @@ React Query hooks for Driver data operations
15231523

15241524
\`\`\`typescript
15251525
useDriversQuery({ selection: { fields: { id: true, name: true, licenseNumber: true } } })
1526-
useDriverQuery({ id: '<value>', selection: { fields: { id: true, name: true, licenseNumber: true } } })
1526+
useDriverQuery({ id: '<UUID>', selection: { fields: { id: true, name: true, licenseNumber: true } } })
15271527
useCreateDriverMutation({ selection: { fields: { id: true } } })
15281528
useUpdateDriverMutation({ selection: { fields: { id: true } } })
15291529
useDeleteDriverMutation({})
@@ -1545,7 +1545,7 @@ const { data, isLoading } = useDriversQuery({
15451545
const { mutate } = useCreateDriverMutation({
15461546
selection: { fields: { id: true } },
15471547
});
1548-
mutate({ name: '<value>', licenseNumber: '<value>' });
1548+
mutate({ name: '<String>', licenseNumber: '<String>' });
15491549
\`\`\`
15501550
"
15511551
`;
@@ -1583,7 +1583,7 @@ Authenticate a user
15831583
## Usage
15841584

15851585
\`\`\`typescript
1586-
const { mutate } = useLoginMutation(); mutate({ email: '<value>', password: '<value>' });
1586+
const { mutate } = useLoginMutation(); mutate({ email: '<String>', password: '<String>' });
15871587
\`\`\`
15881588

15891589
## Examples
@@ -1592,7 +1592,7 @@ const { mutate } = useLoginMutation(); mutate({ email: '<value>', password: '<va
15921592

15931593
\`\`\`typescript
15941594
const { mutate, isLoading } = useLoginMutation();
1595-
mutate({ email: '<value>', password: '<value>' });
1595+
mutate({ email: '<String>', password: '<String>' });
15961596
\`\`\`
15971597
"
15981598
`;
@@ -2654,10 +2654,10 @@ CRUD operations for User records via myapp CLI (auth target)
26542654

26552655
\`\`\`bash
26562656
myapp auth:user list
2657-
myapp auth:user get --id <value>
2658-
myapp auth:user create --email <value> --name <value>
2659-
myapp auth:user update --id <value> [--email <value>] [--name <value>]
2660-
myapp auth:user delete --id <value>
2657+
myapp auth:user get --id <UUID>
2658+
myapp auth:user create --email <String> --name <String>
2659+
myapp auth:user update --id <UUID> [--email <String>] [--name <String>]
2660+
myapp auth:user delete --id <UUID>
26612661
\`\`\`
26622662

26632663
## Examples
@@ -2671,7 +2671,7 @@ myapp auth:user list
26712671
### Create a user
26722672

26732673
\`\`\`bash
2674-
myapp auth:user create --email <value> --name <value>
2674+
myapp auth:user create --email <String> --name <String>
26752675
\`\`\`
26762676
",
26772677
"fileName": "cli-auth/references/user.md",
@@ -2709,16 +2709,16 @@ Authenticate a user (auth target)
27092709
## Usage
27102710

27112711
\`\`\`bash
2712-
myapp auth:login --email <value> --password <value>
2713-
myapp auth:login --email <value> --password <value> --save-token
2712+
myapp auth:login --email <String> --password <String>
2713+
myapp auth:login --email <String> --password <String> --save-token
27142714
\`\`\`
27152715

27162716
## Examples
27172717

27182718
### Run login
27192719

27202720
\`\`\`bash
2721-
myapp auth:login --email <value> --password <value>
2721+
myapp auth:login --email <String> --password <String>
27222722
\`\`\`
27232723
",
27242724
"fileName": "cli-auth/references/login.md",
@@ -2782,10 +2782,10 @@ CRUD operations for Member records via myapp CLI (members target)
27822782

27832783
\`\`\`bash
27842784
myapp members:member list
2785-
myapp members:member get --id <value>
2786-
myapp members:member create --role <value>
2787-
myapp members:member update --id <value> [--role <value>]
2788-
myapp members:member delete --id <value>
2785+
myapp members:member get --id <UUID>
2786+
myapp members:member create --role <String>
2787+
myapp members:member update --id <UUID> [--role <String>]
2788+
myapp members:member delete --id <UUID>
27892789
\`\`\`
27902790

27912791
## Examples
@@ -2799,7 +2799,7 @@ myapp members:member list
27992799
### Create a member
28002800

28012801
\`\`\`bash
2802-
myapp members:member create --role <value>
2802+
myapp members:member create --role <String>
28032803
\`\`\`
28042804
",
28052805
"fileName": "cli-members/references/member.md",
@@ -2861,10 +2861,10 @@ CRUD operations for Car records via myapp CLI (app target)
28612861

28622862
\`\`\`bash
28632863
myapp app:car list
2864-
myapp app:car get --id <value>
2865-
myapp app:car create --make <value> --model <value> --year <value> --isElectric <value>
2866-
myapp app:car update --id <value> [--make <value>] [--model <value>] [--year <value>] [--isElectric <value>]
2867-
myapp app:car delete --id <value>
2864+
myapp app:car get --id <UUID>
2865+
myapp app:car create --make <String> --model <String> --year <Int> --isElectric <Boolean>
2866+
myapp app:car update --id <UUID> [--make <String>] [--model <String>] [--year <Int>] [--isElectric <Boolean>]
2867+
myapp app:car delete --id <UUID>
28682868
\`\`\`
28692869

28702870
## Examples
@@ -2878,7 +2878,7 @@ myapp app:car list
28782878
### Create a car
28792879

28802880
\`\`\`bash
2881-
myapp app:car create --make <value> --model <value> --year <value> --isElectric <value>
2881+
myapp app:car create --make <String> --model <String> --year <Int> --isElectric <Boolean>
28822882
\`\`\`
28832883
",
28842884
"fileName": "cli-app/references/car.md",
@@ -4254,16 +4254,16 @@ CRUD operations for Car records.
42544254
const items = await db.car.findMany({ select: { id: true, make: true, model: true, year: true, isElectric: true, createdAt: true } }).execute();
42554255

42564256
// Get one by id
4257-
const item = await db.car.findOne({ id: '<value>', select: { id: true, make: true, model: true, year: true, isElectric: true, createdAt: true } }).execute();
4257+
const item = await db.car.findOne({ id: '<UUID>', select: { id: true, make: true, model: true, year: true, isElectric: true, createdAt: true } }).execute();
42584258

42594259
// Create
4260-
const created = await db.car.create({ data: { make: '<value>', model: '<value>', year: '<value>', isElectric: '<value>' }, select: { id: true } }).execute();
4260+
const created = await db.car.create({ data: { make: '<String>', model: '<String>', year: '<Int>', isElectric: '<Boolean>' }, select: { id: true } }).execute();
42614261

42624262
// Update
4263-
const updated = await db.car.update({ where: { id: '<value>' }, data: { make: '<new-value>' }, select: { id: true } }).execute();
4263+
const updated = await db.car.update({ where: { id: '<UUID>' }, data: { make: '<String>' }, select: { id: true } }).execute();
42644264

42654265
// Delete
4266-
const deleted = await db.car.delete({ where: { id: '<value>' } }).execute();
4266+
const deleted = await db.car.delete({ where: { id: '<UUID>' } }).execute();
42674267
\`\`\`
42684268

42694269
### \`db.driver\`
@@ -4285,16 +4285,16 @@ CRUD operations for Driver records.
42854285
const items = await db.driver.findMany({ select: { id: true, name: true, licenseNumber: true } }).execute();
42864286

42874287
// Get one by id
4288-
const item = await db.driver.findOne({ id: '<value>', select: { id: true, name: true, licenseNumber: true } }).execute();
4288+
const item = await db.driver.findOne({ id: '<UUID>', select: { id: true, name: true, licenseNumber: true } }).execute();
42894289

42904290
// Create
4291-
const created = await db.driver.create({ data: { name: '<value>', licenseNumber: '<value>' }, select: { id: true } }).execute();
4291+
const created = await db.driver.create({ data: { name: '<String>', licenseNumber: '<String>' }, select: { id: true } }).execute();
42924292

42934293
// Update
4294-
const updated = await db.driver.update({ where: { id: '<value>' }, data: { name: '<new-value>' }, select: { id: true } }).execute();
4294+
const updated = await db.driver.update({ where: { id: '<UUID>' }, data: { name: '<String>' }, select: { id: true } }).execute();
42954295

42964296
// Delete
4297-
const deleted = await db.driver.delete({ where: { id: '<value>' } }).execute();
4297+
const deleted = await db.driver.delete({ where: { id: '<UUID>' } }).execute();
42984298
\`\`\`
42994299

43004300
## Custom Operations
@@ -4323,7 +4323,7 @@ Authenticate a user
43234323
| \`password\` | String (required) |
43244324

43254325
\`\`\`typescript
4326-
const result = await db.mutation.login({ email: '<value>', password: '<value>' }).execute();
4326+
const result = await db.mutation.login({ email: '<String>', password: '<String>' }).execute();
43274327
\`\`\`
43284328

43294329
---
@@ -4349,10 +4349,10 @@ ORM operations for Car records
43494349

43504350
\`\`\`typescript
43514351
db.car.findMany({ select: { id: true } }).execute()
4352-
db.car.findOne({ id: '<value>', select: { id: true } }).execute()
4353-
db.car.create({ data: { make: '<value>', model: '<value>', year: '<value>', isElectric: '<value>' }, select: { id: true } }).execute()
4354-
db.car.update({ where: { id: '<value>' }, data: { make: '<new>' }, select: { id: true } }).execute()
4355-
db.car.delete({ where: { id: '<value>' } }).execute()
4352+
db.car.findOne({ id: '<UUID>', select: { id: true } }).execute()
4353+
db.car.create({ data: { make: '<String>', model: '<String>', year: '<Int>', isElectric: '<Boolean>' }, select: { id: true } }).execute()
4354+
db.car.update({ where: { id: '<UUID>' }, data: { make: '<String>' }, select: { id: true } }).execute()
4355+
db.car.delete({ where: { id: '<UUID>' } }).execute()
43564356
\`\`\`
43574357

43584358
## Examples
@@ -4369,7 +4369,7 @@ const items = await db.car.findMany({
43694369

43704370
\`\`\`typescript
43714371
const item = await db.car.create({
4372-
data: { make: 'value', model: 'value', year: 'value', isElectric: 'value' },
4372+
data: { make: '<String>', model: '<String>', year: '<Int>', isElectric: '<Boolean>' },
43734373
select: { id: true }
43744374
}).execute();
43754375
\`\`\`
@@ -4387,10 +4387,10 @@ ORM operations for Driver records
43874387

43884388
\`\`\`typescript
43894389
db.driver.findMany({ select: { id: true } }).execute()
4390-
db.driver.findOne({ id: '<value>', select: { id: true } }).execute()
4391-
db.driver.create({ data: { name: '<value>', licenseNumber: '<value>' }, select: { id: true } }).execute()
4392-
db.driver.update({ where: { id: '<value>' }, data: { name: '<new>' }, select: { id: true } }).execute()
4393-
db.driver.delete({ where: { id: '<value>' } }).execute()
4390+
db.driver.findOne({ id: '<UUID>', select: { id: true } }).execute()
4391+
db.driver.create({ data: { name: '<String>', licenseNumber: '<String>' }, select: { id: true } }).execute()
4392+
db.driver.update({ where: { id: '<UUID>' }, data: { name: '<String>' }, select: { id: true } }).execute()
4393+
db.driver.delete({ where: { id: '<UUID>' } }).execute()
43944394
\`\`\`
43954395

43964396
## Examples
@@ -4407,7 +4407,7 @@ const items = await db.driver.findMany({
44074407

44084408
\`\`\`typescript
44094409
const item = await db.driver.create({
4410-
data: { name: 'value', licenseNumber: 'value' },
4410+
data: { name: '<String>', licenseNumber: '<String>' },
44114411
select: { id: true }
44124412
}).execute();
44134413
\`\`\`
@@ -4447,15 +4447,15 @@ Authenticate a user
44474447
## Usage
44484448

44494449
\`\`\`typescript
4450-
db.mutation.login({ email: '<value>', password: '<value>' }).execute()
4450+
db.mutation.login({ email: '<String>', password: '<String>' }).execute()
44514451
\`\`\`
44524452

44534453
## Examples
44544454

44554455
### Run login
44564456

44574457
\`\`\`typescript
4458-
const result = await db.mutation.login({ email: '<value>', password: '<value>' }).execute();
4458+
const result = await db.mutation.login({ email: '<String>', password: '<String>' }).execute();
44594459
\`\`\`
44604460
"
44614461
`;
@@ -4480,10 +4480,10 @@ import { db } from './orm';
44804480

44814481
// Available models: car, driver
44824482
db.<model>.findMany({ select: { id: true } }).execute()
4483-
db.<model>.findOne({ id: '<value>', select: { id: true } }).execute()
4483+
db.<model>.findOne({ id: '<UUID>', select: { id: true } }).execute()
44844484
db.<model>.create({ data: { ... }, select: { id: true } }).execute()
4485-
db.<model>.update({ where: { id: '<value>' }, data: { ... }, select: { id: true } }).execute()
4486-
db.<model>.delete({ where: { id: '<value>' } }).execute()
4485+
db.<model>.update({ where: { id: '<UUID>' }, data: { ... }, select: { id: true } }).execute()
4486+
db.<model>.delete({ where: { id: '<UUID>' } }).execute()
44874487
\`\`\`
44884488

44894489
## Examples

0 commit comments

Comments
 (0)