mirror of
https://github.com/wailsapp/wails.git
synced 2026-03-15 15:15:51 +01:00
11 commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
09b57a21c4 |
fix(v3/generator): Fix generation of mapped types with enum keys (#4943)
* Fix rendering of map types in binding generator * Add support for numeric map keys in binding generator * Add test case for enum map keys * Update UNRELEASED_CHANGELOG.md * Add testdata for enum map keys * Update binding generator testdata * Update UNRELEASED_CHANGELOG.md --------- Co-authored-by: Lea Anthony <lea.anthony@gmail.com> |
||
|
|
801acd01df |
fix(v3/generator): binding generation for cross-package type aliases (#4948)
* Add test case for aliases of imported types * Replace `typeutil.Map` with object-keyed map in `addTypeImpl` method * Replace `typeutil.Map` with object-keyed map in `needsCreateImpl` method * Update UNRELEASED_CHANGELOG.md * Update binding generator test data --------- Co-authored-by: Lea Anthony <lea.anthony@gmail.com> |
||
|
|
bbd5d99667 |
[v3] Typed Events, revisited (#4633)
* Add strong event typings * Make `EmitEvent` take one data argument only * Add event registration logic * Report event cancellation to the emitter * Prevent registration of system events * Add support for typed event data initialisation * Binding generation for events * Tests for event bindings * Add vite plugin for typed events * Fix dev command execution order Co-authored-by: Fabio Massaioli <fabio.massaioli@gmail.com> * Propagate module path to templates * Update templates Co-authored-by: Ian VanSchooten <ian.vanschooten@gmail.com> * Go mod tidy for examples * Switch to tsconfig.json for jetbrains IDE support * Replace jsconfig in example * Convert vite plugin to typescript * Downgrade vite for now The templates all use 5.x * Remove root plugins dir from npm files It's now '/dist/plugins' * Include types for Create But keep out of the docs * Assign a type for cancelAll results * Restore variadic argument in EmitEvent methods * Support registered events with void data * Test cases for void alias support * Support strict mode * Support custom event hooks * Update docs * Update changelog * Testdata for typed events * Test data for void alias support * fix webview_window emit event * Update changelog.mdx * Update events * Fix generator test path normalization for cross-platform compatibility The generator tests were failing on CI because they compared absolute file paths in warning messages. These paths differ between development machines and CI environments. Changes: - Normalize file paths in warnings to be relative to testcases/ directory - Handle both Unix and Windows path separators - Use Unix line endings consistently in test output - Update all test expectation files to use normalized paths This ensures tests pass consistently across different environments including Windows, macOS, Linux, and CI systems. * Remove stale comment * Handle errors returned from validation * Restore variadic argument to Emit (fix bad rebase) * Event emitters return a boolean * Don't use `EmitEvent` in docs Supposedly it's for internal use, according to comment * Fix event docs (from rebase) * Ensure all templates specify @wailsio/runtime: "latest" * Fix Windows test failure due to CRLF line endings The test was failing on Windows because: 1. Hardcoded "\n" was being used instead of render.Newline when writing warning logs, causing CRLF vs LF mismatch 2. The render package import was missing 3. .got.log files weren't being skipped when building expected file list Changes: - Add render package import - Use render.Newline instead of hardcoded "\n" for cross-platform compatibility - Skip .got.log files in test file walker 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix template tests by using local runtime package The template tests were failing because they were installing @wailsio/runtime@latest from npm, which doesn't have the new vite plugin yet. This change packs the local runtime and uses it in template tests instead. Changes: - Pack the runtime to a tarball in test_js job - Upload the runtime package as an artifact - Download and install the local runtime in template tests before building - Update cleanup job to delete the runtime package artifact * Apply suggestion from @leaanthony * Fix: Install local runtime in frontend directory with correct path The previous fix wasn't working because: 1. npm install was run in the project root, not in frontend/ 2. wails3 build runs npm install again, which would reinstall from npm Fixed by: - Using npm pkg set to modify package.json to use file:// protocol - This ensures subsequent npm install calls use the local tarball * Fix Vue template syntax conflicts with Go template delimiters The Vue templates were converted to .tmpl files to support dynamic module paths, but Vue's template syntax {{ }} conflicts with Go's template syntax. Fixed by escaping Vue template braces: - {{ becomes {{"{{"}} - }} becomes {{"}}"}} This allows the Go template engine to output the literal {{ }} for Vue to process. * Fix Vue template escaping and Windows shell compatibility Two issues fixed: 1. Vue template escaping: Changed from {{"{{"}} to {{ "{{" }} - The previous syntax caused "missing value for command" error - Correct Go template syntax uses spaces between delimiters and strings 2. Windows PowerShell compatibility: Added 'shell: bash' to template generation step - The bash syntax (ls, head, $()) doesn't work in PowerShell - Git Bash is available on all GitHub runners including Windows * Fix: test_templates depends on test_js for runtime package artifact The runtime-package artifact is created in test_js job, not test_go. Added test_js to the needs array so the artifact is available for download. * Fix Windows path compatibility for runtime package artifact Changed from absolute Unix path '/tmp/wails-runtime' to relative path 'wails-runtime-temp' which works cross-platform. Using realpath to convert to absolute path for file:// URL in npm pkg set command. * Fix realpath issue on Windows for runtime package realpath on Windows Git Bash was producing malformed paths with duplicate drive letters (D:\d\a\...). Replaced with portable solution using pwd that works correctly across all platforms. * Use pwd -W on Windows to get native Windows paths Git Bash's pwd returns Unix-style paths (/d/a/wails/wails) which npm then incorrectly resolves as D:/d/a/wails/wails. Using pwd -W returns native Windows paths (D:\a\wails\wails) that npm can handle correctly. This is the root cause of all the Windows path issues. * Improve typechecking for Events.Emit() * [docs] Clarify where `Events` is imported from in each example * Add docs for runtime Events.Emit() * Revert to v2-style Events.Emit (name, data) * Update changelog --------- Co-authored-by: Fabio Massaioli <fabio.massaioli@gmail.com> Co-authored-by: Atterpac <Capretta.Michael@gmail.com> Co-authored-by: Lea Anthony <lea.anthony@gmail.com> Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
3087ba0bdc |
Refactor Manager API to use singular naming convention (#4367)
* Refactor Manager API to use singular naming convention This is a RENAME-ONLY exercise that converts the Wails v3 Manager API from plural to singular naming for better consistency and clarity. ## Changes Applied ### API Transformations: - `app.Windows.*` → `app.Window.*` - `app.Events.*` → `app.Event.*` - `app.ContextMenus.*` → `app.ContextMenu.*` - `app.KeyBindings.*` → `app.KeyBinding.*` - `app.Dialogs.*` → `app.Dialog.*` - `app.Menus.*` → `app.Menu.*` - `app.Screens.*` → `app.Screen.*` ### Files Updated: - **Core Application**: 22 files in `v3/pkg/application/` - **Examples**: 43+ files in `v3/examples/` - **Documentation**: 13 files in `docs/src/content/docs/` - **CLI Tests**: 1 file in `v3/internal/commands/` ### Critical Constraints Preserved: - ✅ Event string constants unchanged (e.g., "windows:WindowShow") - ✅ Platform event names preserved (events.Windows, events.Mac, etc.) - ✅ TypeScript API remains compatible - ✅ All functionality intact ### Verification: - ✅ All examples build successfully (`task test:examples` passes) - ✅ Application package compiles without errors - ✅ Documentation reflects new API patterns ## Benefits - **Improved Clarity**: Singular names are more intuitive (`app.Window` vs `app.Windows`) - **Better Consistency**: Aligns with Go naming conventions - **Enhanced Developer Experience**: Clearer autocomplete and API discovery 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix generator testcases and add cross-platform test cleanup - Update 28 generator testcase files to use singular API (app.Window.New() vs app.Windows.New()) - Add cross-platform cleanup system with Go script to remove test artifacts - Add test:all task with comprehensive testing and automatic cleanup - Fix cleanup to target files vs directories correctly (preserves source directories) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix remaining Windows CI failures by updating all plural API usage to singular Fixed the last remaining instances of old plural Manager API usage: - tests/window-visibility-test/main.go: Updated all app.Windows -> app.Window and app.Menus -> app.Menu - internal/templates/_common/main.go.tmpl: Updated app.Windows -> app.Window and app.Events -> app.Event - pkg/services/badge/badge_windows.go: Updated app.Windows -> app.Window (Windows-specific fix) These fixes address the Windows CI failures where platform-specific files still used the old API. The tests didn't catch this locally because Windows-specific files only compile on Windows. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
66ad93d9d5 |
feat: Complete App API restructuring with organized manager pattern (#4359)
* Initial refactor * More refactoring of API * Update gitignore * Potential fix for code scanning alert no. 134: Incorrect conversion between integer types Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> * Update v3/internal/generator/testcases/variable_single_from_function/main.go Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update v3/pkg/application/context_menu_manager.go Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update v3/pkg/application/event_manager.go Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update v3/pkg/application/context_menu_manager.go Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Fix build issues * Fix build issues * Address CodeRabbitAI review feedback: fix goroutines, error handling, and resource management - Fix infinite goroutines with proper context cancellation and ticker cleanup - Add error handling to window creation calls - Prevent unbounded slice growth in gin-service and screen examples - Use graceful shutdown patterns with app.Context().Done() 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix manager API refactor issues and complete all v3 example builds - Fixed slices import missing in event_manager.go - Changed contextMenusLock from sync.Mutex to sync.RWMutex for RLock/RUnlock compatibility - Updated all globalApplication calls to use new manager pattern (Windows.Current, Events.OnApplicationEvent, etc.) - Fixed Events.Emit vs Events.EmitEvent method signature mismatch - Corrected NewWithOptions calls (returns 1 value, not 2) in examples - Added comprehensive .gitignore patterns for all v3 example binaries - All 34 v3 examples now build successfully 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix Linux platform manager API calls - Updated events_common_linux.go: OnApplicationEvent → Events.OnApplicationEvent - Updated application_linux.go: OnApplicationEvent → Events.OnApplicationEvent - Ensures Linux builds work with new manager pattern 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix remaining NewWithOptions assignment errors in examples - Fixed badge/main.go: removed assignment mismatch and unused variable - Fixed badge-custom/main.go: removed assignment mismatch and variable reuse - Fixed file-association/main.go: removed assignment mismatch and unused variable - All examples now use correct single-value assignment for NewWithOptions() 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Implement multi-architecture Docker compilation system for Linux builds ### New Features - **Multi-Architecture Support**: Native ARM64 and x86_64 Docker compilation - **Auto-Detection**: Automatic architecture detection in Taskfile tasks - **Complete Cross-Platform Testing**: 129 builds (43 examples × 3 platforms) ### Docker Infrastructure - `Dockerfile.linux-arm64`: Ubuntu 24.04 ARM64 native compilation - `Dockerfile.linux-x86_64`: Ubuntu 24.04 x86_64 native compilation - Architecture-specific build scripts with colored output and error handling - Native compilation eliminates CGO cross-compilation issues ### Task System Updates - **New Tasks**: `test:examples:all` for complete cross-platform testing - **Architecture-Specific**: `test:examples:linux:docker:arm64/x86_64` - **Auto-Detection**: `test:example:linux:docker` detects host architecture - **Clear Parameter Usage**: Documented when DIR parameter is/isn't needed ### Build Artifacts - Architecture-specific naming: `testbuild-{example}-linux-{arch}` - ARM64: `testbuild-badge-linux-arm64` - x86_64: `testbuild-badge-linux-x86_64` ### Documentation - Complete TESTING.md overhaul with multi-architecture support - Clear command reference distinguishing single vs all example builds - Updated build performance estimates (10-15 minutes for 129 builds) - Comprehensive troubleshooting and usage examples ### Infrastructure Cleanup - Removed deprecated `Dockerfile.linux-proper` - Updated .gitignore for new build artifact patterns - Streamlined Taskfile with architecture-aware Linux tasks **Status**: Production-ready multi-architecture Docker compilation system 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix CLI appimage testfiles API migration and add to testing system ### API Migration Fixes - **Event Registration**: Updated `app.OnApplicationEvent()` → `app.Events.OnApplicationEvent()` - **Window Manager**: Updated `app.CurrentWindow()` → `app.Windows.Current()` - **Window Creation**: Updated `app.NewWebviewWindowWithOptions()` → `app.Windows.NewWithOptions()` - **Menu Manager**: Updated `app.SetMenu()` → `app.Menus.SetApplicationMenu()` - **Screen API**: Updated `app.GetPrimaryScreen()/GetScreens()` → `app.Screens.GetPrimary()/GetAll()` ### Testing System Enhancement - **New Task**: `task test:cli` for CLI-related code compilation testing - **Integration**: Added CLI testing to `task test:examples` and `task test:examples:all` - **Documentation**: Updated TESTING.md to include CLI code testing ### Files Fixed - `internal/commands/appimage_testfiles/main.go`: Complete API migration - `Taskfile.yaml`: Added CLI testing tasks and integration - `TESTING.md`: Updated documentation to reflect CLI testing This ensures CLI code API migrations are caught by our testing system and prevents future build breakages in CLI components. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Enhance testing infrastructure and fix API migration issues across v3 codebase This commit introduces comprehensive testing infrastructure to catch API migration issues and fixes all remaining compatibility problems: ## Enhanced Testing Infrastructure - Added `test:cli:all` task to validate CLI components compilation - Added `test:generator` task to test code generator test cases - Added `test:infrastructure` task for comprehensive infrastructure testing - Updated `test:examples` to include CLI testing automatically ## API Migration Fixes - Fixed manager-based API calls in window visibility test (app.Windows.NewWithOptions) - Fixed manager-based API calls in screen manager tests (sm.GetAll, sm.GetPrimary) - Fixed event registration API in 6 service test files (app.Events.OnApplicationEvent) - Updated menu API calls (app.Menus.SetApplicationMenu) ## Cross-Platform Validation - All 43 examples compile successfully on Darwin - CLI components compile without errors - Generator test cases validate correctly - Application package tests pass compilation The enhanced testing system integrates with existing GitHub Actions CI/CD and will automatically catch future API migration issues, ensuring ecosystem stability as the v3 API evolves. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix template API migration issues and add comprehensive template testing This commit resolves the GitHub Actions template generation failures by fixing API migration issues in the template source files and adding comprehensive template testing to the infrastructure. ## Template API Fixes - Fixed `app.NewWebviewWindowWithOptions()` → `app.Windows.NewWithOptions()` in main.go.tmpl - Fixed `app.EmitEvent()` → `app.Events.Emit()` in main.go.tmpl - Updated the _common template used by all framework templates (lit, react, vue, etc.) ## Enhanced Testing Infrastructure - Added `test:templates` task to validate template generation and compilation - Tests lit and react template generation with API migration validation - Integrated template testing into `test:infrastructure` task - Templates now tested alongside CLI components, generator, and application tests ## GitHub Actions Compatibility - Resolves template generation failures in CI/CD pipeline - Ensures all generated projects use correct manager-based API calls - Maintains template consistency across all supported frameworks The template testing validates that generated projects compile successfully with the new manager-based API pattern, preventing future template generation failures in GitHub Actions. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Reorganize Docker testing files into test directory - Move Dockerfiles from root to test/docker/ - Update all Taskfile.yaml Docker build paths - Update TESTING.md documentation - Maintain full backward compatibility 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Address CodeRabbit review: improve resource management and API patterns - Store event handler cleanup functions for proper resource management - Fix goroutine management with context-aware cancellation patterns - Add documentation for error handling best practices - Improve API consistency across examples Examples updated: - plain: Fixed event handlers and goroutine lifecycle - badge: Added cleanup function storage - gin-example: Proper event handler management - gin-service: Service lifecycle cleanup 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Address CodeRabbit nitpicks: optimize Docker images and docs Docker Optimizations: - Add --no-install-recommends and apt-get clean for smaller images - Add SHA256 checksum verification for Go downloads - Remove unnecessary GO111MODULE env (default in Go 1.16+) - Add hadolint ignore for here-doc blocks Build Enhancements: - Add --pull flag to Docker builds for fresh base images - Improve build reliability and consistency Documentation Fixes: - Add proper language tags to code blocks (bash, text) - Fix heading formatting and remove trailing punctuation - Improve syntax highlighting and readability Files updated: - test/docker/Dockerfile.linux-arm64 - test/docker/Dockerfile.linux-x86_64 - Taskfile.yaml - TESTING.md 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Update changelog: document Manager API refactoring and improvements Breaking Changes: - Manager API Refactoring: Complete reorganization from flat structure to organized managers (Windows, Events, Dialogs, etc.) - Comprehensive API migration guide with all method mappings - References PR #4359 for full context Added: - Organized testing infrastructure in test/docker/ directory - Improved resource management patterns in examples - Enhanced Docker images with optimizations and security This documents the major architectural changes and improvements made to the Wails v3 API and development infrastructure. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Support cross-platform testing --------- Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
9988b7eca8 |
[v3] Binding generator tests for Go 1.24 features (#4068)
* Enable go1.24 tests This reverts commit e38684e7885c9c7b5ad3f704ad500c39bbce7715. * Testdata for go1.24 This reverts commit 7ed397dc452f420551dfdd05dfe0c6a7646b3ba4. * Require go 1.24 * Update changelog * Add test for omitzero --------- Co-authored-by: Lea Anthony <lea.anthony@gmail.com> |
||
|
|
37673eb24d |
[v3] Fix binding generator bugs and prepare for Go 1.24 (#4045)
* 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> |
||
|
|
16ce1d3448 |
[v3] Service API cleanup and comments (#4024)
* Gather and document service API * Update changelog * Add NewServiceWithOptions * Revert static analyser change * Remove infinite loop in NewService[WithOptions] * Fix compiler warning in bindings command * Add test for NewServiceWithOptions * Update changelog * Fix service example --------- Co-authored-by: Lea Anthony <lea.anthony@gmail.com> |
||
|
|
f01b4b9a21 |
[v3] Fix binding generator bugs (#4001)
* 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> |
||
|
|
4386f5fcb2 |
# Conflicts:
# mkdocs-website/docs/en/changelog.md |
||
|
|
90b7ea944d |
[v3] New binding generator (#3468)
* 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> |