mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-02 19:50:15 +08:00
![]() * v3 parser: add tests for model generation
* v3 parser: use single quotes for got model.ts
* v3 parser: fixes for some failing tests
* v3 parser: misc simplification and cleanup
* v3 parser: fix model tests when no structs returned
* v3 parser: fix last failing test case
* Update contributors list
* v3 parser: update README
* Revert "Update contributors list"
This reverts commit
|
||
---|---|---|
.. | ||
templates | ||
testdata | ||
bindings_test.go | ||
bindings.go | ||
models_test.go | ||
models.go | ||
parser_test.go | ||
parser.go | ||
README.md |
Parser
This package contains the static analyser used for parsing Wails projects so that we may:
- Generate the bindings for the frontend
- Generate Typescript definitions for the structs used by the bindings
Implemented
-
Bound types
- Struct Literal Pointer
- Variable
- Assignment
- Struct Literal Pointer
- Function
- Same package
- Different package
- Assignment
- Function
-
Parsing of bound methods
- Method names
- Method parameters
- Zero parameters
- Single input parameter
- Single output parameter
- Multiple input parameters
- Multiple output parameters
- Named output parameters
- int/8/16/32/64
- Pointer
- uint/8/16/32/64
- Pointer
- float
- Pointer
- string
- Pointer
- bool
- Pointer
- Struct
- Pointer
- Slices
- Pointer
- Maps
- Pointer
-
Model Parsing
- In same package
- In different package
- Multiple named fields, e.g. one,two,three string
- Scalars
- Arrays
- Maps
- Structs
- Recursive
- Anonymous
-
Generation of models
- Scalars
- Arrays
- Maps
- Structs
-
Generation of bindings
Limitations
There are many ways to write a Go program so there are many program structures that we would need to support. This is a work in progress and will be improved over time. The current limitations are:
- The call to
application.New()
must be in themain
package - Bound structs must be declared as struct literals