From ac93eacbbcf5ff14605edcff156073fdc97d7449 Mon Sep 17 00:00:00 2001 From: Joakim Olsson Date: Wed, 31 Dec 2025 21:53:10 +0100 Subject: [PATCH] docs: add CLAUDE.md for Claude Code integration --- .gitignore | 1 + CLAUDE.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 CLAUDE.md diff --git a/.gitignore b/.gitignore index 9ada4d7..7d212e5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .idea +.claude /release diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..a715850 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,42 @@ +# presenter + +Shared Go library for GraphQL error presentation with coded errors. + +## Shared Documentation + +@../docs/claude/architecture.md +@../docs/claude/go-services.md +@../docs/claude/graphql.md +@../docs/claude/conventions.md + +## Library Information + +### Purpose + +Provides a standardized GraphQL error presenter that handles coded errors across all microservices. Converts internal error codes to GraphQL error extensions. + +### Usage + +```go +import "gitlab.com/unboundsoftware/shiny/presenter" + +// Create error presenter with valid codes and entities +errorPresenter := presenter.New(logger, validCodes, validEntities, internalErrorCode) + +// Use in gqlgen server config +srv := handler.NewDefaultServer(generated.NewExecutableSchema(cfg)) +srv.SetErrorPresenter(errorPresenter) +``` + +### Key Types + +- `CodedError` - Error type with code, entity, and params +- `Code` - Error code type +- `Entity` - Error entity type + +### Error Extensions + +Errors are presented with extensions: +- `code` - The error code (mapped to valid codes or internal error) +- `errorEntity` - The entity related to the error (optional) +- `params` - Additional error parameters (optional) -- 2.52.0