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:
@@ -100,6 +100,14 @@ functions.RegisterAsyncFunction[FetchArgs, *FetchResult]("fetch", Fetch)
|
|||||||
- **Linting**: `golangci-lint run` - must pass before committing
|
- **Linting**: `golangci-lint run` - must pass before committing
|
||||||
- **Test organization**: Test files use `_test.go` suffix, test functions prefixed with `Test`
|
- **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
|
- **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
|
## Dependencies
|
||||||
|
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ func TestResultStruct(t *testing.T) {
|
|||||||
// Verify Declarations
|
// Verify Declarations
|
||||||
defs := GetFunctionDeclarations()
|
defs := GetFunctionDeclarations()
|
||||||
assert.Contains(t, defs, "declare function result(input: string): TestResult;")
|
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 {
|
type TestAsyncArgs struct {
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ func collectStructTypes(t reflect.Type, ts *TypeSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add Type Definition
|
// 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)
|
_ = ts.Add(name, definition)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user