fun: HTTP RPC framework with DI, guards, streams and codegen

- Service binding via reflection with 4 method signatures
- Dependency injection (Wired/auto tags) and guards
- Streamable HTTP (NDJSON) streaming responses
- Go/TypeScript client code generation (self-contained, with interceptors)
- Enum support, structured Result, logging
- 16 regression tests covering all fixed bugs
This commit is contained in:
2026-08-16 23:51:58 +08:00
commit 4bf991b3e7
24 changed files with 3017 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
package fun
import (
"errors"
"reflect"
)
type enum interface {
Names() []string
}
type displayEnum interface {
DisplayNames() []string
Names() []string
}
var (
enumType = reflect.TypeFor[enum]()
displayEnumType = reflect.TypeFor[displayEnum]()
)
var (
errMethodNotFound = errors.New("method not found")
errEmptyFields = errors.New("serviceName and methodName cannot be empty")
errDTORequired = errors.New("method requires a DTO but none provided")
)