Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
131 commits
Select commit Hold shift + click to select a range
d78ea4f
Run CI against feature branch
timotheeguerin Nov 5, 2024
234e137
Initial setup for graphql emitter (#4978)
swatkatz Nov 6, 2024
2c98981
Add CODEOWNERS for graphql (#5036)
swatkatz Nov 8, 2024
81ad1d5
Merge with main
timotheeguerin Nov 8, 2024
aee6340
Adds an emitter shell and sets up the tests to get options (#5033)
swatkatz Nov 8, 2024
73e3fd0
Update package.json with additional metadata (#5076)
steverice Nov 20, 2024
cdceeeb
Add `@schema` decorator to mark namespaces as GraphQL schemas (#5159)
steverice Nov 26, 2024
15399b4
Implement `@Interface` and `@compose` decorators
steverice Nov 22, 2024
9279208
Implement `@operationFields` decorator
steverice Nov 25, 2024
fedc76b
Merge branch 'main' into feature/graphql
steverice Jan 16, 2025
b637f01
Merge branch 'main' into feature/graphql
steverice Jan 27, 2025
7866094
Decorators: @mutation, @query and @sbuscription
AngelEVargas Mar 14, 2025
97fabfe
Adressing comments
AngelEVargas Mar 14, 2025
e0ff7f1
Merge pull request #3 from pinterest/interface-and-compose
AngelEVargas Mar 19, 2025
b69f3a5
Merge branch 'feature/graphql' into operation-fields-decorator
AngelEVargas Mar 19, 2025
6553a15
Merge pull request #4 from pinterest/operation-fields-decorator
AngelEVargas Mar 19, 2025
c14e5ad
Merge branch 'feature/graphql' into feature/avs-opkind-decorators
AngelEVargas Mar 19, 2025
43bcaa3
Merge pull request #16 from pinterest/feature/avs-opkind-decorators
AngelEVargas Mar 19, 2025
5a7a953
Import useStateMap from compiler utils (after merge)
AngelEVargas Mar 19, 2025
a206190
Merge pull request #18 from pinterest/feature/avs-delete-statemap-2
AngelEVargas Mar 19, 2025
80e22e5
Merge branch 'main' into feature/graphql
steverice Mar 24, 2025
29cd18d
Update `feature/graphql` to build with latest changes
steverice Mar 24, 2025
ef327fb
Rename README to README.md
FionaBronwen Apr 15, 2025
eca75ba
Rename README to README.md
FionaBronwen Apr 15, 2025
1763b1d
Merge latest main
Apr 24, 2025
bfb8c18
Add main.tsp and remove strict from tspconfig.yml
Apr 24, 2025
723e33a
Merge pull request #22 from pinterest/feature/graphql-run-tsp-compiler
swatkatz Apr 25, 2025
8b8dcbc
Add emitter.test.ts
FionaBronwen Apr 25, 2025
0b17d58
Add navigateProgram to parse TSP input
FionaBronwen Apr 30, 2025
fbe4b0c
Clean up formatting and comments
FionaBronwen Apr 30, 2025
b1dbabe
Clean up spacing and naming
FionaBronwen Apr 30, 2025
d39d401
small variable refactor
FionaBronwen Apr 30, 2025
5c7a337
Remove change to .npmrc registry, fix package.json dependencies
FionaBronwen May 1, 2025
0f543be
Merge pull request #23 from pinterest/fionabronwen/skeleton-emitter
FionaBronwen May 2, 2025
f4f96f1
Add GraphQL Emitter to playground website
steverice May 5, 2025
aa3554c
Add multiple schema support
May 9, 2025
40122fb
Merge pull request #25 from pinterest/feature/test_multiple_schemas
swatkatz May 9, 2025
3e0585c
Update feature/graphql from main
May 11, 2025
92da1e8
Fix lockfile and dependencies: sync and regenerate pnpm-lock.yaml
May 11, 2025
9dffec3
Add @schema decorator to main.tsp
FionaBronwen May 12, 2025
9797e82
Add schema name, fix bug with schema naming
FionaBronwen May 12, 2025
b8b93c5
Merge pull request #26 from pinterest/fionabronwen/schema-decorator
FionaBronwen May 12, 2025
afb67de
Add registry, move main.tsp, update readme.md
FionaBronwen May 13, 2025
4187f7f
Update registry interface, add enum registration as an example
FionaBronwen May 15, 2025
c09f008
Update registry data structures, add exitEnum materialization
FionaBronwen May 20, 2025
5562d51
Add check for materialized enum
FionaBronwen May 21, 2025
71cd866
Merge pull request #27 from pinterest/fionabronwen/registry
FionaBronwen May 27, 2025
763d542
Add TypeMap abstract class (#30)
FionaBronwen Jun 5, 2025
e028056
Merge branch 'main' into feature/graphql
steverice Jun 13, 2025
9d2f4cc
Merge branch 'main' into feature/graphql
FionaBronwen Aug 1, 2025
50daaca
Update GraphQL tests to use new testing framework
steverice Sep 16, 2025
3f34bd3
Merge branch 'main' into feature/graphql
steverice Sep 26, 2025
79df3ba
Merge branch 'main' into feature/graphql
FionaBronwen Nov 25, 2025
3d42b02
Merge branch 'main' into feature/graphql
FionaBronwen Dec 4, 2025
c2fe95c
Merge branch 'main' into feature/graphql
FionaBronwen Dec 16, 2025
d25ea59
[Pinterest Only] Add Agent skills for TypeSpec work
steverice Feb 27, 2026
cd3a66e
[Pinterest Only] Adopt shared agent skills
steverice Mar 2, 2026
e9e6c56
Vendor the skills from https://github.com/pinternal-dev/agent-skills/…
steverice Mar 2, 2026
13a1c25
Merge branch 'microsoft:main' into main
FionaBronwen Mar 13, 2026
c204b15
Merge remote-tracking branch 'origin/main' into feature/graphql
FionaBronwen Mar 13, 2026
3677520
Merge remote-tracking branch 'upstream/main'
steverice Mar 17, 2026
6e682f0
Add mutation engine for TypeSpec-to-GraphQL type transformation (#62)
FionaBronwen Mar 23, 2026
b455a23
Add GraphQL ID scalar and built-in name collision warning (#69)
FionaBronwen Mar 23, 2026
faa6d3e
Migrate test-host.ts to createTester framework (#68)
FionaBronwen Mar 23, 2026
7276d90
Guard GraphQL built-in scalars from incorrect mutation renaming (#70)
FionaBronwen Apr 1, 2026
96267de
Refactor type-utils.ts for readability and safety (#72)
FionaBronwen Apr 1, 2026
fa20db1
Add type-usage and reachability analysis module (#71)
FionaBronwen Apr 3, 2026
cc9d4fb
Strip T | null unions in mutation engine via replace() (#73)
FionaBronwen Apr 8, 2026
3f77e30
Fix nullable tracking: mark containers instead of shared type singlet…
FionaBronwen Apr 14, 2026
a471bb3
Merge remote-tracking branch 'upstream/main'
steverice Apr 16, 2026
b0d7b2a
Add MCP server for TypeSpec documentation and API signatures
swatkatz Jun 4, 2026
982ac8e
Update pnpm-lock.yaml for mcp-server-typespec-docs dependencies
swatkatz Jun 4, 2026
ec11f4f
Trigger CI re-run (Preview workflow disabled)
swatkatz Jun 4, 2026
6392d70
Merge pull request #87 from pinterest/feature/mcp-server-docs
swatkatz Jun 4, 2026
6f0bf06
Add naming pipelines, template composition, buildTypeGraph, and print…
swatkatz Jun 8, 2026
dfffa28
Simplify isTrueModel to early-return style
swatkatz Jun 8, 2026
7fcaeb3
Merge pull request #88 from pinterest/feature/graphql-naming-mutations
swatkatz Jun 8, 2026
4e9ee51
Add structural transforms: anonymous union naming, collapsing, record…
swatkatz Jun 8, 2026
15ff089
Remove unsafe resolvedType getter in favor of runtime checks
swatkatz Jun 8, 2026
461d146
Extract resolveGraphQLTypeName to shared lib for renderer reuse
swatkatz Jun 8, 2026
4b64ab4
Replace state maps with decorators for mutation engine metadata
FionaBronwen Apr 16, 2026
21abccf
Add Alloy infrastructure, context system, and field components
Jun 8, 2026
e26c0b4
Replace legacy emitter with mutation pipeline and TypeGraph output
Jun 8, 2026
2ab84e3
Add schema-mutator tests covering filtering and TypeGraph output
Jun 8, 2026
607a90e
Remove unnecessary unwrapNullableUnion check from schema-mutator
Jun 8, 2026
4ddffc1
Add unreachable check for scalars in schema-mutator
Jun 8, 2026
0079c56
Substitute wrapper models into union variant types
swatkatz Jun 9, 2026
8e7d6fc
Add EnumType, ScalarType, UnionType components with tests
swatkatz Jun 9, 2026
91152aa
Mutate input-context models in schema-mutator
swatkatz Jun 9, 2026
c7131f0
Fix input/output model splitting to respect type usage
swatkatz Jun 9, 2026
2a3c29e
Add type-name-collision diagnostic for duplicate GraphQL type names
swatkatz Jun 9, 2026
3b602e4
Preserve decorator state on flattened unions via clone
swatkatz Jun 9, 2026
b4f2009
Replace unsafe casts with GraphQLUnion interface and typekit guards
swatkatz Jun 9, 2026
fc5225e
Merge pull request #89 from pinterest/feature/graphql-structural-tran…
swatkatz Jun 9, 2026
131d037
Merge pull request #79 from pinterest/fionabronwen/graphql-components-1
swatkatz Jun 9, 2026
2c388a2
Merge pull request #90 from pinterest/fionabronwen/graphql-foundation…
swatkatz Jun 9, 2026
16e9fe3
Add Object, Interface, and Input type components with tests
swatkatz Jun 10, 2026
65fe40c
Fix shared decorator arg mutation and exclusive interface logic
swatkatz Jun 10, 2026
d7fa6d6
Rename exclusive to interfaceOnly in @Interface decorator
swatkatz Jun 10, 2026
40e7e4d
Merge pull request #93 from pinterest/swatkatz/graphql-components-2
swatkatz Jun 10, 2026
14ba588
Add Schema orchestrator, emitter wiring, and e2e tests
swatkatz Jun 10, 2026
9d1dfe3
Merge pull request #94 from pinterest/swatkatz/graphql-emitter-wiring
swatkatz Jun 11, 2026
5f8580c
Fix @Interface models emitting spurious Output type
swatkatz Jun 11, 2026
ff290d8
Merge pull request #96 from pinterest/swatkatz/fix-interface-spurious…
swatkatz Jun 11, 2026
1887ed9
Fix built-in scalars emitted as declarations from nullable unions
swatkatz Jun 11, 2026
dda44c6
Merge pull request #97 from pinterest/swatkatz/fix-scalar-string-emis…
swatkatz Jun 11, 2026
81358b0
Fix interface prefix, @compose false diagnostics, and @operationField…
swatkatz Jun 11, 2026
263acac
Use getTypeName for structural type comparison in propertiesEqual
swatkatz Jun 12, 2026
826d592
Fix type-name-collision from union mutations that unwrap to existing …
swatkatz Jun 12, 2026
3d6c34f
Merge pull request #98 from pinterest/swatkatz/fix-finishtype-reinvoc…
swatkatz Jun 12, 2026
b846f40
Add visibility filtering with operation-kind-aware input splitting
swatkatz Jun 11, 2026
5796e20
Merge pull request #95 from pinterest/swatkatz/graphql-emitter-wiring
swatkatz Jun 12, 2026
c55ad3f
Fix emitter crashes for Record types, nested generics, and union-as-i…
swatkatz Jun 12, 2026
7010924
Merge pull request #99 from pinterest/swatkatz/fix-emitter-crashes
swatkatz Jun 15, 2026
e5eeaa2
Add comprehensive e2e manual validation test suite
swatkatz Jun 15, 2026
80d0452
Merge pull request #100 from pinterest/swatkatz/e2e-manual-validation
swatkatz Jun 15, 2026
ca18193
Flatten base model fields into child during GraphQL mutation
swatkatz Jun 15, 2026
bb1723a
Add graphql-emitter and fix-graphql-bug agent skills
swatkatz Jun 15, 2026
2debeaa
Merge branch 'main' into feature/graphql
swatkatz Jun 15, 2026
7dd6cf1
Merge branch 'feature/graphql' of https://github.com/pinterest/typesp…
swatkatz Jun 15, 2026
8c9b787
Fix @alloy-js/graphql link path after main merge
swatkatz Jun 15, 2026
9a3f793
Merge pull request #101 from pinterest/swatkatz/fix-extends-flattening
swatkatz Jun 15, 2026
adc675f
Replace visibility-filtered empty models with scalars
swatkatz Jun 15, 2026
9811f02
Merge pull request #102 from pinterest/swatkatz/fix-empty-visibility-…
swatkatz Jun 15, 2026
3f8cc04
Fix Record<T> scalars duplicated for input/output context (API-5278) …
FionaBronwen Jun 16, 2026
2385929
Prepare GraphQL emitter for upstream PR (#104)
FionaBronwen Jun 16, 2026
44be65b
Merge upstream/main into feature/graphql
FionaBronwen Jun 16, 2026
a3a2d57
Fix compatibility issues after upstream merge
FionaBronwen Jun 16, 2026
7d69aac
Remove Pinterest agent skills from feature branch
FionaBronwen Jun 16, 2026
38e3b3c
Address PR review feedback
FionaBronwen Jun 18, 2026
8ab9cf6
Remove unrelated MCP files from PR
FionaBronwen Jun 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,8 @@ cspell.yaml
/packages/typespec-vs/ @RodgeFu @lirenhe @bterlson @markcowl @witemple-msft @timotheeguerin @iscai-msft @catalinaperalta
/packages/typespec-vscode/ @RodgeFu @lirenhe @bterlson @markcowl @witemple-msft @timotheeguerin @iscai-msft @catalinaperalta
/packages/compiler/src/server/ @RodgeFu @bterlson @markcowl @witemple-msft @timotheeguerin @iscai-msft @catalinaperalta

######################
# GraphQL
######################
/packages/graphql/ @steverice @swatkatz @fionabronwen @bterlson @markcowl @allenjzhang @timotheeguerin

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Last time we talked I think codeowners couldn't be from outside the organization so we'll have to figure out what we want to do here.

3 changes: 3 additions & 0 deletions .gitignore

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should also add the emitter to the website

Original file line number Diff line number Diff line change
Expand Up @@ -243,3 +243,6 @@ packages/http-client-python/tests/.wheels/

# Turborepo
.turbo

# agents
.claude/settings.local.json
1 change: 1 addition & 0 deletions packages/emitter-framework/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
"strict": true,
"skipLibCheck": true,
"isolatedModules": true,
"composite": true,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think because this needs alloy to build it can't really be composite right?

"declaration": true,
"sourceMap": true,
"declarationMap": true,
Expand Down
16 changes: 16 additions & 0 deletions packages/graphql/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Change Log - @typespec/graphql

## 0.1.0

### Features

- Initial release of the GraphQL emitter
- Support for `@query`, `@mutation`, and `@subscription` operation decorators
- Support for `@Interface` decorator to mark models as GraphQL interfaces
- Support for `@compose` decorator to implement interfaces
- Support for `@operationFields` decorator to add operations to models
- Support for `@specifiedBy` decorator for custom scalar URLs
- Automatic input type generation with `Input` suffix
- `@oneOf` input generation for union-as-input parameters
- Visibility-based input/output type splitting
- Union flattening and scalar wrapper generation
Loading
Loading