* Rename predicates source file
* Overhaul and document type predicates
* Fix model collection logic for named types
* Fix map key type rendering
* Fix map creation code
* Fix rendering of structs that implement marshaler interfaces
* Fix type cycle detection to take type args into account
* Fix enum and typeparam field initialisation
* Improve unsupported type warnings
* Remove internal models file
* Deduplicate template code
* Accept generic aliases in static analyser
* Support new `encoding/json` flag `omitzero`
* Handle special cases when rendering generic aliases
* Update npm test dependencies
* Test class aliases and implicit private dependencies
* Test marshaler combinations
* Test map key types
* Remove bad map keys from unrelated tests
* Test service discovery through generic aliases
* Test generic aliases
* Test warning messages
* Disable go1.24 tests
* Update changelog
* Restore rendering of injected lines in index file
* Test directives
* Add wails:ignore directive
* Fix typo
* Move injections to the bottom of service files
* Handle errors from closing files
* Do not emit messages when services define only lifecycle methods
* Add internal directive for services and models
* Update changelog
* Fix error in service templates
* Test internal directive on services/models
* Fix error in index template
* Base testdata updates
* Testdata for class aliases and implicit private dependencies
* Testdata for marshaler combinations
* Testdata for map key types
* Testdata for bad map key fixes
* Add weakly typed enums aka alias constants
* Testdata for enum and typeparam field fixes
* Testdata for generic aliases
* Testdata for warning messages
* Testdata for directives
* Testdata for weakly typed enums
* Update binding example
* Update services example
* Remove go1.24 testdata
* Update cli doc
* Fix analyser tests
* Fix windows tests... hopefully
* go mod tidy on examples
* Update bindings guide
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* Add some clarifying comments
* Remove special handling of window parameters
* Improve internal method exclusion
* Add test for internal method exclusion
* Remove useless blank field from app options
This is a leftover from an older version of the static analyser. It should have been removed long ago.
* Remove redundant godebug setting
gotypesalias=1 is the default starting with go1.23
* Use new range for syntax to simplify code
* Remove generator dependency on github.com/samber/lo
* Ensure generator testing tasks do not use the test cache
* Rename cyclic types test
* Test for cyclic imports
* Fix import cycle between model files
* Sort class aliases after their aliased class
* Test class aliases
* Fix length of default value for array types
* Test array initialization
* Add changelog
* Update changelog
* Fix contrived marking technique in model sorting algorithm
* Update binding example
* Update test data
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* Subject generator output to stricter TS linting
* Fix runtime support code typing
* Relax tsconfig for templates
* Update test data
* Update binding example
* Support variadic arguments and slice, pointer types
* Fix computation of type namespaces
* Improve comments and general formatting
* Set default values correctly for composite types
* Add templates for bindings
Additionally:
* fixes generation of tuple return type
* improves imports and namespacing in JS mode
* general cleanup of generated code
* Simplify import list construction
* Refactor type generation code
Improves support for unknown types (encoded as any) and maps (using
Typescript index signatures)
* Support slices with pointer elements
* Match encoding/json behaviour in struct parser
* Update tests and example
* Add tests for complex method signatures and json tag parsing
* Add test `function_multiple_files`
* Attempt looking up idents with missing denotation
* Update test data
* fix quoted bool field
* Test quoted booleans
* Delete old parser code
* Remove old test data
* Update bindgen flags
* Makes call by ID the default
* Add package loading code
* Add static analyser
* Temporarily ignore binding generation code
* Add complex slice expressions test
* Fix variable reference analysis
* Unwrap casts to interface types
* Complete code comments
* Refactor static analyser
* Restrict options struct usage
* Update tests
* Fix method selector sink and source processing
* Improve Set API
* Add package info collector
* Rename analyser package to analyse
* Improve template functions
* Add index file templates
* Add glue code for binding generation
* Refactor collection and rendering code
* Implement binding generator
* Implement global index generation
* Improve marshaler and alias handling
* Use package path in binding calls by name
* Implement model collection and rendering
* Fix wrong exit condition in analyser
* Fix enum rendering
* Generate shortcuts for all packages.
* Implement generator tests
* Ignore non-pointer bound types
* Treat main package specially
* Compute stats
* Plug new API into generate command
* Support all named types
* Update JS runtime
* Report dual role types
* Remove go1.22 syntax
* Fix type assertion in TS bindings
* encoding/json compliance for arrays and slices
* Ignore got files in testdata
* Cleanup type rendering mechanism
* Update JS runtime
* Implement generic models
* Add missing field in renderer initialisation
* Improve generic creation code
* Add generic model test
* Add error reporting infrastructure
* Support configurable file names
* Detect file naming collisions
* Print final error report
* New shortcut file structure + collision detection
* Update test layout and data
* Autoconfiguration for analyser tests
* Live progress reporting
* Update code comments
* Fix model doc rendering
* Simplify name resolution
* Add test for out of tree types
* Fix generic creation code
* Fix potential collisions between methods and models
* Fix generic class alias rendering
* Report model discovery in debug mode
* Add interface mode for JS
* Collect interface method comments
* Add interface methods test
* Unwrap generic instantiations in method receivers
* Fix rendering of nullable types in interface mode
* Fix rendering of class aliases
* Expose promise cancel method to typescript
* Update test data
* Update binding example
* Fix rendering of aliased quoted type params
* Move to strongly typed bindings
* Implement lightweight analyser
* Update test cases
* Update binding example
* Add complex instantiation test
* Load full dependency tree
* Rewrite collector
* Update renderer to match new collector
* Update generator to match new collector
* Update test data
* Update binding example
* Configure includes and injections by language
* Improve system path resolution
* Support rich conditions in inject/include directives
* Fix error handling in Generator.Generate
* Retrieve compiled go file paths from fileset
* Do not rely on struct info in struct flattening algorithm
* Fix doc comment for findDeclaraion
* Fix bugs in embedded field handling
* Fix bugs and comments in package collection
* Remove useless fields from ServiceInfo
* Fix empty line at the beginning of TS indexes
* Remove global index and shortcuts
* Remove generation tests for individual packages
* Enforce lower-case file names
* Update test data
* Improve error reporting
* Update binding example
* Reintroduce go1.22 syntax
* Improve relative import path computation
* Improve alias support
* Add alias test
* Update test data
* Remove no services error
* Rename global analyser test
* Add workaround and test for bug in typeutil.Map
* Update test data
* Do not split fully qualified names
* Update typeutil package and remove workaround
* Unify alias/named type handling
* Fix rendering of generic named class aliases
* Fix rendering of array types
* Minor tweaks and cleanups
* Rmove namespaced export construct
* Update test data
* Update binding example
* Break type cycles
* Fix typo in comment
* Fix creation code for cyclic types
* Fix type of variadic params in interface mode
* Update test data
* Fix bad whitespace
* Refactor type assertions inside bound methods
* Update test data
* Rename field application.Options.Bind to Services
* Rename parser package to generator
* Update binding example
* Update test data
* Update generator readme
* Add typescript test harness
* Move test output to new subfolder
* Fix code generation bugs
* Use .js extensions in TS mode imports
* Update test data
* Revert default generator output dir to frontend/bindings
* Bump runtime package version
* Update templates
* Update changelog
* Improve newline handling
---------
Co-authored-by: Andreas Bichinger <andreas.bichinger@gmail.com>
- disable output of `import <model> from models` line
- update README to generate bindings in usable location for HTML
- update HTML to reference bindings correctly
- update javascript to call and process the bound Greet function