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
|
||||
- **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
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -155,14 +155,14 @@ func collectStructTypes(t reflect.Type, ts *TypeSet) {
|
||||
fieldName += "?"
|
||||
}
|
||||
|
||||
fields = append(fields, fmt.Sprintf("%s: %s", fieldName, tsType))
|
||||
fields = append(fields, fmt.Sprintf(" %s: %s", fieldName, tsType))
|
||||
|
||||
// Recursively Collect Nested Types
|
||||
collectType(field.Type, ts)
|
||||
}
|
||||
|
||||
// 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)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user