style(tsconvert): enforce two-space indentation for TypeScript interfaces

- Add two spaces before each field in generated interfaces
- Use newlines between fields and closing brace for proper formatting
- Update test to validate proper indentation
- Document test requirements in AGENTS.md
This commit is contained in:
2026-01-29 20:34:28 -05:00
parent f308970531
commit 64b513e3de
3 changed files with 11 additions and 3 deletions

View File

@@ -100,6 +100,14 @@ functions.RegisterAsyncFunction[FetchArgs, *FetchResult]("fetch", Fetch)
- **Linting**: `golangci-lint run` - must pass before committing
- **Test organization**: Test files use `_test.go` suffix, test functions prefixed with `Test`
- **TypeScript test files**: Tests that require TypeScript files should create them inline using `os.CreateTemp()` instead of relying on external test files
- **CRITICAL**: You must run `go test ./...` after any code change to validate that tests pass before committing
## Test Requirements
Before any commit, ensure:
1. All tests pass: `go test ./...`
2. All linting passes: `golangci-lint run`
3. Type declarations are properly formatted (two spaces indentation)
## Dependencies

View File

@@ -133,7 +133,7 @@ func TestResultStruct(t *testing.T) {
// Verify Declarations
defs := GetFunctionDeclarations()
assert.Contains(t, defs, "declare function result(input: string): TestResult;")
assert.Contains(t, defs, "interface TestResult {id: number; data: number[]}")
assert.Contains(t, defs, "interface TestResult {\n id: number\n data: number[]\n}")
}
type TestAsyncArgs struct {

View File

@@ -162,7 +162,7 @@ func collectStructTypes(t reflect.Type, ts *TypeSet) {
}
// Add Type Definition
definition := fmt.Sprintf("interface %s {%s}", name, strings.Join(fields, "; "))
definition := fmt.Sprintf("interface %s {\n%s\n}", name, strings.Join(fields, "\n"))
_ = ts.Add(name, definition)
}