From 37673eb24d14af1b14e31708ebf37b7f8e22bc34 Mon Sep 17 00:00:00 2001 From: Fabio Massaioli Date: Sat, 8 Feb 2025 23:44:34 +0100 Subject: [PATCH] [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 --- docs/src/content/docs/changelog.mdx | 18 + docs/src/content/docs/guides/cli.mdx | 1 - docs/src/content/docs/learn/bindings.mdx | 45 +- .../wails/v3/examples/binding/data/index.js | 4 +- .../v3/examples/binding/data/internal.js | 55 - .../wails/v3/examples/binding/data/models.js | 54 +- v3/examples/dev/go.mod | 36 +- v3/examples/dev/go.sum | 17 + v3/examples/file-association/go.mod | 46 +- v3/examples/file-association/go.sum | 23 + .../v3/examples/services/hashes/index.js | 10 +- .../v3/examples/services/hashes/models.js | 47 +- .../v3/examples/services/hashes/service.js | 20 + .../v3/pkg/services/kvstore/keyvaluestore.js | 9 - .../v3/pkg/services/log/loggerservice.js | 10 - .../wails/v3/pkg/services/sqlite/service.js | 20 - .../assets/bindings/log/slog/index.js | 8 +- v3/examples/services/assets/index.html | 2 +- v3/examples/services/hashes/hashes.go | 19 +- v3/go.mod | 1 + v3/go.sum | 2 + v3/internal/flags/bindings.go | 1 - v3/internal/generator/.gitignore | 1 + v3/internal/generator/Taskfile.yaml | 2 +- v3/internal/generator/analyse.go | 15 +- v3/internal/generator/collect/imports.go | 56 +- v3/internal/generator/collect/index.go | 47 +- v3/internal/generator/collect/model.go | 182 +- v3/internal/generator/collect/predicates.go | 478 ++++ v3/internal/generator/collect/properties.go | 152 -- v3/internal/generator/collect/service.go | 28 +- v3/internal/generator/collect/struct.go | 10 +- v3/internal/generator/collect/type.go | 15 +- v3/internal/generator/generate.go | 20 +- v3/internal/generator/generate_test.go | 27 +- v3/internal/generator/includes.go | 17 +- v3/internal/generator/index.go | 7 +- v3/internal/generator/models.go | 29 +- v3/internal/generator/render/create.go | 50 +- v3/internal/generator/render/default.go | 40 +- v3/internal/generator/render/doc.go | 2 +- v3/internal/generator/render/functions.go | 15 +- v3/internal/generator/render/info.go | 70 + v3/internal/generator/render/renderer.go | 25 +- v3/internal/generator/render/templates.go | 12 +- .../generator/render/templates/index.tmpl | 71 +- .../{internal.js.tmpl => models.js.tmpl} | 89 +- .../generator/render/templates/models.tmpl | 94 - .../{internal.ts.tmpl => models.ts.tmpl} | 92 +- .../render/templates/service.js.tmpl | 11 +- .../render/templates/service.ts.tmpl | 11 +- v3/internal/generator/render/type.go | 45 +- v3/internal/generator/service.go | 27 +- .../generator/testcases/aliases/main.go | 42 + .../complex_instantiations/bound_types.json | 2 +- .../testcases/complex_instantiations/main.go | 5 + .../complex_instantiations/other/local.go | 4 +- .../testcases/directives/bound_types.json | 5 + .../testcases/directives/includes.go | 11 + .../testcases/directives/internal.go | 15 + .../generator/testcases/directives/js/test.js | 3 + .../testcases/directives/js/test_all.js | 3 + .../testcases/directives/js/test_c.js | 3 + .../testcases/directives/js/test_i.js | 3 + .../testcases/directives/js/test_j.js | 3 + .../testcases/directives/js/test_jc.js | 3 + .../testcases/directives/js/test_ji.js | 3 + .../testcases/directives/js/test_t.ts | 3 + .../testcases/directives/js/test_tc.ts | 3 + .../testcases/directives/js/test_ti.ts | 3 + .../generator/testcases/directives/main.go | 60 + .../directives/otherpackage/dummy.go | 5 + .../directives/otherpackage/js/test_j.js | 3 + .../directives/otherpackage/js/test_jc.js | 3 + .../directives/otherpackage/js/test_t.ts | 3 + .../directives/otherpackage/js/test_tc.ts | 3 + .../testcases/directives/unexported.go | 11 + v3/internal/generator/testcases/enum/main.go | 14 + .../testcases/map_keys/bound_types.json | 3 + .../generator/testcases/map_keys/main.go | 307 +++ .../testcases/marshalers/bound_types.json | 3 + .../generator/testcases/marshalers/main.go | 209 ++ .../testcases/no_bindings_here/person.go | 4 +- .../struct_literal_non_pointer_single/main.go | 2 +- .../testcases/struct_literal_single/main.go | 2 +- .../UseNames=false/encoding/index.js | 13 + .../UseNames=false/encoding/json/index.js | 11 + .../UseNames=false/encoding/json/models.js} | 11 +- .../UseNames=false/encoding/models.js} | 23 +- .../testcases/aliases/greetservice.js | 33 +- .../generator/testcases/aliases/index.js | 31 +- .../generator/testcases/aliases/internal.js | 166 -- .../generator/testcases/aliases/models.js | 160 +- .../testcases/complex_json/greetservice.js | 2 +- .../generator/testcases/complex_json/index.js | 12 +- .../testcases/complex_json/internal.js | 272 -- .../testcases/complex_json/models.js | 271 +- .../testcases/complex_method/greetservice.js | 2 +- .../testcases/complex_method/index.js | 4 +- .../testcases/complex_method/models.js | 37 +- .../testcases/cyclic_imports/greetservice.js | 2 +- .../testcases/cyclic_imports/index.js | 6 +- .../testcases/cyclic_imports/internal.js | 164 -- .../testcases/cyclic_imports/models.js | 165 +- .../testcases/cyclic_types/greetservice.js | 2 +- .../generator/testcases/cyclic_types/index.js | 15 +- .../testcases/cyclic_types/models.js | 10 +- .../generator/testcases/directives/index.js | 14 + .../testcases/directives/internalservice.js | 25 + .../generator/testcases/directives/models.js | 69 + .../directives/otherpackage/index.js} | 9 +- .../directives/otherpackage/models.js} | 22 +- .../directives/otherpackage/test_j.js | 3 + .../directives/otherpackage/test_jc.js | 3 + .../generator/testcases/directives/service.js | 37 + .../generator/testcases/directives/test.js | 3 + .../testcases/directives/test_all.js | 3 + .../generator/testcases/directives/test_c.js | 3 + .../generator/testcases/directives/test_j.js | 3 + .../generator/testcases/directives/test_jc.js | 3 + .../testcases/directives/unexportedservice.js | 25 + .../generator/testcases/enum/greetservice.js | 2 +- .../generator/testcases/enum/index.js | 6 +- .../generator/testcases/enum/internal.js | 66 - .../generator/testcases/enum/models.js | 98 +- .../services/index.js | 4 +- .../services/internal.js | 27 - .../services/models.js | 26 +- .../greetservice.js | 2 +- .../function_from_imported_package/index.js | 4 +- .../internal.js | 57 - .../function_from_imported_package/models.js | 56 +- .../services/index.js | 4 +- .../services/internal.js | 49 - .../services/models.js | 48 +- .../services/otherservice.js | 2 +- .../greetservice.js | 2 +- .../index.js | 4 +- .../internal.js | 54 - .../models.js | 53 +- .../services/other/index.js | 4 +- .../services/other/internal.js | 49 - .../services/other/models.js | 48 +- .../services/other/otherservice.js | 2 +- .../generator/testcases/map_keys/index.js | 62 + .../generator/testcases/map_keys/models.js | 1239 +++++++++ .../generator/testcases/map_keys/service.js | 26 + .../generator/testcases/marshalers/index.js | 116 + .../generator/testcases/marshalers/models.js | 630 +++++ .../testcases/marshalers/service.js} | 17 +- .../testcases/no_bindings_here/index.js | 7 +- .../testcases/no_bindings_here/internal.js | 181 -- .../testcases/no_bindings_here/models.js | 183 +- .../testcases/no_bindings_here/other/index.js | 4 +- .../no_bindings_here/other/internal.js | 60 - .../no_bindings_here/other/models.js | 59 +- .../testcases/no_bindings_here/somemethods.js | 4 +- .../testcases/out_of_tree/embedservice.js | 2 +- .../greetservice.js | 2 +- .../struct_literal_multiple_other/index.js | 4 +- .../struct_literal_multiple_other/internal.js | 54 - .../struct_literal_multiple_other/models.js | 53 +- .../services/index.js | 4 +- .../services/internal.js | 49 - .../services/models.js | 48 +- .../services/otherservice.js | 2 +- .../greetservice.js | 8 +- .../index.js | 4 +- .../internal.js | 57 - .../models.js | 56 +- .../struct_literal_single/greetservice.js | 8 +- .../testcases/struct_literal_single/index.js | 4 +- .../struct_literal_single/internal.js | 57 - .../testcases/struct_literal_single/models.js | 56 +- .../greetservice.js | 2 +- .../index.js | 4 +- .../internal.js | 58 - .../models.js | 57 +- .../services/index.js | 4 +- .../services/internal.js | 49 - .../services/models.js | 48 +- .../services/otherservice.js | 2 +- .../UseNames=false/warnings.log | 47 + .../UseNames=true/encoding/index.js | 13 + .../UseNames=true/encoding/json/index.js | 11 + .../UseNames=true/encoding/json/models.js} | 11 +- .../UseNames=true/encoding/models.js | 15 + .../testcases/aliases/greetservice.js | 33 +- .../generator/testcases/aliases/index.js | 31 +- .../generator/testcases/aliases/internal.js | 166 -- .../generator/testcases/aliases/models.js | 160 +- .../testcases/complex_json/greetservice.js | 2 +- .../generator/testcases/complex_json/index.js | 12 +- .../testcases/complex_json/internal.js | 272 -- .../testcases/complex_json/models.js | 271 +- .../testcases/complex_method/greetservice.js | 2 +- .../testcases/complex_method/index.js | 4 +- .../testcases/complex_method/models.js | 37 +- .../testcases/cyclic_imports/greetservice.js | 2 +- .../testcases/cyclic_imports/index.js | 6 +- .../testcases/cyclic_imports/internal.js | 164 -- .../testcases/cyclic_imports/models.js | 165 +- .../testcases/cyclic_types/greetservice.js | 2 +- .../generator/testcases/cyclic_types/index.js | 15 +- .../testcases/cyclic_types/models.js | 10 +- .../generator/testcases/directives/index.js | 14 + .../testcases/directives/internalservice.js | 25 + .../generator/testcases/directives/models.js | 69 + .../directives/otherpackage/index.js | 7 + .../directives/otherpackage/models.js} | 22 +- .../directives/otherpackage/test_j.js | 3 + .../directives/otherpackage/test_jc.js | 3 + .../generator/testcases/directives/service.js | 37 + .../generator/testcases/directives/test.js | 3 + .../testcases/directives/test_all.js | 3 + .../generator/testcases/directives/test_c.js | 3 + .../generator/testcases/directives/test_j.js | 3 + .../generator/testcases/directives/test_jc.js | 3 + .../testcases/directives/unexportedservice.js | 25 + .../generator/testcases/enum/greetservice.js | 2 +- .../generator/testcases/enum/index.js | 6 +- .../generator/testcases/enum/internal.js | 66 - .../generator/testcases/enum/models.js | 98 +- .../services/index.js | 4 +- .../services/internal.js | 27 - .../services/models.js | 26 +- .../greetservice.js | 2 +- .../function_from_imported_package/index.js | 4 +- .../internal.js | 57 - .../function_from_imported_package/models.js | 56 +- .../services/index.js | 4 +- .../services/internal.js | 49 - .../services/models.js | 48 +- .../services/otherservice.js | 2 +- .../greetservice.js | 2 +- .../index.js | 4 +- .../internal.js | 54 - .../models.js | 53 +- .../services/other/index.js | 4 +- .../services/other/internal.js | 49 - .../services/other/models.js | 48 +- .../services/other/otherservice.js | 2 +- .../generator/testcases/map_keys/index.js | 62 + .../generator/testcases/map_keys/models.js | 1239 +++++++++ .../generator/testcases/map_keys/service.js | 26 + .../generator/testcases/marshalers/index.js | 116 + .../generator/testcases/marshalers/models.js | 630 +++++ .../generator/testcases/marshalers/service.js | 26 + .../testcases/no_bindings_here/index.js | 7 +- .../testcases/no_bindings_here/internal.js | 181 -- .../testcases/no_bindings_here/models.js | 183 +- .../testcases/no_bindings_here/other/index.js | 4 +- .../no_bindings_here/other/internal.js | 60 - .../no_bindings_here/other/models.js | 59 +- .../testcases/no_bindings_here/somemethods.js | 4 +- .../testcases/out_of_tree/embedservice.js | 2 +- .../greetservice.js | 2 +- .../struct_literal_multiple_other/index.js | 4 +- .../struct_literal_multiple_other/internal.js | 54 - .../struct_literal_multiple_other/models.js | 53 +- .../services/index.js | 4 +- .../services/internal.js | 49 - .../services/models.js | 48 +- .../services/otherservice.js | 2 +- .../greetservice.js | 8 +- .../index.js | 4 +- .../internal.js | 57 - .../models.js | 56 +- .../struct_literal_single/greetservice.js | 8 +- .../testcases/struct_literal_single/index.js | 4 +- .../struct_literal_single/internal.js | 57 - .../testcases/struct_literal_single/models.js | 56 +- .../greetservice.js | 2 +- .../index.js | 4 +- .../internal.js | 58 - .../models.js | 57 +- .../services/index.js | 4 +- .../services/internal.js | 49 - .../services/models.js | 48 +- .../services/otherservice.js | 2 +- .../UseNames=true/warnings.log | 47 + .../UseNames=false/encoding/index.js | 13 + .../UseNames=false/encoding/json/index.js | 11 + .../internal.js => encoding/json/models.js} | 7 +- .../UseNames=false/encoding/models.js | 15 + .../testcases/aliases/greetservice.js | 14 +- .../generator/testcases/aliases/index.js | 49 +- .../generator/testcases/aliases/internal.js | 65 - .../generator/testcases/aliases/models.js | 35 +- .../testcases/complex_json/greetservice.js | 2 +- .../generator/testcases/complex_json/index.js | 19 +- .../testcases/complex_json/internal.js | 64 - .../testcases/complex_json/models.js | 60 +- .../testcases/complex_method/greetservice.js | 2 +- .../testcases/complex_method/index.js | 7 +- .../testcases/complex_method/models.js | 9 +- .../testcases/cyclic_imports/greetservice.js | 2 +- .../testcases/cyclic_imports/index.js | 14 +- .../testcases/cyclic_imports/internal.js | 32 - .../testcases/cyclic_imports/models.js | 25 +- .../testcases/cyclic_types/greetservice.js | 2 +- .../generator/testcases/cyclic_types/index.js | 15 +- .../testcases/cyclic_types/internal.js | 20 - .../testcases/cyclic_types/models.js | 12 +- .../generator/testcases/directives/index.js | 14 + .../testcases/directives/internalservice.js | 25 + .../internal.js => directives/models.js} | 13 +- .../directives/otherpackage/index.js} | 8 +- .../directives/otherpackage/models.js} | 5 +- .../generator/testcases/directives/service.js | 37 + .../generator/testcases/directives/test.js | 3 + .../testcases/directives/test_all.js | 3 + .../generator/testcases/directives/test_i.js | 3 + .../generator/testcases/directives/test_j.js | 3 + .../generator/testcases/directives/test_ji.js | 3 + .../testcases/directives/unexportedservice.js | 25 + .../generator/testcases/enum/greetservice.js | 2 +- .../generator/testcases/enum/index.js | 12 +- .../generator/testcases/enum/internal.js | 35 - .../generator/testcases/enum/models.js | 57 +- .../services/index.js | 4 +- .../services/internal.js | 27 - .../services/models.js | 26 +- .../greetservice.js | 2 +- .../function_from_imported_package/index.js | 7 +- .../internal.js | 18 - .../function_from_imported_package/models.js | 12 +- .../services/index.js | 6 +- .../services/models.js | 11 +- .../services/otherservice.js | 2 +- .../greetservice.js | 2 +- .../index.js | 6 +- .../internal.js | 17 - .../models.js | 12 +- .../services/other/index.js | 6 +- .../services/other/models.js | 11 +- .../services/other/otherservice.js | 2 +- .../generator/testcases/map_keys/index.js | 63 + .../generator/testcases/map_keys/models.js | 149 ++ .../generator/testcases/map_keys/service.js | 19 + .../generator/testcases/marshalers/index.js | 124 + .../generator/testcases/marshalers/models.js | 186 ++ .../generator/testcases/marshalers/service.js | 19 + .../testcases/no_bindings_here/index.js | 24 +- .../testcases/no_bindings_here/internal.js | 42 - .../testcases/no_bindings_here/models.js | 27 +- .../testcases/no_bindings_here/other/index.js | 8 +- .../no_bindings_here/other/internal.js | 15 - .../no_bindings_here/other/models.js | 10 +- .../testcases/no_bindings_here/somemethods.js | 2 +- .../greetservice.js | 2 +- .../struct_literal_multiple_other/index.js | 6 +- .../struct_literal_multiple_other/internal.js | 17 - .../struct_literal_multiple_other/models.js | 12 +- .../services/index.js | 6 +- .../services/models.js | 11 +- .../services/otherservice.js | 2 +- .../greetservice.js | 8 +- .../index.js | 6 +- .../internal.js | 14 - .../models.js | 11 +- .../struct_literal_single/greetservice.js | 8 +- .../testcases/struct_literal_single/index.js | 6 +- .../struct_literal_single/internal.js | 14 - .../testcases/struct_literal_single/models.js | 11 +- .../greetservice.js | 2 +- .../index.js | 8 +- .../internal.js | 19 - .../models.js | 12 +- .../services/index.js | 6 +- .../services/internal.js | 14 - .../services/models.js | 11 +- .../services/otherservice.js | 2 +- .../UseNames=false/warnings.log | 47 + .../UseNames=true/encoding/index.js | 13 + .../UseNames=true/encoding/json/index.js | 11 + .../encoding/json/models.js} | 7 +- .../UseNames=true/encoding/models.js | 15 + .../testcases/aliases/greetservice.js | 14 +- .../generator/testcases/aliases/index.js | 49 +- .../generator/testcases/aliases/internal.js | 65 - .../generator/testcases/aliases/models.js | 35 +- .../testcases/complex_json/greetservice.js | 2 +- .../generator/testcases/complex_json/index.js | 19 +- .../testcases/complex_json/internal.js | 64 - .../testcases/complex_json/models.js | 60 +- .../testcases/complex_method/greetservice.js | 2 +- .../testcases/complex_method/index.js | 7 +- .../testcases/complex_method/models.js | 9 +- .../testcases/cyclic_imports/greetservice.js | 2 +- .../testcases/cyclic_imports/index.js | 14 +- .../testcases/cyclic_imports/internal.js | 32 - .../testcases/cyclic_imports/models.js | 25 +- .../testcases/cyclic_types/greetservice.js | 2 +- .../generator/testcases/cyclic_types/index.js | 15 +- .../testcases/cyclic_types/internal.js | 20 - .../testcases/cyclic_types/models.js | 12 +- .../generator/testcases/directives/index.js | 14 + .../testcases/directives/internalservice.js | 25 + .../generator/testcases/directives/models.js | 19 + .../directives/otherpackage/index.js} | 8 +- .../directives/otherpackage/models.js} | 5 +- .../generator/testcases/directives/service.js | 37 + .../generator/testcases/directives/test.js | 3 + .../testcases/directives/test_all.js | 3 + .../generator/testcases/directives/test_i.js | 3 + .../generator/testcases/directives/test_j.js | 3 + .../generator/testcases/directives/test_ji.js | 3 + .../testcases/directives/unexportedservice.js | 25 + .../generator/testcases/enum/greetservice.js | 2 +- .../generator/testcases/enum/index.js | 12 +- .../generator/testcases/enum/internal.js | 35 - .../generator/testcases/enum/models.js | 57 +- .../services/index.js | 4 +- .../services/internal.js | 27 - .../services/models.js | 26 +- .../greetservice.js | 2 +- .../function_from_imported_package/index.js | 7 +- .../internal.js | 18 - .../function_from_imported_package/models.js | 12 +- .../services/index.js | 6 +- .../services/internal.js | 14 - .../services/models.js | 11 +- .../services/otherservice.js | 2 +- .../greetservice.js | 2 +- .../index.js | 6 +- .../internal.js | 17 - .../models.js | 12 +- .../services/other/index.js | 6 +- .../services/other/internal.js | 14 - .../services/other/models.js | 11 +- .../services/other/otherservice.js | 2 +- .../generator/testcases/map_keys/index.js | 63 + .../generator/testcases/map_keys/models.js | 149 ++ .../generator/testcases/map_keys/service.js | 19 + .../generator/testcases/marshalers/index.js | 124 + .../generator/testcases/marshalers/models.js | 186 ++ .../generator/testcases/marshalers/service.js | 19 + .../testcases/no_bindings_here/index.js | 24 +- .../testcases/no_bindings_here/internal.js | 42 - .../testcases/no_bindings_here/models.js | 27 +- .../testcases/no_bindings_here/other/index.js | 8 +- .../no_bindings_here/other/internal.js | 15 - .../no_bindings_here/other/models.js | 10 +- .../testcases/no_bindings_here/somemethods.js | 2 +- .../greetservice.js | 2 +- .../struct_literal_multiple_other/index.js | 6 +- .../struct_literal_multiple_other/internal.js | 17 - .../struct_literal_multiple_other/models.js | 12 +- .../services/index.js | 6 +- .../services/internal.js | 14 - .../services/models.js | 11 +- .../services/otherservice.js | 2 +- .../greetservice.js | 8 +- .../index.js | 6 +- .../internal.js | 14 - .../models.js | 11 +- .../struct_literal_single/greetservice.js | 8 +- .../testcases/struct_literal_single/index.js | 6 +- .../struct_literal_single/internal.js | 14 - .../testcases/struct_literal_single/models.js | 11 +- .../greetservice.js | 2 +- .../index.js | 8 +- .../internal.js | 19 - .../models.js | 12 +- .../services/index.js | 6 +- .../services/internal.js | 14 - .../services/models.js | 11 +- .../services/otherservice.js | 2 +- .../UseNames=true/warnings.log | 47 + .../UseNames=false/encoding/index.ts | 6 + .../UseNames=false/encoding/json/index.ts | 6 + .../UseNames=false/encoding/json/models.ts} | 14 +- .../UseNames=false/encoding/models.ts | 14 + .../testcases/aliases/greetservice.ts | 30 +- .../generator/testcases/aliases/index.ts | 15 +- .../generator/testcases/aliases/internal.ts | 157 -- .../generator/testcases/aliases/models.ts | 163 +- .../testcases/complex_json/greetservice.ts | 2 +- .../generator/testcases/complex_json/index.ts | 10 +- .../testcases/complex_json/internal.ts | 237 -- .../testcases/complex_json/models.ts | 241 +- .../testcases/complex_method/greetservice.ts | 2 +- .../testcases/complex_method/index.ts | 4 +- .../testcases/complex_method/internal.ts | 30 - .../testcases/complex_method/models.ts | 30 +- .../testcases/cyclic_imports/greetservice.ts | 2 +- .../testcases/cyclic_imports/index.ts | 6 +- .../testcases/cyclic_imports/internal.ts | 131 - .../testcases/cyclic_imports/models.ts | 133 +- .../testcases/cyclic_types/greetservice.ts | 2 +- .../generator/testcases/cyclic_types/index.ts | 6 +- .../testcases/cyclic_types/models.ts | 14 +- .../generator/testcases/directives/index.ts | 13 + .../testcases/directives/internalservice.ts | 20 + .../generator/testcases/directives/models.ts | 54 + .../directives/otherpackage/index.ts | 6 + .../directives/otherpackage/models.ts | 23 + .../directives/otherpackage/test_t.ts | 3 + .../directives/otherpackage/test_tc.ts | 3 + .../generator/testcases/directives/service.ts | 24 + .../generator/testcases/directives/test.js | 3 + .../testcases/directives/test_all.js | 3 + .../generator/testcases/directives/test_c.js | 3 + .../generator/testcases/directives/test_t.ts | 3 + .../generator/testcases/directives/test_tc.ts | 3 + .../testcases/directives/unexportedservice.ts | 20 + .../generator/testcases/enum/greetservice.ts | 2 +- .../generator/testcases/enum/index.ts | 6 +- .../generator/testcases/enum/internal.ts | 53 - .../generator/testcases/enum/models.ts | 83 +- .../services/index.ts | 4 +- .../services/models.ts | 22 +- .../greetservice.ts | 2 +- .../function_from_imported_package/index.ts | 4 +- .../internal.ts | 46 - .../function_from_imported_package/models.ts | 46 +- .../services/index.ts | 4 +- .../services/internal.ts | 35 - .../services/models.ts | 35 +- .../services/otherservice.ts | 2 +- .../greetservice.ts | 2 +- .../index.ts | 4 +- .../internal.ts | 43 - .../models.ts | 43 +- .../services/other/index.ts | 4 +- .../services/other/internal.ts | 35 - .../services/other/models.ts | 35 +- .../services/other/otherservice.ts | 2 +- .../generator/testcases/map_keys/index.ts | 26 + .../generator/testcases/map_keys/models.ts | 1197 +++++++++ .../generator/testcases/map_keys/service.ts | 22 + .../generator/testcases/marshalers/index.ts | 36 + .../generator/testcases/marshalers/models.ts | 545 ++++ .../generator/testcases/marshalers/service.ts | 22 + .../testcases/no_bindings_here/index.ts | 7 +- .../testcases/no_bindings_here/internal.ts | 163 -- .../testcases/no_bindings_here/models.ts | 166 +- .../testcases/no_bindings_here/other/index.ts | 4 +- .../no_bindings_here/other/internal.ts | 52 - .../no_bindings_here/other/models.ts | 52 +- .../testcases/no_bindings_here/somemethods.ts | 4 +- .../testcases/out_of_tree/embedservice.ts | 2 +- .../greetservice.ts | 2 +- .../struct_literal_multiple_other/index.ts | 4 +- .../struct_literal_multiple_other/internal.ts | 43 - .../struct_literal_multiple_other/models.ts | 43 +- .../services/index.ts | 4 +- .../services/internal.ts | 35 - .../services/models.ts | 35 +- .../services/otherservice.ts | 2 +- .../greetservice.ts | 6 +- .../index.ts | 4 +- .../internal.ts | 43 - .../models.ts | 43 +- .../struct_literal_single/greetservice.ts | 6 +- .../testcases/struct_literal_single/index.ts | 4 +- .../struct_literal_single/internal.ts | 43 - .../testcases/struct_literal_single/models.ts | 43 +- .../greetservice.ts | 2 +- .../index.ts | 4 +- .../internal.ts | 47 - .../models.ts | 47 +- .../services/index.ts | 4 +- .../services/internal.ts | 35 - .../services/models.ts | 35 +- .../services/otherservice.ts | 2 +- .../UseNames=false/warnings.log | 47 + .../UseNames=true/encoding/index.ts | 6 + .../UseNames=true/encoding/json/index.ts | 6 + .../UseNames=true/encoding/json/models.ts} | 14 +- .../UseNames=true/encoding/models.ts | 14 + .../testcases/aliases/greetservice.ts | 30 +- .../generator/testcases/aliases/index.ts | 15 +- .../generator/testcases/aliases/internal.ts | 157 -- .../generator/testcases/aliases/models.ts | 163 +- .../testcases/complex_json/greetservice.ts | 2 +- .../generator/testcases/complex_json/index.ts | 10 +- .../testcases/complex_json/internal.ts | 237 -- .../testcases/complex_json/models.ts | 241 +- .../testcases/complex_method/greetservice.ts | 2 +- .../testcases/complex_method/index.ts | 4 +- .../testcases/complex_method/internal.ts | 30 - .../testcases/complex_method/models.ts | 30 +- .../testcases/cyclic_imports/greetservice.ts | 2 +- .../testcases/cyclic_imports/index.ts | 6 +- .../testcases/cyclic_imports/internal.ts | 131 - .../testcases/cyclic_imports/models.ts | 133 +- .../testcases/cyclic_types/greetservice.ts | 2 +- .../generator/testcases/cyclic_types/index.ts | 6 +- .../testcases/cyclic_types/models.ts | 14 +- .../generator/testcases/directives/index.ts | 13 + .../testcases/directives/internalservice.ts | 20 + .../generator/testcases/directives/models.ts | 54 + .../directives/otherpackage/index.ts | 6 + .../directives/otherpackage/models.ts | 23 + .../directives/otherpackage/test_t.ts | 3 + .../directives/otherpackage/test_tc.ts | 3 + .../generator/testcases/directives/service.ts | 24 + .../generator/testcases/directives/test.js | 3 + .../testcases/directives/test_all.js | 3 + .../generator/testcases/directives/test_c.js | 3 + .../generator/testcases/directives/test_t.ts | 3 + .../generator/testcases/directives/test_tc.ts | 3 + .../testcases/directives/unexportedservice.ts | 20 + .../generator/testcases/enum/greetservice.ts | 2 +- .../generator/testcases/enum/index.ts | 6 +- .../generator/testcases/enum/internal.ts | 53 - .../generator/testcases/enum/models.ts | 83 +- .../services/index.ts | 4 +- .../services/internal.ts | 22 - .../services/models.ts | 22 +- .../greetservice.ts | 2 +- .../function_from_imported_package/index.ts | 4 +- .../internal.ts | 46 - .../function_from_imported_package/models.ts | 46 +- .../services/index.ts | 4 +- .../services/internal.ts | 35 - .../services/models.ts | 35 +- .../services/otherservice.ts | 2 +- .../greetservice.ts | 2 +- .../index.ts | 4 +- .../internal.ts | 43 - .../models.ts | 43 +- .../services/other/index.ts | 4 +- .../services/other/internal.ts | 35 - .../services/other/models.ts | 35 +- .../services/other/otherservice.ts | 2 +- .../generator/testcases/map_keys/index.ts | 26 + .../generator/testcases/map_keys/models.ts | 1197 +++++++++ .../generator/testcases/map_keys/service.ts | 22 + .../generator/testcases/marshalers/index.ts | 36 + .../generator/testcases/marshalers/models.ts | 545 ++++ .../generator/testcases/marshalers/service.ts | 22 + .../testcases/no_bindings_here/index.ts | 7 +- .../testcases/no_bindings_here/internal.ts | 163 -- .../testcases/no_bindings_here/models.ts | 166 +- .../testcases/no_bindings_here/other/index.ts | 4 +- .../no_bindings_here/other/internal.ts | 52 - .../no_bindings_here/other/models.ts | 52 +- .../testcases/no_bindings_here/somemethods.ts | 4 +- .../testcases/out_of_tree/embedservice.ts | 2 +- .../greetservice.ts | 2 +- .../struct_literal_multiple_other/index.ts | 4 +- .../struct_literal_multiple_other/internal.ts | 43 - .../struct_literal_multiple_other/models.ts | 43 +- .../services/index.ts | 4 +- .../services/internal.ts | 35 - .../services/models.ts | 35 +- .../services/otherservice.ts | 2 +- .../greetservice.ts | 6 +- .../index.ts | 4 +- .../internal.ts | 43 - .../models.ts | 43 +- .../struct_literal_single/greetservice.ts | 6 +- .../testcases/struct_literal_single/index.ts | 4 +- .../struct_literal_single/internal.ts | 43 - .../testcases/struct_literal_single/models.ts | 43 +- .../greetservice.ts | 2 +- .../index.ts | 4 +- .../internal.ts | 47 - .../models.ts | 47 +- .../services/index.ts | 4 +- .../services/internal.ts | 35 - .../services/models.ts | 35 +- .../services/otherservice.ts | 2 +- .../UseNames=true/warnings.log | 47 + .../UseNames=false/encoding/index.ts | 6 + .../UseNames=false/encoding/json/index.ts | 6 + .../UseNames=false/encoding/json/models.ts | 8 + .../UseNames=false/encoding/models.ts | 10 + .../testcases/aliases/greetservice.ts | 11 +- .../generator/testcases/aliases/index.ts | 12 +- .../generator/testcases/aliases/internal.ts | 81 - .../generator/testcases/aliases/models.ts | 89 +- .../testcases/complex_json/greetservice.ts | 2 +- .../generator/testcases/complex_json/index.ts | 10 +- .../testcases/complex_json/internal.ts | 121 - .../testcases/complex_json/models.ts | 125 +- .../testcases/complex_method/greetservice.ts | 2 +- .../testcases/complex_method/index.ts | 4 +- .../testcases/complex_method/models.ts | 9 +- .../testcases/cyclic_imports/greetservice.ts | 2 +- .../testcases/cyclic_imports/index.ts | 6 +- .../testcases/cyclic_imports/internal.ts | 21 - .../testcases/cyclic_imports/models.ts | 23 +- .../testcases/cyclic_types/greetservice.ts | 2 +- .../generator/testcases/cyclic_types/index.ts | 6 +- .../testcases/cyclic_types/internal.ts | 8 - .../testcases/cyclic_types/models.ts | 10 +- .../generator/testcases/directives/index.ts | 13 + .../testcases/directives/internalservice.ts | 20 + .../generator/testcases/directives/models.ts | 16 + .../directives/otherpackage/index.ts | 6 + .../otherpackage/models.ts} | 5 +- .../generator/testcases/directives/service.ts | 24 + .../generator/testcases/directives/test.js | 3 + .../testcases/directives/test_all.js | 3 + .../generator/testcases/directives/test_i.js | 3 + .../generator/testcases/directives/test_t.ts | 3 + .../generator/testcases/directives/test_ti.ts | 3 + .../testcases/directives/unexportedservice.ts | 20 + .../generator/testcases/enum/greetservice.ts | 2 +- .../generator/testcases/enum/index.ts | 9 +- .../generator/testcases/enum/internal.ts | 29 - .../generator/testcases/enum/models.ts | 57 +- .../services/index.ts | 4 +- .../services/internal.ts | 18 - .../services/models.ts | 18 +- .../greetservice.ts | 2 +- .../function_from_imported_package/index.ts | 4 +- .../internal.ts | 14 - .../function_from_imported_package/models.ts | 14 +- .../services/index.ts | 4 +- .../services/models.ts | 8 +- .../services/otherservice.ts | 2 +- .../greetservice.ts | 2 +- .../index.ts | 4 +- .../internal.ts | 11 - .../models.ts | 11 +- .../services/other/index.ts | 4 +- .../services/other/models.ts | 8 +- .../services/other/otherservice.ts | 2 +- .../generator/testcases/map_keys/index.ts | 23 + .../generator/testcases/map_keys/models.ts | 473 ++++ .../generator/testcases/map_keys/service.ts | 15 + .../generator/testcases/marshalers/index.ts | 33 + .../generator/testcases/marshalers/models.ts | 309 +++ .../generator/testcases/marshalers/service.ts | 15 + .../testcases/no_bindings_here/index.ts | 7 +- .../testcases/no_bindings_here/internal.ts | 54 - .../testcases/no_bindings_here/models.ts | 67 +- .../testcases/no_bindings_here/other/index.ts | 4 +- .../no_bindings_here/other/internal.ts | 17 - .../no_bindings_here/other/models.ts | 17 +- .../testcases/no_bindings_here/somemethods.ts | 2 +- .../greetservice.ts | 2 +- .../struct_literal_multiple_other/index.ts | 4 +- .../struct_literal_multiple_other/internal.ts | 11 - .../struct_literal_multiple_other/models.ts | 11 +- .../services/index.ts | 4 +- .../services/models.ts | 8 +- .../services/otherservice.ts | 2 +- .../greetservice.ts | 6 +- .../index.ts | 4 +- .../internal.ts | 8 - .../models.ts | 8 +- .../struct_literal_single/greetservice.ts | 6 +- .../testcases/struct_literal_single/index.ts | 4 +- .../struct_literal_single/internal.ts | 8 - .../testcases/struct_literal_single/models.ts | 8 +- .../greetservice.ts | 2 +- .../index.ts | 4 +- .../internal.ts | 15 - .../models.ts | 15 +- .../services/index.ts | 4 +- .../services/internal.ts | 8 - .../services/models.ts | 8 +- .../services/otherservice.ts | 2 +- .../UseNames=false/warnings.log | 47 + .../UseNames=true/encoding/index.ts | 6 + .../UseNames=true/encoding/json/index.ts | 6 + .../UseNames=true/encoding/json/models.ts | 8 + .../UseNames=true/encoding/models.ts | 10 + .../testcases/aliases/greetservice.ts | 11 +- .../generator/testcases/aliases/index.ts | 12 +- .../generator/testcases/aliases/internal.ts | 81 - .../generator/testcases/aliases/models.ts | 89 +- .../testcases/complex_json/greetservice.ts | 2 +- .../generator/testcases/complex_json/index.ts | 10 +- .../testcases/complex_json/internal.ts | 121 - .../testcases/complex_json/models.ts | 125 +- .../testcases/complex_method/greetservice.ts | 2 +- .../testcases/complex_method/index.ts | 4 +- .../testcases/complex_method/models.ts | 9 +- .../testcases/cyclic_imports/greetservice.ts | 2 +- .../testcases/cyclic_imports/index.ts | 6 +- .../testcases/cyclic_imports/internal.ts | 21 - .../testcases/cyclic_imports/models.ts | 23 +- .../testcases/cyclic_types/greetservice.ts | 2 +- .../generator/testcases/cyclic_types/index.ts | 6 +- .../testcases/cyclic_types/internal.ts | 8 - .../testcases/cyclic_types/models.ts | 10 +- .../generator/testcases/directives/index.ts | 13 + .../testcases/directives/internalservice.ts | 20 + .../generator/testcases/directives/models.ts | 16 + .../directives/otherpackage/index.ts | 6 + .../directives/otherpackage/models.ts} | 5 +- .../generator/testcases/directives/service.ts | 24 + .../generator/testcases/directives/test.js | 3 + .../testcases/directives/test_all.js | 3 + .../generator/testcases/directives/test_i.js | 3 + .../generator/testcases/directives/test_t.ts | 3 + .../generator/testcases/directives/test_ti.ts | 3 + .../testcases/directives/unexportedservice.ts | 20 + .../generator/testcases/enum/greetservice.ts | 2 +- .../generator/testcases/enum/index.ts | 9 +- .../generator/testcases/enum/internal.ts | 29 - .../generator/testcases/enum/models.ts | 57 +- .../services/index.ts | 4 +- .../services/internal.ts | 18 - .../services/models.ts | 18 +- .../greetservice.ts | 2 +- .../function_from_imported_package/index.ts | 4 +- .../internal.ts | 14 - .../function_from_imported_package/models.ts | 14 +- .../services/index.ts | 4 +- .../services/internal.ts | 8 - .../services/models.ts | 8 +- .../services/otherservice.ts | 2 +- .../greetservice.ts | 2 +- .../index.ts | 4 +- .../internal.ts | 11 - .../models.ts | 11 +- .../services/other/index.ts | 4 +- .../services/other/internal.ts | 8 - .../services/other/models.ts | 8 +- .../services/other/otherservice.ts | 2 +- .../generator/testcases/map_keys/index.ts | 23 + .../generator/testcases/map_keys/models.ts | 473 ++++ .../generator/testcases/map_keys/service.ts | 15 + .../generator/testcases/marshalers/index.ts | 33 + .../generator/testcases/marshalers/models.ts | 309 +++ .../generator/testcases/marshalers/service.ts | 15 + .../testcases/no_bindings_here/index.ts | 7 +- .../testcases/no_bindings_here/internal.ts | 54 - .../testcases/no_bindings_here/models.ts | 67 +- .../testcases/no_bindings_here/other/index.ts | 4 +- .../no_bindings_here/other/internal.ts | 17 - .../no_bindings_here/other/models.ts | 17 +- .../testcases/no_bindings_here/somemethods.ts | 2 +- .../greetservice.ts | 2 +- .../struct_literal_multiple_other/index.ts | 4 +- .../struct_literal_multiple_other/internal.ts | 11 - .../struct_literal_multiple_other/models.ts | 11 +- .../services/index.ts | 4 +- .../services/internal.ts | 8 - .../services/models.ts | 8 +- .../services/otherservice.ts | 2 +- .../greetservice.ts | 6 +- .../index.ts | 4 +- .../internal.ts | 8 - .../models.ts | 8 +- .../struct_literal_single/greetservice.ts | 6 +- .../testcases/struct_literal_single/index.ts | 4 +- .../struct_literal_single/internal.ts | 8 - .../testcases/struct_literal_single/models.ts | 8 +- .../greetservice.ts | 2 +- .../index.ts | 4 +- .../internal.ts | 15 - .../models.ts | 15 +- .../services/index.ts | 4 +- .../services/internal.ts | 8 - .../services/models.ts | 8 +- .../services/otherservice.ts | 2 +- .../UseNames=true/warnings.log | 47 + .../generator/testdata/package-lock.json | 2250 ++++++++++++++++- v3/internal/generator/testdata/tsconfig.json | 2 +- v3/internal/generator/typedefs.go | 34 - 859 files changed, 25099 insertions(+), 9150 deletions(-) delete mode 100644 v3/examples/binding/assets/bindings/github.com/wailsapp/wails/v3/examples/binding/data/internal.js create mode 100644 v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/examples/services/hashes/service.js create mode 100644 v3/internal/generator/collect/predicates.go delete mode 100644 v3/internal/generator/collect/properties.go create mode 100644 v3/internal/generator/render/info.go rename v3/internal/generator/render/templates/{internal.js.tmpl => models.js.tmpl} (71%) delete mode 100644 v3/internal/generator/render/templates/models.tmpl rename v3/internal/generator/render/templates/{internal.ts.tmpl => models.ts.tmpl} (69%) create mode 100644 v3/internal/generator/testcases/directives/bound_types.json create mode 100644 v3/internal/generator/testcases/directives/includes.go create mode 100644 v3/internal/generator/testcases/directives/internal.go create mode 100644 v3/internal/generator/testcases/directives/js/test.js create mode 100644 v3/internal/generator/testcases/directives/js/test_all.js create mode 100644 v3/internal/generator/testcases/directives/js/test_c.js create mode 100644 v3/internal/generator/testcases/directives/js/test_i.js create mode 100644 v3/internal/generator/testcases/directives/js/test_j.js create mode 100644 v3/internal/generator/testcases/directives/js/test_jc.js create mode 100644 v3/internal/generator/testcases/directives/js/test_ji.js create mode 100644 v3/internal/generator/testcases/directives/js/test_t.ts create mode 100644 v3/internal/generator/testcases/directives/js/test_tc.ts create mode 100644 v3/internal/generator/testcases/directives/js/test_ti.ts create mode 100644 v3/internal/generator/testcases/directives/main.go create mode 100644 v3/internal/generator/testcases/directives/otherpackage/dummy.go create mode 100644 v3/internal/generator/testcases/directives/otherpackage/js/test_j.js create mode 100644 v3/internal/generator/testcases/directives/otherpackage/js/test_jc.js create mode 100644 v3/internal/generator/testcases/directives/otherpackage/js/test_t.ts create mode 100644 v3/internal/generator/testcases/directives/otherpackage/js/test_tc.ts create mode 100644 v3/internal/generator/testcases/directives/unexported.go create mode 100644 v3/internal/generator/testcases/map_keys/bound_types.json create mode 100644 v3/internal/generator/testcases/map_keys/main.go create mode 100644 v3/internal/generator/testcases/marshalers/bound_types.json create mode 100644 v3/internal/generator/testcases/marshalers/main.go create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/encoding/index.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/encoding/json/index.js rename v3/internal/generator/testdata/output/{lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.ts => lang=JS/UseInterfaces=false/UseNames=false/encoding/json/models.js} (59%) rename v3/internal/generator/testdata/output/{lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.ts => lang=JS/UseInterfaces=false/UseNames=false/encoding/models.js} (51%) delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.js rename v3/internal/generator/testdata/output/{lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.ts => lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.js} (54%) rename v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/{UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.js => UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.js} (52%) create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_j.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_jc.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_c.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_j.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_jc.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.js rename v3/{examples/services/assets/bindings/github.com/wailsapp/wails/v3/examples/services/hashes/hashes.js => internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.js} (62%) delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/warnings.log create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/encoding/index.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/encoding/json/index.js rename v3/internal/generator/testdata/output/{lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.ts => lang=JS/UseInterfaces=false/UseNames=true/encoding/json/models.js} (59%) create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/encoding/models.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.js rename v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/{UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.js => UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.js} (52%) create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_j.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_jc.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_c.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_j.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_jc.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/warnings.log create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/encoding/index.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/encoding/json/index.js rename v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/{github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.js => encoding/json/models.js} (69%) create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/encoding/models.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.js rename v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/{function_from_nested_imported_package/services/other/internal.js => directives/models.js} (60%) rename v3/internal/generator/testdata/output/{lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.ts => lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.js} (58%) rename v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/{UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.js => UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.js} (77%) create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_i.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_j.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_ji.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/warnings.log create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/encoding/index.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/encoding/json/index.js rename v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/{UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.js => UseNames=true/encoding/json/models.js} (69%) create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/encoding/models.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.js rename v3/internal/generator/testdata/output/{lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.ts => lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.js} (58%) rename v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/{UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.js => UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.js} (77%) create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_i.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_j.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_ji.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.js delete mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/warnings.log create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/encoding/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/encoding/json/index.ts rename v3/internal/generator/testdata/output/{lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.js => lang=TS/UseInterfaces=false/UseNames=false/encoding/json/models.ts} (55%) create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/encoding/models.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_t.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_tc.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_c.js create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_t.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_tc.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/warnings.log create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/encoding/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/encoding/json/index.ts rename v3/internal/generator/testdata/output/{lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.js => lang=TS/UseInterfaces=false/UseNames=true/encoding/json/models.ts} (55%) create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/encoding/models.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_t.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_tc.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_c.js create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_t.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_tc.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/warnings.log create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/encoding/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/encoding/json/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/encoding/json/models.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/encoding/models.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.ts rename v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/{function_from_nested_imported_package/services/other/internal.ts => directives/otherpackage/models.ts} (55%) create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_i.js create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_t.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_ti.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/warnings.log create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/encoding/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/encoding/json/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/encoding/json/models.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/encoding/models.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.ts rename v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/{UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.ts => UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.ts} (55%) create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_i.js create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_t.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_ti.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.ts delete mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/warnings.log delete mode 100644 v3/internal/generator/typedefs.go diff --git a/docs/src/content/docs/changelog.mdx b/docs/src/content/docs/changelog.mdx index c1b8b5051..f7cf47c7f 100644 --- a/docs/src/content/docs/changelog.mdx +++ b/docs/src/content/docs/changelog.mdx @@ -46,6 +46,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Support cancellation of events in standard event listeners by [@leaanthony](https://github.com/leaanthony) - Systray `Hide`, `Show` and `Destroy` support by [@leaanthony](https://github.com/leaanthony) - Systray `SetTooltip` support by [@leaanthony](https://github.com/leaanthony). Original idea by [@lujihong](https://github.com/wailsapp/wails/issues/3487#issuecomment-2633242304) +- Report package path in binding generator warnings about unsupported types by [@fbbdev](https://github.com/fbbdev) in [#4045](https://github.com/wailsapp/wails/pull/4045) +- Add binding generator support for generic aliases by [@fbbdev](https://github.com/fbbdev) in [#4045](https://github.com/wailsapp/wails/pull/4045) +- Add binding generator support for `omitzero` JSON flag by [@fbbdev](https://github.com/fbbdev) in [#4045](https://github.com/wailsapp/wails/pull/4045) +- Add `//wails:ignore` directive to prevent binding generation for chosen service methods by [@fbbdev](https://github.com/fbbdev) in [#4045](https://github.com/wailsapp/wails/pull/4045) +- Add `//wails:internal` directive on services and models to allow for types that are exported in Go but not in JS/TS by [@fbbdev](https://github.com/fbbdev) in [#4045](https://github.com/wailsapp/wails/pull/4045) +- Add binding generator support for constants of alias type to allow for weakly typed enums by [@fbbdev](https://github.com/fbbdev) in [#4045](https://github.com/wailsapp/wails/pull/4045) ### Fixed @@ -62,6 +68,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Fixed a `Parameter incorrect` error in Window initialisation on Windows when HTML provided but no JS by [@leaanthony](https://github.com/leaanthony) - Fixed size of response prefix used for content type sniffing in asset server by [@fbbdev](https://github.com/fbbdev) in [#4049](https://github.com/wailsapp/wails/pull/4049) - Fixed handling of non-404 responses on root index path in asset server by [@fbbdev](https://github.com/fbbdev) in [#4049](https://github.com/wailsapp/wails/pull/4049) +- Fixed undefined behaviour in binding generator when testing properties of generic types by [@fbbdev](https://github.com/fbbdev) in [#4045](https://github.com/wailsapp/wails/pull/4045) +- Fixed binding generator output for models when underlying type has not the same properties as named wrapper by [@fbbdev](https://github.com/fbbdev) in [#4045](https://github.com/wailsapp/wails/pull/4045) +- Fixed binding generator output for map key types and preprocessing by [@fbbdev](https://github.com/fbbdev) in [#4045](https://github.com/wailsapp/wails/pull/4045) +- Fixed binding generator output for structs that implement marshaler interfaces by [@fbbdev](https://github.com/fbbdev) in [#4045](https://github.com/wailsapp/wails/pull/4045) +- Fixed detection of type cycles involving generic types in binding generator by [@fbbdev](https://github.com/fbbdev) in [#4045](https://github.com/wailsapp/wails/pull/4045) +- Fixed invalid references to unexported models in binding generator output by [@fbbdev](https://github.com/fbbdev) in [#4045](https://github.com/wailsapp/wails/pull/4045) +- Moved injected code to the end of service files by [@fbbdev](https://github.com/fbbdev) in [#4045](https://github.com/wailsapp/wails/pull/4045) +- Fixed handling of errors from file close operations in binding generator by [@fbbdev](https://github.com/fbbdev) in [#4045](https://github.com/wailsapp/wails/pull/4045) +- Suppressed warnings for services that define lifecycle or http methods but no other bound methods by [@fbbdev](https://github.com/fbbdev) in [#4045](https://github.com/wailsapp/wails/pull/4045) ### Changed @@ -72,6 +87,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `application.NewService` does not accept options as an optional parameter anymore (use `application.NewServiceWithOptions` instead) by [@leaanthony](https://github.com/leaanthony) in [#4024](https://github.com/wailsapp/wails/pull/4024) - Removed `nanoid` dependency by [@leaanthony](https://github.com/leaanthony) - Updated Window example for mica/acrylic/tabbed window styles by [@leaanthony](https://github.com/leaanthony) +- In JS/TS bindings, `internal.js/ts` model files have been removed; all models can now be found in `models.js/ts` by [@fbbdev](https://github.com/fbbdev) in [#4045](https://github.com/wailsapp/wails/pull/4045) +- In JS/TS bindings, named types are never rendered as aliases for other named types; the old behaviour is now restricted to aliases by [@fbbdev](https://github.com/fbbdev) in [#4045](https://github.com/wailsapp/wails/pull/4045) +- In JS/TS bindings, in class mode, struct fields whose type is a type parameter are marked optional and never initialised automatically by [@fbbdev](https://github.com/fbbdev) in [#4045](https://github.com/wailsapp/wails/pull/4045) ## v3.0.0-alpha.9 - 2025-01-13 diff --git a/docs/src/content/docs/guides/cli.mdx b/docs/src/content/docs/guides/cli.mdx index 4b9400f51..89035e7e5 100644 --- a/docs/src/content/docs/guides/cli.mdx +++ b/docs/src/content/docs/guides/cli.mdx @@ -134,7 +134,6 @@ wails3 generate bindings [flags] [patterns...] | `-f` | Additional Go build flags | | | `-d` | Output directory | `frontend/bindings` | | `-models` | Models filename | `models` | -| `-internal` | Internal filename | `internal` | | `-index` | Index filename | `index` | | `-ts` | Generate TypeScript | `false` | | `-i` | Use TS interfaces | `false` | diff --git a/docs/src/content/docs/learn/bindings.mdx b/docs/src/content/docs/learn/bindings.mdx index 5b5bb85e0..38201a269 100644 --- a/docs/src/content/docs/learn/bindings.mdx +++ b/docs/src/content/docs/learn/bindings.mdx @@ -114,7 +114,7 @@ is used to namespace the generated files. The generated `greetservice.js` file contains the JavaScript code that mirrors the Go struct and its methods: -```javascript +```javascript title="greetservice.js" // @ts-check // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT @@ -212,7 +212,7 @@ If we run the bindings generator again, we should see the following output: In the `frontend/bindings/changeme` directory, you should see a new `models.js` file containing the following code: -```javascript +```javascript title="models.js" // @ts-check // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT @@ -270,7 +270,7 @@ Here's an example of how you can use the generated JavaScript `Person` type in your frontend code: ```javascript -import { Greet } from "./bindings/changeme/GreetService.js"; +import { Greet } from "./bindings/changeme/greetservice.js"; import { Person } from "./bindings/changeme/models.js"; const resultElement = document.getElementById("result"); @@ -291,6 +291,36 @@ the `Greet` method. Using bound models allows you to work with complex data structures and seamlessly pass them between the frontend and backend of your Wails application. +### Index files + +The generator outputs an additional `index.js` file that re-exports all services and models: + +```javascript title="index.js" +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as GreetService from "./greetservice.js"; +export { + GreetService +}; + +export { + Person +} from "./models.js"; +``` + +You can take advantage of this feature +to aggregate import statements for multiple services and models. +If you are building your frontend with a bundler, +which is the default for most project templates, +you can also simplify the import path: + +```javascript +import { GreetService, Person } from "./bindings/changeme"; +await GreetService.Greet(new Person(/* ... */)); +``` + ### Using Typescript To generate TypeScript bindings instead of JavaScript, you can use the `-ts` @@ -382,9 +412,7 @@ The context provides several powerful features: frontend, which will raise an error through the Promise chain. 2. **Window Information**: You can determine which window made the call using - these context keys: - - `application.WindowNameKey` - Returns the name of the calling window - - `application.WindowIDKey` - Returns the ID of the calling window + the context key `application.WindowKey`. Here are some examples: @@ -403,9 +431,8 @@ func (s *MyService) LongRunningTask(ctx context.Context, input string) (string, // Getting caller window information func (s *MyService) WindowAwareMethod(ctx context.Context) (string, error) { - windowName := ctx.Value(application.WindowNameKey).(string) - windowID := ctx.Value(application.WindowIDKey).(string) - return fmt.Sprintf("Called from window: %s (ID: %s)", windowName, windowID), nil + window := ctx.Value(application.WindowKey).(application.Window) + return fmt.Sprintf("Called from window: %s (ID: %s)", window.Name(), window.ID()), nil } ``` diff --git a/v3/examples/binding/assets/bindings/github.com/wailsapp/wails/v3/examples/binding/data/index.js b/v3/examples/binding/assets/bindings/github.com/wailsapp/wails/v3/examples/binding/data/index.js index 580fb67af..4c7e0b9c6 100644 --- a/v3/examples/binding/assets/bindings/github.com/wailsapp/wails/v3/examples/binding/data/index.js +++ b/v3/examples/binding/assets/bindings/github.com/wailsapp/wails/v3/examples/binding/data/index.js @@ -2,4 +2,6 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/examples/binding/assets/bindings/github.com/wailsapp/wails/v3/examples/binding/data/internal.js b/v3/examples/binding/assets/bindings/github.com/wailsapp/wails/v3/examples/binding/data/internal.js deleted file mode 100644 index 19a39472c..000000000 --- a/v3/examples/binding/assets/bindings/github.com/wailsapp/wails/v3/examples/binding/data/internal.js +++ /dev/null @@ -1,55 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -/** - * Person holds someone's most important attributes - */ -export class Person { - /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. - */ - constructor($$source = {}) { - if (!("name" in $$source)) { - /** - * Name is the person's name - * @member - * @type {string} - */ - this["name"] = ""; - } - if (!("counts" in $$source)) { - /** - * Counts tracks the number of time the person - * has been greeted in various ways - * @member - * @type {number[]} - */ - this["counts"] = []; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Person} - */ - static createFrom($$source = {}) { - const $$createField1_0 = $$createType0; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("counts" in $$parsedSource) { - $$parsedSource["counts"] = $$createField1_0($$parsedSource["counts"]); - } - return new Person(/** @type {Partial} */($$parsedSource)); - } -} - -// Private type creation functions -const $$createType0 = $Create.Array($Create.Any); diff --git a/v3/examples/binding/assets/bindings/github.com/wailsapp/wails/v3/examples/binding/data/models.js b/v3/examples/binding/assets/bindings/github.com/wailsapp/wails/v3/examples/binding/data/models.js index 1cf2e2418..19a39472c 100644 --- a/v3/examples/binding/assets/bindings/github.com/wailsapp/wails/v3/examples/binding/data/models.js +++ b/v3/examples/binding/assets/bindings/github.com/wailsapp/wails/v3/examples/binding/data/models.js @@ -2,6 +2,54 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * Person holds someone's most important attributes + */ +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (!("name" in $$source)) { + /** + * Name is the person's name + * @member + * @type {string} + */ + this["name"] = ""; + } + if (!("counts" in $$source)) { + /** + * Counts tracks the number of time the person + * has been greeted in various ways + * @member + * @type {number[]} + */ + this["counts"] = []; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + const $$createField1_0 = $$createType0; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("counts" in $$parsedSource) { + $$parsedSource["counts"] = $$createField1_0($$parsedSource["counts"]); + } + return new Person(/** @type {Partial} */($$parsedSource)); + } +} + +// Private type creation functions +const $$createType0 = $Create.Array($Create.Any); diff --git a/v3/examples/dev/go.mod b/v3/examples/dev/go.mod index 3d38d3073..0dafe2e84 100644 --- a/v3/examples/dev/go.mod +++ b/v3/examples/dev/go.mod @@ -1,22 +1,20 @@ module changeme -go 1.22 - -toolchain go1.22.0 +go 1.23.4 require github.com/wailsapp/wails/v3 v3.0.0-alpha.0 require ( - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/bep/debounce v1.2.1 // indirect github.com/ebitengine/purego v0.4.0-alpha.4 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect - github.com/go-git/go-billy/v5 v5.5.0 // indirect - github.com/go-git/go-git/v5 v5.11.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect + github.com/go-git/go-billy/v5 v5.6.2 // indirect + github.com/go-git/go-git/v5 v5.13.1 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect github.com/godbus/dbus/v5 v5.1.0 // indirect - github.com/google/uuid v1.3.0 // indirect + github.com/google/uuid v1.6.0 // indirect github.com/imdario/mergo v0.3.12 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e // indirect @@ -25,25 +23,25 @@ require ( github.com/kr/pretty v0.3.1 // indirect github.com/leaanthony/go-ansi-parser v1.6.1 // indirect github.com/leaanthony/u v1.1.0 // indirect - github.com/lmittmann/tint v1.0.3 // indirect + github.com/lmittmann/tint v1.0.4 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect - github.com/rivo/uniseg v0.4.4 // indirect - github.com/rogpeppe/go-internal v1.11.0 // indirect + github.com/rivo/uniseg v0.4.7 // indirect + github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/samber/lo v1.38.1 // indirect - github.com/sergi/go-diff v1.2.0 // indirect - github.com/stretchr/testify v1.8.4 // indirect - github.com/wailsapp/go-webview2 v1.0.9 // indirect + github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect + github.com/stretchr/testify v1.10.0 // indirect + github.com/wailsapp/go-webview2 v1.0.19 // indirect github.com/wailsapp/mimetype v1.4.1 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect - golang.org/x/crypto v0.21.0 // indirect - golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df // indirect - golang.org/x/net v0.21.0 // indirect - golang.org/x/sys v0.18.0 // indirect + golang.org/x/crypto v0.32.0 // indirect + golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect + golang.org/x/net v0.34.0 // indirect + golang.org/x/sys v0.29.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect ) diff --git a/v3/examples/dev/go.sum b/v3/examples/dev/go.sum index 8bc4ae557..c0693ced2 100644 --- a/v3/examples/dev/go.sum +++ b/v3/examples/dev/go.sum @@ -3,6 +3,7 @@ github.com/Microsoft/go-winio v0.4.16 h1:FtSW/jqD+l4ba5iPBj9CODVtgfYAD8w2wS923g/ github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7 h1:uSoVVbwJiQipAclBbw+8quDsfcvFjOpI5iCf4p/cqCs= github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA= @@ -31,13 +32,16 @@ github.com/go-git/go-billy/v5 v5.1.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI github.com/go-git/go-billy/v5 v5.2.0 h1:GcoouCP9J+5slw2uXAocL70z8ml4A8B/H8nEPt6CLPk= github.com/go-git/go-billy/v5 v5.2.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= +github.com/go-git/go-billy/v5 v5.6.2/go.mod h1:rcFC2rAsp/erv7CMz9GczHcuD0D32fWzH+MJAU+jaUU= github.com/go-git/go-git-fixtures/v4 v4.0.2-0.20200613231340-f56387b50c12 h1:PbKy9zOy4aAKrJ5pibIRpVO2BXnK1Tlcg+caKI7Ox5M= github.com/go-git/go-git-fixtures/v4 v4.0.2-0.20200613231340-f56387b50c12/go.mod h1:m+ICp2rF3jDhFgEZ/8yziagdT1C+ZpZcrJjappBCDSw= github.com/go-git/go-git/v5 v5.3.0 h1:8WKMtJR2j8RntEXR/uvTKagfEt4GYlwQ7mntE4+0GWc= github.com/go-git/go-git/v5 v5.3.0/go.mod h1:xdX4bWJ48aOrdhnl2XqHYstHbbp6+LFS4r4X+lNVprw= github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lKqXmCUiUCY= +github.com/go-git/go-git/v5 v5.13.1/go.mod h1:qryJB4cSBoq3FRoBRf5A77joojuBcmPJ0qu3XXXVixc= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -46,6 +50,7 @@ github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= @@ -74,6 +79,7 @@ github.com/leaanthony/u v1.1.0/go.mod h1:9+o6hejoRljvZ3BzdYlVL0JYCwtnAsVuN9pVTQc github.com/lmittmann/tint v1.0.0 h1:fzEj70K1L58uyoePQxKe+ezDZJ5pybiWGdA0JeFvvyw= github.com/lmittmann/tint v1.0.0/go.mod h1:HIS3gSy7qNwGCj+5oRjAutErFBl4BzdQP6cJZ0NfMwE= github.com/lmittmann/tint v1.0.3/go.mod h1:HIS3gSy7qNwGCj+5oRjAutErFBl4BzdQP6cJZ0NfMwE= +github.com/lmittmann/tint v1.0.4/go.mod h1:HIS3gSy7qNwGCj+5oRjAutErFBl4BzdQP6cJZ0NfMwE= github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE= github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= @@ -81,6 +87,7 @@ github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovk github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc= @@ -99,15 +106,18 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.10.1-0.20230524175051-ec119421bb97 h1:3RPlVWzZ/PDqmVuf/FKHARG5EMid/tl7cv54Sw/QRVY= github.com/rogpeppe/go-internal v1.10.1-0.20230524175051-ec119421bb97/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/samber/lo v1.38.1 h1:j2XEAqXKb09Am4ebOg31SpvzUTTs6EN3VfgeLUhPdXM= github.com/samber/lo v1.38.1/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -117,8 +127,10 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/wailsapp/go-webview2 v1.0.9 h1:lrU+q0cf1wgLdR69rN+ZnRtMJNaJRrcQ4ELxoO7/xjs= github.com/wailsapp/go-webview2 v1.0.9/go.mod h1:Uk2BePfCRzttBBjFrBmqKGJd41P6QIHeV9kTgIeOZNo= +github.com/wailsapp/go-webview2 v1.0.19/go.mod h1:qJmWAmAmaniuKGZPWwne+uor3AHMB5PFhqiK0Bbj8kc= github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs= github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o= github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI= @@ -132,8 +144,10 @@ golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0 golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df h1:UA2aFVmmsIlefxMk29Dp2juaUSth8Pyn3Tq5Y5mJGME= golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= +golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210326060303-6b1517762897/go.mod h1:uSPa2vr4CLtc/ILN5odXGNXS6mhrKVzTaCXzk9m6W3k= golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= @@ -142,6 +156,7 @@ golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -157,12 +172,14 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= diff --git a/v3/examples/file-association/go.mod b/v3/examples/file-association/go.mod index 9e5f81689..24020d5a9 100644 --- a/v3/examples/file-association/go.mod +++ b/v3/examples/file-association/go.mod @@ -1,27 +1,25 @@ module changeme -go 1.22.4 - -toolchain go1.23.0 +go 1.23.4 require github.com/wailsapp/wails/v3 v3.0.0-alpha.7 require ( - dario.cat/mergo v1.0.0 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect + dario.cat/mergo v1.0.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect + github.com/ProtonMail/go-crypto v1.1.4 // indirect github.com/bep/debounce v1.2.1 // indirect - github.com/cloudflare/circl v1.3.7 // indirect - github.com/cyphar/filepath-securejoin v0.2.4 // indirect + github.com/cloudflare/circl v1.5.0 // indirect + github.com/cyphar/filepath-securejoin v0.4.0 // indirect github.com/ebitengine/purego v0.4.0-alpha.4 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect - github.com/go-git/go-billy/v5 v5.5.0 // indirect - github.com/go-git/go-git/v5 v5.11.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect + github.com/go-git/go-billy/v5 v5.6.2 // indirect + github.com/go-git/go-git/v5 v5.13.1 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect github.com/godbus/dbus/v5 v5.1.0 // indirect - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/google/uuid v1.3.0 // indirect + github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect + github.com/google/uuid v1.6.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect @@ -30,22 +28,22 @@ require ( github.com/lmittmann/tint v1.0.4 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/pjbgf/sha1cd v0.3.0 // indirect + github.com/pjbgf/sha1cd v0.3.1 // indirect github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/samber/lo v1.38.1 // indirect - github.com/sergi/go-diff v1.2.0 // indirect - github.com/skeema/knownhosts v1.2.1 // indirect - github.com/wailsapp/go-webview2 v1.0.16 // indirect + github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect + github.com/skeema/knownhosts v1.3.0 // indirect + github.com/wailsapp/go-webview2 v1.0.19 // indirect github.com/wailsapp/mimetype v1.4.1 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect - golang.org/x/crypto v0.23.0 // indirect - golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df // indirect - golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.25.0 // indirect - golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.20.0 // indirect - golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect + golang.org/x/crypto v0.32.0 // indirect + golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect + golang.org/x/mod v0.22.0 // indirect + golang.org/x/net v0.34.0 // indirect + golang.org/x/sync v0.10.0 // indirect + golang.org/x/sys v0.29.0 // indirect + golang.org/x/tools v0.29.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect ) diff --git a/v3/examples/file-association/go.sum b/v3/examples/file-association/go.sum index bf1920d7e..17f4ab183 100644 --- a/v3/examples/file-association/go.sum +++ b/v3/examples/file-association/go.sum @@ -1,10 +1,13 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 h1:kkhsdkhsCvIsutKu5zLMgWtgh9YxGCNAw8Ad8hjwfYg= github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= +github.com/ProtonMail/go-crypto v1.1.4/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= @@ -15,8 +18,10 @@ github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7N github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= +github.com/cloudflare/circl v1.5.0/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs= github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= +github.com/cyphar/filepath-securejoin v0.4.0/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -32,20 +37,25 @@ github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66D github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= +github.com/go-git/go-billy/v5 v5.6.2/go.mod h1:rcFC2rAsp/erv7CMz9GczHcuD0D32fWzH+MJAU+jaUU= github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4= github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII= github.com/go-git/go-git/v5 v5.11.0 h1:XIZc1p+8YzypNr34itUfSvYJcv+eYdTnTvOZ2vD3cA4= github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lKqXmCUiUCY= +github.com/go-git/go-git/v5 v5.13.1/go.mod h1:qryJB4cSBoq3FRoBRf5A77joojuBcmPJ0qu3XXXVixc= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e h1:Q3+PugElBCf4PFpxhErSzU3/PY5sFL5Z6rfv4AbGAck= @@ -76,6 +86,7 @@ github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= +github.com/pjbgf/sha1cd v0.3.1/go.mod h1:Y8t7jSB/dEI/lQE04A1HVKteqjj9bX5O4+Cex0TCu8s= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -91,9 +102,11 @@ github.com/samber/lo v1.38.1 h1:j2XEAqXKb09Am4ebOg31SpvzUTTs6EN3VfgeLUhPdXM= github.com/samber/lo v1.38.1/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/skeema/knownhosts v1.2.1 h1:SHWdIUa82uGZz+F+47k8SY4QhhI291cXCpopT1lK2AQ= github.com/skeema/knownhosts v1.2.1/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= +github.com/skeema/knownhosts v1.3.0/go.mod h1:sPINvnADmT/qYH1kfv+ePMmOBTH6Tbl7b5LvTDjFK7M= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -101,6 +114,7 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/wailsapp/go-webview2 v1.0.16 h1:wffnvnkkLvhRex/aOrA3R7FP7rkvOqL/bir1br7BekU= github.com/wailsapp/go-webview2 v1.0.16/go.mod h1:Uk2BePfCRzttBBjFrBmqKGJd41P6QIHeV9kTgIeOZNo= +github.com/wailsapp/go-webview2 v1.0.19/go.mod h1:qJmWAmAmaniuKGZPWwne+uor3AHMB5PFhqiK0Bbj8kc= github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs= github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= @@ -113,12 +127,15 @@ golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2Uz golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= +golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df h1:UA2aFVmmsIlefxMk29Dp2juaUSth8Pyn3Tq5Y5mJGME= golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= +golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= @@ -129,11 +146,13 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -147,12 +166,14 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= @@ -175,6 +196,7 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -184,5 +206,6 @@ gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/examples/services/hashes/index.js b/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/examples/services/hashes/index.js index defc166a5..cb6c1ff84 100644 --- a/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/examples/services/hashes/index.js +++ b/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/examples/services/hashes/index.js @@ -2,9 +2,13 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as Hashes from "./hashes.js"; +import * as Service from "./service.js"; export { - Hashes + Service }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.Hashes} Hashes + */ diff --git a/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/examples/services/hashes/models.js b/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/examples/services/hashes/models.js index 451164f5b..a48737a6b 100644 --- a/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/examples/services/hashes/models.js +++ b/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/examples/services/hashes/models.js @@ -6,44 +6,9 @@ // @ts-ignore: Unused imports import {Create as $Create} from "/wails/runtime.js"; -export class Hashes { - /** - * Creates a new Hashes instance. - * @param {Partial} [$$source = {}] - The source object to create the Hashes. - */ - constructor($$source = {}) { - if (!("md5" in $$source)) { - /** - * @member - * @type {string} - */ - this["md5"] = ""; - } - if (!("sha1" in $$source)) { - /** - * @member - * @type {string} - */ - this["sha1"] = ""; - } - if (!("sha256" in $$source)) { - /** - * @member - * @type {string} - */ - this["sha256"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Hashes instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Hashes} - */ - static createFrom($$source = {}) { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Hashes(/** @type {Partial} */($$parsedSource)); - } -} +/** + * @typedef {Object} Hashes + * @property {string} md5 + * @property {string} sha1 + * @property {string} sha256 + */ diff --git a/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/examples/services/hashes/service.js b/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/examples/services/hashes/service.js new file mode 100644 index 000000000..ed4a57d7d --- /dev/null +++ b/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/examples/services/hashes/service.js @@ -0,0 +1,20 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call, Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +/** + * @param {string} s + * @returns {Promise<$models.Hashes> & { cancel(): void }} + */ +export function Generate(s) { + let $resultPromise = /** @type {any} */($Call.ByID(1123907498, s)); + return $resultPromise; +} diff --git a/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/pkg/services/kvstore/keyvaluestore.js b/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/pkg/services/kvstore/keyvaluestore.js index 912325534..26d36cbb6 100644 --- a/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/pkg/services/kvstore/keyvaluestore.js +++ b/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/pkg/services/kvstore/keyvaluestore.js @@ -26,15 +26,6 @@ export function Get(key) { return $resultPromise; } -/** - * Name returns the name of the plugin. - * @returns {Promise & { cancel(): void }} - */ -export function Name() { - let $resultPromise = /** @type {any} */($Call.ByID(2879709053)); - return $resultPromise; -} - /** * Save saves the store to disk * @returns {Promise & { cancel(): void }} diff --git a/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/pkg/services/log/loggerservice.js b/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/pkg/services/log/loggerservice.js index 89d2c4456..0ee366a67 100644 --- a/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/pkg/services/log/loggerservice.js +++ b/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/pkg/services/log/loggerservice.js @@ -40,16 +40,6 @@ export function Info(message, ...args) { return $resultPromise; } -/** - * Name returns the name of the plugin. - * You should use the go module format e.g. github.com/myuser/myplugin - * @returns {Promise & { cancel(): void }} - */ -export function Name() { - let $resultPromise = /** @type {any} */($Call.ByID(3407342027)); - return $resultPromise; -} - /** * @param {slog$0.Level} level * @returns {Promise & { cancel(): void }} diff --git a/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/pkg/services/sqlite/service.js b/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/pkg/services/sqlite/service.js index 8821e8466..ddbe76eb4 100644 --- a/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/pkg/services/sqlite/service.js +++ b/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/pkg/services/sqlite/service.js @@ -24,16 +24,6 @@ export function Execute(query, ...args) { return $resultPromise; } -/** - * Name returns the name of the plugin. - * You should use the go module format e.g. github.com/myuser/myplugin - * @returns {Promise & { cancel(): void }} - */ -export function Name() { - let $resultPromise = /** @type {any} */($Call.ByID(2075046103)); - return $resultPromise; -} - /** * @param {string} dbPath * @returns {Promise & { cancel(): void }} @@ -57,16 +47,6 @@ export function Select(query, ...args) { return $typingPromise; } -/** - * Shutdown is called when the app is shutting down - * You can use this to clean up any resources you have allocated - * @returns {Promise & { cancel(): void }} - */ -export function Shutdown() { - let $resultPromise = /** @type {any} */($Call.ByID(846401686)); - return $resultPromise; -} - // Private type creation functions const $$createType0 = $Create.Map($Create.Any, $Create.Any); const $$createType1 = $Create.Array($$createType0); diff --git a/v3/examples/services/assets/bindings/log/slog/index.js b/v3/examples/services/assets/bindings/log/slog/index.js index 580fb67af..45070abb0 100644 --- a/v3/examples/services/assets/bindings/log/slog/index.js +++ b/v3/examples/services/assets/bindings/log/slog/index.js @@ -2,4 +2,10 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * A Level is the importance or severity of a log event. + * The higher the level, the more important or severe the event. + * @typedef {$models.Level} Level + */ diff --git a/v3/examples/services/assets/index.html b/v3/examples/services/assets/index.html index b46b70832..67746fdec 100644 --- a/v3/examples/services/assets/index.html +++ b/v3/examples/services/assets/index.html @@ -9,7 +9,7 @@ import * as sqlite from './bindings/github.com/wailsapp/wails/v3/pkg/services/sqlite/service.js'; import * as kvstore from './bindings/github.com/wailsapp/wails/v3/pkg/services/kvstore/keyvaluestore.js'; import {Debug, Info, Warning, Error} from './bindings/github.com/wailsapp/wails/v3/pkg/services/log/loggerservice.js'; - import * as hash from './bindings/github.com/wailsapp/wails/v3/examples/services/hashes/hashes.js'; + import * as hash from './bindings/github.com/wailsapp/wails/v3/examples/services/hashes/service.js'; function runHash() { let hashstring = document.getElementById("hashstring").value; diff --git a/v3/examples/services/hashes/hashes.go b/v3/examples/services/hashes/hashes.go index 3a13a975f..1e4653dbd 100644 --- a/v3/examples/services/hashes/hashes.go +++ b/v3/examples/services/hashes/hashes.go @@ -6,16 +6,19 @@ import ( "crypto/sha1" "crypto/sha256" "encoding/hex" + "github.com/wailsapp/wails/v3/pkg/application" ) -type Hashes struct { +type Hashes = struct { MD5 string `json:"md5"` SHA1 string `json:"sha1"` SHA256 string `json:"sha256"` } -func (h *Hashes) Generate(s string) Hashes { +type Service struct{} + +func (h *Service) Generate(s string) Hashes { md5Hash := md5.Sum([]byte(s)) sha1Hash := sha1.Sum([]byte(s)) sha256Hash := sha256.Sum256([]byte(s)) @@ -27,16 +30,16 @@ func (h *Hashes) Generate(s string) Hashes { } } -func New() *Hashes { - return &Hashes{} +func New() *Service { + return &Service{} } -func (h *Hashes) ServiceShutdown() error { return nil } - -func (h *Hashes) ServiceName() string { +func (h *Service) ServiceName() string { return "Hashes Service" } -func (h *Hashes) ServiceStartup(_ context.Context, _ application.ServiceOptions) error { +func (h *Service) ServiceStartup(context.Context, application.ServiceOptions) error { return nil } + +func (h *Service) ServiceShutdown() error { return nil } diff --git a/v3/go.mod b/v3/go.mod index 46748bd23..8b15d833e 100644 --- a/v3/go.mod +++ b/v3/go.mod @@ -128,6 +128,7 @@ require ( gitlab.com/digitalxero/go-conventional-commit v1.0.7 // indirect golang.org/x/crypto v0.32.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect + golang.org/x/exp/typeparams v0.0.0-20250128182459-e0ece0dbea4c golang.org/x/image v0.21.0 // indirect golang.org/x/mod v0.22.0 // indirect golang.org/x/net v0.34.0 // indirect diff --git a/v3/go.sum b/v3/go.sum index 2d4738279..fa60e7142 100644 --- a/v3/go.sum +++ b/v3/go.sum @@ -350,6 +350,8 @@ golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= +golang.org/x/exp/typeparams v0.0.0-20250128182459-e0ece0dbea4c h1:sMPlrlhFwAE8DZXzAIztseGS+N8uGlLbFQCOTsoIPmc= +golang.org/x/exp/typeparams v0.0.0-20250128182459-e0ece0dbea4c/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.21.0 h1:c5qV36ajHpdj4Qi0GnE0jUc/yuo33OLFaa0d+crTD5s= golang.org/x/image v0.21.0/go.mod h1:vUbsLavqK/W303ZroQQVKQ+Af3Yl6Uz1Ppu5J/cLz78= diff --git a/v3/internal/flags/bindings.go b/v3/internal/flags/bindings.go index ab875213e..acef15006 100644 --- a/v3/internal/flags/bindings.go +++ b/v3/internal/flags/bindings.go @@ -11,7 +11,6 @@ type GenerateBindingsOptions struct { BuildFlagsString string `name:"f" description:"A list of additional space-separated Go build flags. Flags (or parts of them) can be wrapped in single or double quotes to include spaces"` OutputDirectory string `name:"d" description:"The output directory" default:"frontend/bindings"` ModelsFilename string `name:"models" description:"File name for exported JS/TS models (excluding the extension)" default:"models"` - InternalFilename string `name:"internal" description:"File name for unexported JS/TS models (excluding the extension)" default:"internal"` IndexFilename string `name:"index" description:"File name for JS/TS package indexes (excluding the extension)" default:"index"` TS bool `name:"ts" description:"Generate Typescript bindings"` UseInterfaces bool `name:"i" description:"Generate Typescript interfaces instead of classes"` diff --git a/v3/internal/generator/.gitignore b/v3/internal/generator/.gitignore index f4adb56d4..3ed83544e 100644 --- a/v3/internal/generator/.gitignore +++ b/v3/internal/generator/.gitignore @@ -1,3 +1,4 @@ .task node_modules testdata/output/**/*.got.[jt]s +testdata/output/**/*.got.log diff --git a/v3/internal/generator/Taskfile.yaml b/v3/internal/generator/Taskfile.yaml index f9e66e939..491e426b9 100644 --- a/v3/internal/generator/Taskfile.yaml +++ b/v3/internal/generator/Taskfile.yaml @@ -7,7 +7,7 @@ shopt: [globstar] tasks: clean: cmds: - - rm -rf ./testdata/output/**/*.got.[jt]s + - rm -rf ./testdata/output/**/*.got.[jt]s ./testdata/output/**/*.got.log test: cmds: diff --git a/v3/internal/generator/analyse.go b/v3/internal/generator/analyse.go index 7fa614e0e..411e6ff4f 100644 --- a/v3/internal/generator/analyse.go +++ b/v3/internal/generator/analyse.go @@ -68,16 +68,11 @@ func FindServices(pkgs []*packages.Package, systemPaths *config.SystemPaths, log // Object seen for the first time: // add type params to owner map. - // If applicable, process methods too. var tp *types.TypeParamList - var recv *types.Named - switch t := obj.Type().(type) { - case *types.Named: + + if t, ok := obj.Type().(interface{ TypeParams() *types.TypeParamList }); ok { tp = t.TypeParams() - recv = t - case *types.Signature: - tp = t.TypeParams() - default: + } else { // Instantiated object has unexpected kind: // the spec might have changed. logger.Warningf( @@ -94,8 +89,8 @@ func FindServices(pkgs []*packages.Package, systemPaths *config.SystemPaths, log } } - // Process methods. - if recv != nil && recv.NumMethods() > 0 { + // If this is a named type, process methods. + if recv, ok := obj.Type().(*types.Named); ok && recv.NumMethods() > 0 { // Register receiver type params. for i := range recv.NumMethods() { tp := recv.Method(i).Type().(*types.Signature).RecvTypeParams() diff --git a/v3/internal/generator/collect/imports.go b/v3/internal/generator/collect/imports.go index e2346dc50..b62e53963 100644 --- a/v3/internal/generator/collect/imports.go +++ b/v3/internal/generator/collect/imports.go @@ -3,6 +3,8 @@ package collect import ( "go/types" "path/filepath" + + "golang.org/x/tools/go/types/typeutil" ) type ( @@ -120,26 +122,26 @@ func (imports *ImportMap) Add(pkg *PackageInfo) { // AddType does not support unsynchronised concurrent calls // on the same receiver. func (imports *ImportMap) AddType(typ types.Type) { - imports.addTypeImpl(typ, make(map[*types.TypeName]bool)) + imports.addTypeImpl(typ, new(typeutil.Map)) } // addTypeImpl provides the actual implementation of AddType. // The visited parameter is used to break cycles. -func (imports *ImportMap) addTypeImpl(typ types.Type, visited map[*types.TypeName]bool) { +func (imports *ImportMap) addTypeImpl(typ types.Type, visited *typeutil.Map) { collector := imports.collector if collector == nil { - panic("AddType called on ImportMap with nil importing package") + panic("AddType called on ImportMap with nil collector") } for { // Avoid recursion where possible. switch t := typ.(type) { case *types.Alias, *types.Named: - obj := typ.(interface{ Obj() *types.TypeName }).Obj() - if visited[obj] { + if visited.Set(typ, true) != nil { + // Break type cycles. return } - visited[obj] = true + obj := typ.(interface{ Obj() *types.TypeName }).Obj() if obj.Pkg() == nil { // Ignore universe type. return @@ -155,7 +157,7 @@ func (imports *ImportMap) addTypeImpl(typ types.Type, visited map[*types.TypeNam // Import parent package. imports.Add(collector.Package(obj.Pkg())) - instance, _ := t.(interface{ TypeArgs() *types.TypeList }) + instance, _ := typ.(interface{ TypeArgs() *types.TypeList }) if instance != nil { // Record type argument dependencies. if targs := instance.TypeArgs(); targs != nil { @@ -170,25 +172,29 @@ func (imports *ImportMap) addTypeImpl(typ types.Type, visited map[*types.TypeNam return } - if _, isAlias := t.(*types.Alias); isAlias { + if _, isAlias := typ.(*types.Alias); isAlias { // Aliased type might be needed during // JS value creation and initialisation. typ = types.Unalias(typ) break } - if IsClass(typ) || IsString(typ) || IsAny(typ) { + if IsClass(typ) || IsAny(typ) || IsStringAlias(typ) { return } - // If named type does not map to a class, string or unknown type, + // If named type does not map to a class, unknown type or string, // its underlying type may be needed during JS value creation. typ = typ.Underlying() case *types.Basic: - if t.Info()&types.IsComplex != 0 { - // Complex types are not supported by encoding/json - collector.logger.Warningf("complex types are not supported by encoding/json") + switch { + case t.Info()&(types.IsBoolean|types.IsInteger|types.IsUnsigned|types.IsFloat|types.IsString) != 0: + break + case t.Info()&types.IsComplex != 0: + collector.logger.Warningf("package %s: complex types are not supported by encoding/json", imports.Self) + default: + collector.logger.Warningf("package %s: unknown basic type %s: please report this to Wails maintainers", imports.Self, typ) } return @@ -196,32 +202,40 @@ func (imports *ImportMap) addTypeImpl(typ types.Type, visited map[*types.TypeNam typ = typ.(interface{ Elem() types.Type }).Elem() case *types.Chan: - collector.logger.Warningf("channel types are not supported by encoding/json") + collector.logger.Warningf("package %s: channel types are not supported by encoding/json", imports.Self) return case *types.Map: if IsMapKey(t.Key()) { - if IsString(t.Key()) { + if IsStringAlias(t.Key()) { // This model type is always rendered as a string alias, // hence we can generate it and use it as a type for JS object keys. imports.addTypeImpl(t.Key(), visited) } + } else if IsTypeParam(t.Key()) { + // In some cases, type params or pointers to type params + // may be valid as map keys, but not for all instantiations. + // When that happens, emit a softer warning. + collector.logger.Warningf( + "package %s: type %s is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors", + imports.Self, types.TypeString(t.Key(), nil), + ) } else { collector.logger.Warningf( - "%s is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors", - types.TypeString(t.Key(), nil), + "package %s: type %s is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors", + imports.Self, types.TypeString(t.Key(), nil), ) } typ = t.Elem() case *types.Signature: - collector.logger.Warningf("function types are not supported by encoding/json") + collector.logger.Warningf("package %s: function types are not supported by encoding/json", imports.Self) return case *types.Struct: - if t.NumFields() == 0 { - // Empty struct. + if t.NumFields() == 0 || MaybeJSONMarshaler(typ) != NonMarshaler || MaybeTextMarshaler(typ) != NonMarshaler { + // Struct is empty, or marshals to custom JSON (any) or string. return } @@ -246,7 +260,7 @@ func (imports *ImportMap) addTypeImpl(typ types.Type, visited map[*types.TypeNam return default: - collector.logger.Warningf("unknown type %s: please report this to Wails maintainers", typ) + collector.logger.Warningf("package %s: unknown type %s: please report this to Wails maintainers", imports.Self, typ) return } } diff --git a/v3/internal/generator/collect/index.go b/v3/internal/generator/collect/index.go index e34e018d7..ae4d31240 100644 --- a/v3/internal/generator/collect/index.go +++ b/v3/internal/generator/collect/index.go @@ -10,13 +10,13 @@ import ( // // When obtained through a call to [PackageInfo.Index], // each service and model appears at most once; -// services are sorted by name; -// exported models precede all unexported ones -// and both ranges are sorted by name. +// services and models are sorted +// by internal property (all exported first), then by name. type PackageIndex struct { Package *PackageInfo - Services []*ServiceInfo + Services []*ServiceInfo + HasExportedServices bool // If true, there is at least one exported service. Models []*ModelInfo HasExportedModels bool // If true, there is at least one exported model. @@ -47,9 +47,10 @@ func (info *PackageInfo) Index(TS bool) (index *PackageIndex) { for _, value := range info.services.Range { service := value.(*ServiceInfo) if !service.IsEmpty() { - if service.Object().Exported() { - // Publish non-internal service on the local index. - index.Services = append(index.Services, service) + index.Services = append(index.Services, service) + // Mark presence of exported services + if !service.Internal { + index.HasExportedServices = true } // Update service stats. stats.NumServices++ @@ -57,12 +58,21 @@ func (info *PackageInfo) Index(TS bool) (index *PackageIndex) { } } - // Sort services by name. - slices.SortFunc(index.Services, func(b1 *ServiceInfo, b2 *ServiceInfo) int { - if b1 == b2 { + // Sort services by internal property (exported first), then by name. + slices.SortFunc(index.Services, func(s1 *ServiceInfo, s2 *ServiceInfo) int { + if s1 == s2 { return 0 } - return strings.Compare(b1.Name, b2.Name) + + if s1.Internal != s2.Internal { + if s1.Internal { + return 1 + } else { + return -1 + } + } + + return strings.Compare(s1.Name, s2.Name) }) // Gather models. @@ -70,7 +80,7 @@ func (info *PackageInfo) Index(TS bool) (index *PackageIndex) { model := value.(*ModelInfo) index.Models = append(index.Models, model) // Mark presence of exported models - if model.Object().Exported() { + if !model.Internal { index.HasExportedModels = true } // Update model stats. @@ -81,18 +91,17 @@ func (info *PackageInfo) Index(TS bool) (index *PackageIndex) { } } - // Sort models by exported property (exported first), then by name. + // Sort models by internal property (exported first), then by name. slices.SortFunc(index.Models, func(m1 *ModelInfo, m2 *ModelInfo) int { if m1 == m2 { return 0 } - m1e, m2e := m1.Object().Exported(), m2.Object().Exported() - if m1e != m2e { - if m1e { - return -1 - } else { + if m1.Internal != m2.Internal { + if m1.Internal { return 1 + } else { + return -1 } } @@ -108,5 +117,5 @@ func (info *PackageInfo) Index(TS bool) (index *PackageIndex) { // IsEmpty returns true if the given index // contains no data for the selected language. func (index *PackageIndex) IsEmpty() bool { - return len(index.Package.Injections) == 0 && len(index.Services) == 0 && len(index.Models) == 0 + return !index.HasExportedServices && !index.HasExportedModels && len(index.Package.Injections) == 0 } diff --git a/v3/internal/generator/collect/model.go b/v3/internal/generator/collect/model.go index a28c16a96..4e5b32cb5 100644 --- a/v3/internal/generator/collect/model.go +++ b/v3/internal/generator/collect/model.go @@ -2,6 +2,7 @@ package collect import ( "cmp" + "go/ast" "go/constant" "go/types" "slices" @@ -20,6 +21,10 @@ type ( ModelInfo struct { *TypeInfo + // Internal records whether the model + // should be exported by the index file. + Internal bool + // Imports records dependencies for this model. Imports *ImportMap @@ -39,6 +44,13 @@ type ( // TypeParams records type parameter names for generic models. TypeParams []string + // Predicates caches the value of all type predicates for this model. + // + // WARN: whenever working with a generic uninstantiated model type, + // use these instead of invoking predicate functions, + // which may incur a large performance penalty. + Predicates Predicates + collector *Collector once sync.Once } @@ -49,6 +61,19 @@ type ( *StructField *FieldInfo } + + // Predicates caches the value of all type predicates. + Predicates struct { + IsJSONMarshaler MarshalerKind + MaybeJSONMarshaler MarshalerKind + IsTextMarshaler MarshalerKind + MaybeTextMarshaler MarshalerKind + IsMapKey bool + IsTypeParam bool + IsStringAlias bool + IsClass bool + IsAny bool + } ) func newModelInfo(collector *Collector, obj *types.TypeName) *ModelInfo { @@ -113,15 +138,24 @@ func (info *ModelInfo) Collect() *ModelInfo { // Setup fallback type. info.Type = types.Universe.Lookup("any").Type() - // Retrieve type denotation and skip alias chains. - def := info.TypeInfo.Def + // Record whether the model should be exported. + info.Internal = !obj.Exported() - // Check marshalers and detect enums. - var constants []*types.Const + // Parse directives. + for _, doc := range []*ast.CommentGroup{info.Doc, info.Decl.Doc} { + if doc == nil { + continue + } + for _, comment := range doc.List { + if IsDirective(comment.Text, "internal") { + info.Internal = true + } + } + } + // Record type parameter names. var isGeneric bool - if generic, ok := obj.Type().(interface{ TypeParams() *types.TypeParamList }); ok { - // Record type parameter names. + if generic, ok := typ.(interface{ TypeParams() *types.TypeParamList }); ok { tparams := generic.TypeParams() isGeneric = tparams != nil @@ -133,59 +167,116 @@ func (info *ModelInfo) Collect() *ModelInfo { } } - if _, isNamed := obj.Type().(*types.Named); isNamed { - // Model is a named type. - // Check whether it implements marshaler interfaces - // or has defined constants. + // Precompute predicates. + // Preinstantiate typ to avoid repeated instantiations in predicate code. + ityp := instantiate(typ) + info.Predicates = Predicates{ + IsJSONMarshaler: IsJSONMarshaler(ityp), + MaybeJSONMarshaler: MaybeJSONMarshaler(ityp), + IsTextMarshaler: IsTextMarshaler(ityp), + MaybeTextMarshaler: MaybeTextMarshaler(ityp), + IsMapKey: IsMapKey(ityp), + IsTypeParam: IsTypeParam(ityp), + IsStringAlias: IsStringAlias(ityp), + IsClass: IsClass(ityp), + IsAny: IsAny(ityp), + } - if IsAny(typ) { - // Type marshals to a custom value of unknown shape. - return - } else if MaybeTextMarshaler(typ) { - // Type marshals to a custom string of unknown shape. - info.Type = types.Typ[types.String] - return - } else if isGeneric && !collector.options.UseInterfaces && IsClass(typ) { - // Generic classes cannot be defined in terms of other generic classes. - // That would break class creation code, - // and I (@fbbdev) couldn't find any other satisfying workaround. - def = typ.Underlying() - } + var def types.Type + var constants []*types.Const - // Test for enums (excluding generic types). - basic, ok := typ.Underlying().(*types.Basic) - if ok && !isGeneric && basic.Info()&types.IsConstType != 0 && basic.Info()&types.IsComplex == 0 { - // Named type is defined as a representable constant type: - // look for defined constants of that named type. - for _, name := range obj.Pkg().Scope().Names() { - if cnst, ok := obj.Pkg().Scope().Lookup(name).(*types.Const); ok { - if cnst.Val().Kind() != constant.Unknown && types.Identical(cnst.Type(), typ) { - constants = append(constants, cnst) + switch t := typ.(type) { + case *types.Alias: + // Model is an alias: take rhs as definition. + // It is important not to skip alias chains with [types.Unalias] + // because in doing so we could end up with a private type from another package. + def = t.Rhs() + + // Test for constants with alias type, + // but only when non-generic alias resolves to a basic type + // (hence not to e.g. a named type). + if basic, ok := types.Unalias(def).(*types.Basic); ok { + if !isGeneric && basic.Info()&types.IsConstType != 0 && basic.Info()&types.IsComplex == 0 { + // Non-generic alias resolves to a representable constant type: + // look for defined constants whose type is exactly the alias typ. + for _, name := range obj.Pkg().Scope().Names() { + if cnst, ok := obj.Pkg().Scope().Lookup(name).(*types.Const); ok { + alias, isAlias := cnst.Type().(*types.Alias) + if isAlias && cnst.Val().Kind() != constant.Unknown && alias.Obj() == t.Obj() { + constants = append(constants, cnst) + } } } } } + + case *types.Named: + // Model is a named type: + // jump directly to underlying type to match go semantics, + // i.e. do not render named types as aliases for other named types. + def = typ.Underlying() + + // Check whether it implements marshaler interfaces or has defined constants. + if info.Predicates.MaybeJSONMarshaler != NonMarshaler { + // Type marshals to a custom value of unknown shape. + // If it has explicit custom marshaling logic, render it as any; + // otherwise, delegate to the underlying type that must be the actual [json.Marshaler]. + if info.Predicates.MaybeJSONMarshaler == ExplicitMarshaler { + return + } + } else if info.Predicates.MaybeTextMarshaler != NonMarshaler { + // Type marshals to a custom string of unknown shape. + // If it has explicit custom marshaling logic, render it as string; + // otherwise, delegate to the underlying type that must be the actual [encoding.TextMarshaler]. + // + // One exception must be made for situations + // where the underlying type is a [json.Marshaler] but the model is not: + // in that case, we cannot delegate to the underlying type either. + // Note that in such a case the underlying type is never a pointer or interface, + // because those cannot have explicitly defined methods, + // hence it would not possible for the model not to be a [json.Marshaler] + // while the underlying type is. + if info.Predicates.MaybeTextMarshaler == ExplicitMarshaler || MaybeJSONMarshaler(def) != NonMarshaler { + info.Type = types.Typ[types.String] + return + } + } else if basic, ok := def.Underlying().(*types.Basic); ok { + // Test for enums (excluding marshalers and generic types). + if !isGeneric && basic.Info()&types.IsConstType != 0 && basic.Info()&types.IsComplex == 0 { + // Named type is defined as a representable constant type: + // look for defined constants of that named type. + for _, name := range obj.Pkg().Scope().Names() { + if cnst, ok := obj.Pkg().Scope().Lookup(name).(*types.Const); ok { + if cnst.Val().Kind() != constant.Unknown && types.Identical(cnst.Type(), typ) { + constants = append(constants, cnst) + } + } + } + } + } + + default: + panic("model has unknown object kind (neither alias nor named type)") + } + + // Handle struct types. + strct, isStruct := def.(*types.Struct) + if isStruct && info.Predicates.MaybeJSONMarshaler == NonMarshaler && info.Predicates.MaybeTextMarshaler == NonMarshaler { + // Def is struct and model is not a marshaler: + // collect information about struct fields. + info.collectStruct(strct) + info.Type = nil + return } // Record required imports. info.Imports.AddType(def) // Handle enum types. - // constants slice is always empty for aliases. + // constants slice is always empty for structs, marshalers. if len(constants) > 0 { // Collect information about enum values. info.collectEnum(constants) - info.Type = def - return - } - - // Handle struct types. - strct, isStruct := def.(*types.Struct) - if isStruct { - // Collect information about struct fields. - info.collectStruct(strct) - info.Type = nil - return } // That's all, folks. Render as a TS alias. @@ -265,6 +356,9 @@ func (info *ModelInfo) collectStruct(strct *types.Struct) { // Collect fields. for i, field := range structInfo.Fields { + // Record required imports. + info.Imports.AddType(field.Type) + fields[i] = &ModelFieldInfo{ StructField: field, FieldInfo: collector.Field(field.Object).Collect(), diff --git a/v3/internal/generator/collect/predicates.go b/v3/internal/generator/collect/predicates.go new file mode 100644 index 000000000..bcb910186 --- /dev/null +++ b/v3/internal/generator/collect/predicates.go @@ -0,0 +1,478 @@ +package collect + +// This file gathers functions that test useful properties of model types. +// The rationale for the way things are handled here +// is given in the example file found at ./_reference/json_marshaler_behaviour.go + +import ( + "go/token" + "go/types" + "iter" + + "golang.org/x/exp/typeparams" +) + +// Cached interface types. +var ( + ifaceTextMarshaler = types.NewInterfaceType([]*types.Func{ + types.NewFunc(token.NoPos, nil, "MarshalText", + types.NewSignatureType(nil, nil, nil, types.NewTuple(), types.NewTuple( + types.NewParam(token.NoPos, nil, "", types.NewSlice(types.Universe.Lookup("byte").Type())), + types.NewParam(token.NoPos, nil, "", types.Universe.Lookup("error").Type()), + ), false)), + }, nil).Complete() + + ifaceJSONMarshaler = types.NewInterfaceType([]*types.Func{ + types.NewFunc(token.NoPos, nil, "MarshalJSON", + types.NewSignatureType(nil, nil, nil, types.NewTuple(), types.NewTuple( + types.NewParam(token.NoPos, nil, "", types.NewSlice(types.Universe.Lookup("byte").Type())), + types.NewParam(token.NoPos, nil, "", types.Universe.Lookup("error").Type()), + ), false)), + }, nil).Complete() +) + +// MarshalerKind values describe +// whether and how a type implements a marshaler interface. +// For any one of the two marshaler interfaces, a type is +// - a NonMarshaler if it does not implement it; +// - an ImplicitMarshaler if it inherits the implementation from its underlying type; +// - an ExplicitMarshaler if it defines the relevant method explicitly. +type MarshalerKind byte + +const ( + NonMarshaler MarshalerKind = iota + ImplicitMarshaler + ExplicitMarshaler +) + +// termlist returns an iterator over the normalised term list of the given type. +// If typ is invalid or has an empty type set, termlist returns the empty sequence. +// If typ has an empty term list +// then termlist returns a sequence with just one element: the type itself. +// +// TODO: replace with new term set API once Go 1.25 is out. +// See go.dev/issue/61013 +func termlist(typ types.Type) iter.Seq[*typeparams.Term] { + terms, err := typeparams.NormalTerms(types.Unalias(typ)) + return func(yield func(*typeparams.Term) bool) { + if err == nil && len(terms) == 0 { + yield(typeparams.NewTerm(false, typ)) + } else { + for _, term := range terms { + if !yield(term) { + break + } + } + } + } +} + +// instantiate instantiates typ if it is an uninstantiated generic type +// using its own type parameters as arguments in order to preserve genericity. +// +// If typ is not generic or already instantiated, it is returned as is. +// If typ is not an alias, then the returned type is not an alias either. +func instantiate(typ types.Type) types.Type { + if t, ok := typ.(interface { + TypeParams() *types.TypeParamList + TypeArgs() *types.TypeList + }); ok && t.TypeParams() != nil && t.TypeArgs() == nil { + args := make([]types.Type, t.TypeParams().Len()) + for i := range args { + args[i] = t.TypeParams().At(i) + } + + typ, _ = types.Instantiate(nil, typ, args, false) + } + + return typ +} + +// isMarshaler checks whether the given type +// implements one of the two marshaler interfaces, +// and whether it implements it explicitly, +// i.e. by defining the relevant method directly +// instead of inheriting it from the underlying type. +// +// If addressable is true, it checks both pointer and non-pointer receivers. +// +// The behaviour of isMarshaler is unspecified +// if marshaler is not one of [json.Marshaler] or [encoding.TextMarshaler]. +func isMarshaler(typ types.Type, marshaler *types.Interface, addressable bool, visited map[*types.TypeName]MarshalerKind) MarshalerKind { + // Follow alias chain and instantiate if necessary. + // + // types.Implements does not handle generics, + // hence when typ is generic it must be instantiated. + // + // Instantiation operations may incur a large performance penalty and are usually cached, + // but doing so here would entail some complex global state and a potential memory leak. + // Because typ should be generic only during model collection, + // it should be enough to cache the result of marshaler queries for models. + typ = instantiate(types.Unalias(typ)) + + // Invariant: at this point, typ is not an alias. + + if typ == types.Typ[types.Invalid] { + // Do not pass invalid types to [types.Implements]. + return NonMarshaler + } + + result := types.Implements(typ, marshaler) + + ptr, isPtr := typ.Underlying().(*types.Pointer) + + if !result && addressable && !isPtr { + result = types.Implements(types.NewPointer(typ), marshaler) + } + + named, isNamed := typ.(*types.Named) + + if result { + // Check whether marshaler method is implemented explicitly on a named type. + if isNamed { + method := marshaler.Method(0).Name() + for i := range named.NumMethods() { + if named.Method(i).Name() == method { + return ExplicitMarshaler + } + } + } + + return ImplicitMarshaler + } + + // Fast path: named types that fail the [types.Implements] test cannot be marshalers. + // + // WARN: currently typeparams cannot be used on the rhs of a named type declaration. + // If that changes in the future, + // this guard will become essential for correctness, + // not just a shortcut. + if isNamed { + return NonMarshaler + } + + // Unwrap at most one pointer and follow alias chain. + if isPtr { + typ = types.Unalias(ptr.Elem()) + } + + // Invariant: at this point, typ is not an alias. + + // Type parameters require special handling: + // iterate over their term list and treat them as marshalers + // if so are all their potential instantiations. + + tp, ok := typ.(*types.TypeParam) + if !ok { + return NonMarshaler + } + + // Init cycle detection/deduplication map. + if visited == nil { + visited = make(map[*types.TypeName]MarshalerKind) + } + + // Type params cannot be embedded in constraints directly, + // but they can be embedded as pointer terms. + // + // When we hit that kind of cycle, + // we can err towards it being a marshaler: + // such a constraint is meaningless anyways, + // as no type can be simultaneously a pointer to itself. + // + // Therefore, we iterate the type set + // only for unvisited pointers-to-typeparams, + // and return the current best guess + // for those we have already visited. + // + // WARN: there has been some talk + // of allowing type parameters as embedded fields/terms. + // That might make our lives miserable here. + // The spec must be monitored for changes in that regard. + if isPtr { + if kind, ok := visited[tp.Obj()]; ok { + return kind + } + } + + // Initialise kind to explicit marshaler, then decrease as needed. + kind := ExplicitMarshaler + + if isPtr { + // Pointers are never explicit marshalers. + kind = ImplicitMarshaler + // Mark pointer-to-typeparam as visited and init current best guess. + visited[tp.Obj()] = kind + } + + // Iterate term list. + for term := range termlist(tp) { + ttyp := types.Unalias(term.Type()) + + // Reject if tp has a tilde or invalid element in its term list + // or has a method-only constraint. + // + // Valid tilde terms + // can always be satisfied by named types that hide their methods + // hence fail in general to implement the required interface. + if term.Tilde() || ttyp == types.Typ[types.Invalid] || ttyp == tp { + kind = NonMarshaler + break + } + + // Propagate the presence of a wrapping pointer. + if isPtr { + ttyp = types.NewPointer(ttyp) + } + + kind = min(kind, isMarshaler(ttyp, marshaler, addressable && !isPtr, visited)) + if kind == NonMarshaler { + // We can stop here as we've reached the minimum [MarshalerKind]. + break + } + } + + // Store final response for pointer-to-typeparam. + if isPtr { + visited[tp.Obj()] = kind + } + + return kind +} + +// IsTextMarshaler queries whether and how the given type +// implements the [encoding.TextMarshaler] interface. +func IsTextMarshaler(typ types.Type) MarshalerKind { + return isMarshaler(typ, ifaceTextMarshaler, false, nil) +} + +// MaybeTextMarshaler queries whether and how the given type +// implements the [encoding.TextMarshaler] interface for at least one receiver form. +func MaybeTextMarshaler(typ types.Type) MarshalerKind { + return isMarshaler(typ, ifaceTextMarshaler, true, nil) +} + +// IsJSONMarshaler queries whether and how the given type +// implements the [json.Marshaler] interface. +func IsJSONMarshaler(typ types.Type) MarshalerKind { + return isMarshaler(typ, ifaceJSONMarshaler, false, nil) +} + +// MaybeJSONMarshaler queries whether and how the given type +// implements the [json.Marshaler] interface for at least one receiver form. +func MaybeJSONMarshaler(typ types.Type) MarshalerKind { + return isMarshaler(typ, ifaceJSONMarshaler, true, nil) +} + +// IsMapKey returns true if the given type +// is accepted as a map key by encoding/json. +func IsMapKey(typ types.Type) bool { + // Iterate over type set and return true if all elements are valid. + // + // We cannot simply delegate to [IsTextMarshaler] here + // because a union of some basic terms and some TextMarshalers + // might still be acceptable. + // + // NOTE: If typ is not a typeparam or constraint, termlist returns just typ itself. + // If typ has an empty type set, it's safe to return true + // because the map cannot be instantiated anyways. + for term := range termlist(typ) { + ttyp := types.Unalias(term.Type()) + + // Types whose underlying type is a signed/unsigned integer or a string + // are always acceptable, whether they are marshalers or not. + if basic, ok := ttyp.Underlying().(*types.Basic); ok { + if basic.Info()&(types.IsInteger|types.IsUnsigned|types.IsString) != 0 { + continue + } + } + + // Valid tilde terms + // can always be satisfied by named types that hide their methods + // hence fail in general to implement the required interface. + // For example one could have: + // + // type NotAKey struct{ encoding.TextMarshaler } + // func (NotAKey) MarshalText() int { ... } + // + // which satisfies ~struct{ encoding.TextMarshaler } + // but is not itself a TextMarshaler. + // + // It might still be the case that the constraint + // requires explicitly a marshaling method, + // hence we perform one last check on typ. + // + // For example, we reject interface{ ~struct{ ... } } + // but still accept interface{ ~struct{ ... }; MarshalText() ([]byte, error) } + // + // All other cases are only acceptable + // if the type implements [encoding.TextMarshaler] in non-addressable mode. + if term.Tilde() || IsTextMarshaler(ttyp) == NonMarshaler { + // When some term fails, test the input typ itself, + // but only if it has not been tested already. + // + // Note that when term.Tilde() is true + // then it is always the case that typ != term.Type(), + // because cyclic constraints are not allowed + // and naked type parameters cannot occur in type unions. + return typ != term.Type() && IsTextMarshaler(typ) != NonMarshaler + } + } + + return true +} + +// IsTypeParam returns true when the given type +// is either a TypeParam or a pointer to a TypeParam. +func IsTypeParam(typ types.Type) bool { + switch t := types.Unalias(typ).(type) { + case *types.TypeParam: + return true + case *types.Pointer: + _, ok := types.Unalias(t.Elem()).(*types.TypeParam) + return ok + default: + return false + } +} + +// IsStringAlias returns true when +// either typ will be rendered to JS/TS as an alias for the TS type `string`, +// or typ itself (not its underlying type) is a pointer +// whose element type satisfies the property described above. +// +// This predicate is only safe to use either with map keys, +// where pointers are treated in an ad-hoc way by [json.Marshal], +// or when typ IS ALREADY KNOWN to be either [types.Alias] or [types.Named]. +// +// Otherwise, the result might be incorrect: +// IsStringAlias MUST NOT be used to check +// whether an arbitrary instance of [types.Type] +// renders as a JS/TS string type. +// +// Notice that IsStringAlias returns false for all type parameters: +// detecting those that must be always instantiated as string aliases +// is technically possible, but very difficult. +func IsStringAlias(typ types.Type) bool { + // Unwrap at most one pointer. + // NOTE: do not unalias typ before testing: + // aliases whose underlying type is a pointer + // are never rendered as strings. + if ptr, ok := typ.(*types.Pointer); ok { + typ = ptr.Elem() + } + + switch typ.(type) { + case *types.Alias, *types.Named: + // Aliases and named types might be rendered as string aliases. + default: + // Not a model type, hence not an alias. + return false + } + + // Skip pointer and interface types: they are always nullable + // and cannot have any explicitly defined methods. + // This takes care of rejecting type params as well, + // since their underlying type is guaranteed to be an interface. + switch typ.Underlying().(type) { + case *types.Pointer, *types.Interface: + return false + } + + // Follow alias chain. + typ = types.Unalias(typ) + + // Aliases of the basic string type are rendered as strings. + if basic, ok := typ.(*types.Basic); ok { + return basic.Info()&types.IsString != 0 + } + + // json.Marshalers can only be rendered as any. + // TextMarshalers that aren't json.Marshalers render as strings. + if MaybeJSONMarshaler(typ) != NonMarshaler { + return false + } else if MaybeTextMarshaler(typ) != NonMarshaler { + return true + } + + // Named types whose underlying type is a string are rendered as strings. + basic, ok := typ.Underlying().(*types.Basic) + return ok && basic.Info()&types.IsString != 0 +} + +// IsClass returns true if the given type will be rendered +// as a JS/TS model class (or interface). +func IsClass(typ types.Type) bool { + // Follow alias chain. + typ = types.Unalias(typ) + + if _, isNamed := typ.(*types.Named); !isNamed { + // Unnamed types are never rendered as classes. + return false + } + + // Struct named types without custom marshaling are rendered as classes. + _, isStruct := typ.Underlying().(*types.Struct) + return isStruct && MaybeJSONMarshaler(typ) == NonMarshaler && MaybeTextMarshaler(typ) == NonMarshaler +} + +// IsAny returns true if the given type +// is guaranteed to render as the TS any type or equivalent. +// +// It might return false negatives for generic aliases, +// hence should only be used with instantiated types +// or in contexts where false negatives are acceptable. +func IsAny(typ types.Type) bool { + // Follow alias chain. + typ = types.Unalias(typ) + + if MaybeJSONMarshaler(typ) != NonMarshaler { + // If typ is either a named type, an interface, a pointer or a struct, + // it will be rendered as (possibly an alias for) the TS any type. + // + // If it is a type parameter that implements json.Marshal, + // every possible concrete instantiation will implement json.Marshal, + // hence will be rendered as the TS any type. + return true + } + + if MaybeTextMarshaler(typ) != NonMarshaler { + // If type is either a named type, an interface, a pointer or a struct, + // it will be rendered as (possibly an alias for) + // the (possibly nullable) TS string type. + // + // If typ is a type parameter, we know at this point + // that it does not necessarily implement json.Marshaler, + // hence it will be possible to instantiate it in a way + // that renders as the (possibly nullable) TS string type. + return false + } + + if ptr, ok := typ.Underlying().(*types.Pointer); ok { + // Pointers render as the union of their element type with null. + // This is equivalent to the TS any type + // if and only if so is the element type. + return IsAny(ptr.Elem()) + } + + // All types listed below have rich TS equivalents, + // hence won't be equivalent to the TS any type. + // + // WARN: it is important to keep these lists explicit and up to date + // instead of listing the unsupported types (which would be much easier). + // + // By doing so, IsAny will keep working correctly + // in case future updates to the Go spec introduce new type families, + // thus buying the maintainers some time to patch the binding generator. + + // Retrieve underlying type. + switch t := typ.Underlying().(type) { + case *types.Basic: + // Complex types are not supported. + return t.Info()&(types.IsBoolean|types.IsInteger|types.IsUnsigned|types.IsFloat|types.IsString) == 0 + case *types.Array, *types.Slice, *types.Map, *types.Struct, *types.TypeParam: + return false + } + + return true +} diff --git a/v3/internal/generator/collect/properties.go b/v3/internal/generator/collect/properties.go deleted file mode 100644 index 44513c9ec..000000000 --- a/v3/internal/generator/collect/properties.go +++ /dev/null @@ -1,152 +0,0 @@ -package collect - -// This file gathers functions that test useful properties of model types. -// The rationale for the way things are handled here -// is given in the example file found at ./_reference/json_marshaler_behaviour.go - -import ( - "go/token" - "go/types" -) - -// Cached interface types. -var ( - ifaceTextMarshaler = types.NewInterfaceType([]*types.Func{ - types.NewFunc(token.NoPos, nil, "MarshalText", - types.NewSignatureType(nil, nil, nil, types.NewTuple(), types.NewTuple( - types.NewParam(token.NoPos, nil, "", types.NewSlice(types.Universe.Lookup("byte").Type())), - types.NewParam(token.NoPos, nil, "", types.Universe.Lookup("error").Type()), - ), false)), - }, nil).Complete() - - ifaceJSONMarshaler = types.NewInterfaceType([]*types.Func{ - types.NewFunc(token.NoPos, nil, "MarshalJSON", - types.NewSignatureType(nil, nil, nil, types.NewTuple(), types.NewTuple( - types.NewParam(token.NoPos, nil, "", types.NewSlice(types.Universe.Lookup("byte").Type())), - types.NewParam(token.NoPos, nil, "", types.Universe.Lookup("error").Type()), - ), false)), - }, nil).Complete() -) - -// IsTextMarshaler tests whether the given type implements -// the encoding.TextMarshaler interface. -func IsTextMarshaler(typ types.Type) bool { - return types.Implements(typ, ifaceTextMarshaler) -} - -// MaybeTextMarshaler tests whether the given type implements -// the encoding.TextMarshaler interface for at least one receiver form. -func MaybeTextMarshaler(typ types.Type) bool { - if _, ok := types.Unalias(typ).(*types.Pointer); !ok { - typ = types.NewPointer(typ) - } - return IsTextMarshaler(typ) -} - -// IsJSONMarshaler tests whether the given type implements -// the json.Marshaler interface. -func IsJSONMarshaler(typ types.Type) bool { - return types.Implements(typ, ifaceJSONMarshaler) -} - -// MaybeJSONMarshaler tests whether the given type implements -// the json.Marshaler interface for at least one receiver form. -func MaybeJSONMarshaler(typ types.Type) bool { - if _, ok := types.Unalias(typ).(*types.Pointer); !ok { - typ = types.NewPointer(typ) - } - return IsJSONMarshaler(typ) -} - -// IsMapKey returns true if the given type -// is accepted as a map key by encoding/json. -func IsMapKey(typ types.Type) bool { - if basic, ok := typ.Underlying().(*types.Basic); ok { - return basic.Info()&(types.IsInteger|types.IsString) != 0 - } - - // Other types are only accepted - // if they implement encoding.TextMarshaler strictly as they are. - return IsTextMarshaler(typ) -} - -// IsString returns true if the given type (or element type for pointers) -// will be rendered as an alias for the TS string type. -func IsString(typ types.Type) bool { - // Unwrap at most one pointer. - // NOTE: do not unalias typ before testing: - // aliases whose underlying type is a pointer - // are _never_ rendered as strings. - if ptr, ok := typ.(*types.Pointer); ok { - typ = ptr.Elem() - } - - switch typ.(type) { - case *types.Alias, *types.Named: - // Aliases and named types might be rendered as string aliases. - default: - // Not a model type. - return false - } - - // Follow alias chain. - typ = types.Unalias(typ) - - if basic, ok := typ.(*types.Basic); ok { - // Test whether basic type is a string. - return basic.Info()&types.IsString != 0 - } - - // JSONMarshalers can only be rendered as any. - // TextMarshalers that aren't JSONMarshalers render as strings. - if MaybeJSONMarshaler(typ) { - return false - } else if MaybeTextMarshaler(typ) { - return true - } - - // Named types whose underlying type is a string are rendered as strings. - basic, ok := typ.Underlying().(*types.Basic) - return ok && basic.Info()&types.IsString != 0 -} - -// IsClass returns true if the given type will be rendered -// as a JS/TS model class (or interface). -func IsClass(typ types.Type) bool { - // Follow alias chain. - typ = types.Unalias(typ) - - if _, isNamed := typ.(*types.Named); !isNamed { - // Unnamed types are never rendered as classes. - return false - } - - // Struct named types without custom marshaling are rendered as classes. - _, isStruct := typ.Underlying().(*types.Struct) - return isStruct && !MaybeJSONMarshaler(typ) && !MaybeTextMarshaler(typ) -} - -// IsAny returns true if the given type will be rendered as a TS any type. -func IsAny(typ types.Type) bool { - // Follow alias chain. - typ = types.Unalias(typ) - - if MaybeJSONMarshaler(typ) { - return true - } - - if MaybeTextMarshaler(typ) { - return false - } - - // Retrieve underlying type - switch t := typ.Underlying().(type) { - case *types.Basic: - // Complex types are not supported. - return t.Info()&types.IsComplex != 0 - case *types.Chan, *types.Signature, *types.Interface: - return true - } - - return false -} diff --git a/v3/internal/generator/collect/service.go b/v3/internal/generator/collect/service.go index 178436111..10879358f 100644 --- a/v3/internal/generator/collect/service.go +++ b/v3/internal/generator/collect/service.go @@ -22,9 +22,17 @@ type ( ServiceInfo struct { *TypeInfo + // Internal records whether the service + // should be exported by the index file. + Internal bool + Imports *ImportMap Methods []*ServiceMethodInfo + // HasInternalMethods records whether the service + // defines lifecycle or http server methods. + HasInternalMethods bool + // Injections stores a list of JS code lines // that should be injected into the generated file. Injections []string @@ -80,7 +88,7 @@ func (collector *Collector) Service(obj *types.TypeName) *ServiceInfo { func (info *ServiceInfo) IsEmpty() bool { // Ensure information has been collected. info.Collect() - return len(info.Injections) == 0 && len(info.Methods) == 0 + return len(info.Methods) == 0 && len(info.Injections) == 0 } // Collect gathers information about the service described by its receiver. @@ -119,7 +127,11 @@ func (info *ServiceInfo) Collect() *ServiceInfo { // Collect method information. info.Methods = make([]*ServiceMethodInfo, 0, len(mset)) for _, sel := range mset { - if !sel.Obj().Exported() || internalServiceMethods[sel.Obj().Name()] { + switch { + case internalServiceMethods[sel.Obj().Name()]: + info.HasInternalMethods = true + continue + case !sel.Obj().Exported(): // Ignore unexported and internal methods. continue } @@ -130,13 +142,20 @@ func (info *ServiceInfo) Collect() *ServiceInfo { } } + // Record whether the service should be exported. + info.Internal = !obj.Exported() + // Parse directives. for _, doc := range []*ast.CommentGroup{info.Doc, info.Decl.Doc} { if doc == nil { continue } for _, comment := range doc.List { - if IsDirective(comment.Text, "inject") { + switch { + case IsDirective(comment.Text, "internal"): + info.Internal = true + + case IsDirective(comment.Text, "inject"): // Check condition. line, cond, err := ParseCondition(ParseDirective(comment.Text, "inject")) if err != nil { @@ -217,6 +236,9 @@ func (info *ServiceInfo) collectMethod(method *types.Func) *ServiceMethodInfo { for _, comment := range methodInfo.Doc.List { switch { + case IsDirective(comment.Text, "ignore"): + return nil + case IsDirective(comment.Text, "internal"): methodInfo.Internal = true diff --git a/v3/internal/generator/collect/struct.go b/v3/internal/generator/collect/struct.go index 86c3bd8c6..b9a1b99ca 100644 --- a/v3/internal/generator/collect/struct.go +++ b/v3/internal/generator/collect/struct.go @@ -193,6 +193,14 @@ func (info *StructInfo) Collect() *StructInfo { // or field is not structure: // add to field list. + if !info.collector.options.UseInterfaces { + // In class mode, mark parametric fields as optional + // because there is no way to know their default JS value in advance. + if _, isTypeParam := types.Unalias(field.Type()).(*types.TypeParam); isTypeParam { + optional = true + } + } + finfo := fieldData{ StructField: &StructField{ JsonName: name, @@ -317,7 +325,7 @@ func parseTag(tag string) (name string, optional bool, quoted bool, visible bool for _, option := range parts[1:] { switch option { - case "omitempty": + case "omitempty", "omitzero": optional = true case "string": quoted = true diff --git a/v3/internal/generator/collect/type.go b/v3/internal/generator/collect/type.go index 27ffca2bc..24e5adefc 100644 --- a/v3/internal/generator/collect/type.go +++ b/v3/internal/generator/collect/type.go @@ -22,12 +22,6 @@ type TypeInfo struct { Doc *ast.CommentGroup Decl *GroupInfo - // Def holds the actual denotation of the type expression - // that defines the described type. - // This is not the same as the underlying type, - // which skips all intermediate aliases and named types. - Def types.Type - obj *types.TypeName node ast.Node @@ -92,13 +86,8 @@ func (info *TypeInfo) Collect() *TypeInfo { info.Name, ) - // Provide dummy group and def. + // Provide dummy group. info.Decl = newGroupInfo(nil).Collect() - if _, isAlias := info.obj.Type().(*types.Alias); isAlias { - info.Def = types.Unalias(info.obj.Type()) - } else { - info.Def = info.obj.Type().Underlying() - } return } @@ -117,8 +106,6 @@ func (info *TypeInfo) Collect() *TypeInfo { info.Decl = collector.fromCache(path[1]).(*GroupInfo).Collect() - info.Def = collector.Package(info.obj.Pkg()).TypesInfo.TypeOf(tspec.Type) - info.node = path[0] }) diff --git a/v3/internal/generator/generate.go b/v3/internal/generator/generate.go index 7a8c38cf2..a3162ea8a 100644 --- a/v3/internal/generator/generate.go +++ b/v3/internal/generator/generate.go @@ -209,13 +209,7 @@ func (generator *Generator) generateModelsIndexIncludes(info *collect.PackageInf if len(index.Models) > 0 { generator.scheduler.Schedule(func() { - generator.generateTypedefs(info, index.Models) - }) - } - - if index.HasExportedModels { - generator.scheduler.Schedule(func() { - generator.generateModels(index) + generator.generateModels(info, index.Models) }) } @@ -236,29 +230,17 @@ func (generator *Generator) validateFileNames() error { case generator.options.ModelsFilename == "": return fmt.Errorf("models filename must not be empty") - case generator.options.InternalFilename == "": - return fmt.Errorf("internal models filename must not be empty") - case !generator.options.NoIndex && generator.options.IndexFilename == "": return fmt.Errorf("package index filename must not be empty") case generator.options.ModelsFilename != strings.ToLower(generator.options.ModelsFilename): return fmt.Errorf("models filename must not contain uppercase characters") - case generator.options.InternalFilename != strings.ToLower(generator.options.InternalFilename): - return fmt.Errorf("internal models filename must not contain uppercase characters") - case generator.options.IndexFilename != strings.ToLower(generator.options.IndexFilename): return fmt.Errorf("package index filename must not contain uppercase characters") - case generator.options.ModelsFilename == generator.options.InternalFilename: - return fmt.Errorf("models and internal models cannot share the same filename") - case !generator.options.NoIndex && generator.options.ModelsFilename == generator.options.IndexFilename: return fmt.Errorf("models and package indexes cannot share the same filename") - - case !generator.options.NoIndex && generator.options.InternalFilename == generator.options.IndexFilename: - return fmt.Errorf("internal models and package indexes cannot share the same filename") } return nil diff --git a/v3/internal/generator/generate_test.go b/v3/internal/generator/generate_test.go index 91be877ea..0e05cb6cb 100644 --- a/v3/internal/generator/generate_test.go +++ b/v3/internal/generator/generate_test.go @@ -3,10 +3,12 @@ package generator import ( "errors" "fmt" + "github.com/wailsapp/wails/v3/internal/generator/render" "io" "io/fs" "os" "path/filepath" + "slices" "strings" "sync" "testing" @@ -37,9 +39,8 @@ func TestGenerator(t *testing.T) { tests := make([]*testParams, 1<<3) for i := range tests { options := &flags.GenerateBindingsOptions{ - ModelsFilename: "models", - InternalFilename: "internal", - IndexFilename: "index", + ModelsFilename: "models", + IndexFilename: "index", UseBundledRuntime: true, @@ -89,9 +90,11 @@ func TestGenerator(t *testing.T) { // Run tests. for _, test := range tests { t.Run(test.name, func(t *testing.T) { + creator := outputCreator(t, test) + generator := NewGenerator( test.options, - outputCreator(t, test), + creator, config.DefaultPtermLogger(nil), ) @@ -102,6 +105,22 @@ func TestGenerator(t *testing.T) { } else if report.HasWarnings() { pterm.Warning.Println(report) } + + // Log warnings and compare with reference output. + if log, err := creator.Create("warnings.log"); err != nil { + t.Error(err) + } else { + func() { + defer log.Close() + + warnings := report.Warnings() + slices.Sort(warnings) + + for _, msg := range warnings { + fmt.Fprint(log, msg, render.Newline) + } + }() + } } else if err != nil { t.Error(err) } diff --git a/v3/internal/generator/includes.go b/v3/internal/generator/includes.go index 9884c74b2..b8bed2392 100644 --- a/v3/internal/generator/includes.go +++ b/v3/internal/generator/includes.go @@ -26,16 +26,6 @@ func (generator *Generator) generateIncludes(index *collect.PackageIndex) { return } - case generator.renderer.InternalFile(): - if len(index.Models) > 0 { - generator.logger.Errorf( - "package %s: included file '%s' collides with internal models filename; please rename the file or choose a different filename for internal models", - index.Package.Path, - path, - ) - return - } - case generator.renderer.IndexFile(): if !generator.options.NoIndex && !index.IsEmpty() { generator.logger.Errorf( @@ -93,7 +83,12 @@ func (generator *Generator) generateIncludes(index *collect.PackageIndex) { generator.logger.Errorf("package %s: could not write included file '%s'", index.Package.Path, name) return } - defer dst.Close() + defer func() { + if err := dst.Close(); err != nil { + generator.logger.Errorf("%v", err) + generator.logger.Errorf("package %s: could not write included file '%s'", index.Package.Path, name) + } + }() _, err = io.Copy(dst, src) if err != nil { diff --git a/v3/internal/generator/index.go b/v3/internal/generator/index.go index 3ce596e32..e7a73c71f 100644 --- a/v3/internal/generator/index.go +++ b/v3/internal/generator/index.go @@ -16,7 +16,12 @@ func (generator *Generator) generateIndex(index *collect.PackageIndex) { generator.logger.Errorf("package %s: index generation failed", index.Package.Path) return } - defer file.Close() + defer func() { + if err := file.Close(); err != nil { + generator.logger.Errorf("%v", err) + generator.logger.Errorf("package %s: index generation failed", index.Package.Path) + } + }() err = generator.renderer.Index(file, index) if err != nil { diff --git a/v3/internal/generator/models.go b/v3/internal/generator/models.go index 0060b254c..2fe4f407f 100644 --- a/v3/internal/generator/models.go +++ b/v3/internal/generator/models.go @@ -6,19 +6,34 @@ import ( "github.com/wailsapp/wails/v3/internal/generator/collect" ) -// generateModels generates a file for exported models from the given index information. -func (generator *Generator) generateModels(index *collect.PackageIndex) { - file, err := generator.creator.Create(filepath.Join(index.Package.Path, generator.renderer.ModelsFile())) +// generateModels generates a JS/TS models file for the given list of models. +// A call to info.Collect must complete before entering generateModels. +func (generator *Generator) generateModels(info *collect.PackageInfo, models []*collect.ModelInfo) { + // Merge all import maps. + imports := collect.NewImportMap(info) + for _, model := range models { + imports.Merge(model.Imports) + } + + // Clear irrelevant imports. + imports.ImportModels = false + + file, err := generator.creator.Create(filepath.Join(info.Path, generator.renderer.ModelsFile())) if err != nil { generator.logger.Errorf("%v", err) - generator.logger.Errorf("package %s: exported models generation failed", index.Package.Path) + generator.logger.Errorf("package %s: models generation failed", info.Path) return } - defer file.Close() + defer func() { + if err := file.Close(); err != nil { + generator.logger.Errorf("%v", err) + generator.logger.Errorf("package %s: models generation failed", info.Path) + } + }() - err = generator.renderer.Models(file, index) + err = generator.renderer.Models(file, imports, models) if err != nil { generator.logger.Errorf("%v", err) - generator.logger.Errorf("package %s: exported models generation failed", index.Package.Path) + generator.logger.Errorf("package %s: models generation failed", info.Path) } } diff --git a/v3/internal/generator/render/create.go b/v3/internal/generator/render/create.go index 9ab809869..8a7880390 100644 --- a/v3/internal/generator/render/create.go +++ b/v3/internal/generator/render/create.go @@ -7,6 +7,7 @@ import ( "text/template" "github.com/wailsapp/wails/v3/internal/generator/collect" + "golang.org/x/tools/go/types/typeutil" ) // SkipCreate returns true if the given array of types needs no creation code. @@ -21,31 +22,34 @@ func (m *module) SkipCreate(ts []types.Type) bool { // NeedsCreate returns true if the given type needs some creation code. func (m *module) NeedsCreate(typ types.Type) bool { - return m.needsCreateImpl(typ, make(map[*types.TypeName]bool)) + return m.needsCreateImpl(typ, new(typeutil.Map)) } // needsCreateImpl provides the actual implementation of NeedsCreate. // The visited parameter is used to break cycles. -func (m *module) needsCreateImpl(typ types.Type, visited map[*types.TypeName]bool) bool { +func (m *module) needsCreateImpl(typ types.Type, visited *typeutil.Map) bool { switch t := typ.(type) { - case *types.Alias, *types.Named: - obj := typ.(interface{ Obj() *types.TypeName }).Obj() - if visited[obj] { + case *types.Alias: + return m.needsCreateImpl(types.Unalias(typ), visited) + + case *types.Named: + if visited.Set(typ, true) != nil { + // The only way to hit a cycle here + // is through a chain of structs, nested pointers and arrays (not slices). + // We can safely return false at this point + // as the final answer is independent of the cycle. return false } - visited[obj] = true - if obj.Pkg() == nil { - // Builtin alias or named type: render underlying type. + if t.Obj().Pkg() == nil { + // Builtin named type: render underlying type. return m.needsCreateImpl(t.Underlying(), visited) } - if collect.IsAny(t) || collect.IsString(t) { + if collect.IsAny(typ) || collect.IsStringAlias(typ) { break - } else if collect.IsClass(t) { + } else if collect.IsClass(typ) { return true - } else if _, isAlias := typ.(*types.Alias); isAlias { - return m.needsCreateImpl(types.Unalias(t), visited) } else { return m.needsCreateImpl(t.Underlying(), visited) } @@ -57,6 +61,10 @@ func (m *module) needsCreateImpl(typ types.Type, visited map[*types.TypeName]boo return true case *types.Struct: + if t.NumFields() == 0 || collect.MaybeJSONMarshaler(typ) != collect.NonMarshaler || collect.MaybeTextMarshaler(typ) != collect.NonMarshaler { + return false + } + info := m.collector.Struct(t) info.Collect() @@ -114,7 +122,6 @@ func (m *module) JSCreateWithParams(typ types.Type, params string) string { case *types.Map: pp, ok := m.postponedCreates.At(typ).(*postponed) if !ok { - m.JSCreateWithParams(t.Key(), params) m.JSCreateWithParams(t.Elem(), params) pp = &postponed{m.postponedCreates.Len(), params} m.postponedCreates.Set(typ, pp) @@ -128,7 +135,7 @@ func (m *module) JSCreateWithParams(typ types.Type, params string) string { return m.JSCreateWithParams(t.Underlying(), params) } - if collect.IsAny(typ) || collect.IsString(typ) || !m.NeedsCreate(typ) { + if !m.NeedsCreate(typ) { break } @@ -166,6 +173,10 @@ func (m *module) JSCreateWithParams(typ types.Type, params string) string { return fmt.Sprintf("$$createType%d%s", pp.index, params) case *types.Struct: + if t.NumFields() == 0 || collect.MaybeJSONMarshaler(typ) != collect.NonMarshaler || collect.MaybeTextMarshaler(typ) != collect.NonMarshaler { + break + } + pp, ok := m.postponedCreates.At(typ).(*postponed) if ok { return fmt.Sprintf("$$createType%d%s", pp.index, params) @@ -212,12 +223,7 @@ func (m *module) PostponedCreates() []string { result[pp.index] = fmt.Sprintf("%s$Create.Array(%s)", pre, m.JSCreateWithParams(t.(interface{ Elem() types.Type }).Elem(), pp.params)) case *types.Map: - result[pp.index] = fmt.Sprintf( - "%s$Create.Map(%s, %s)", - pre, - m.JSCreateWithParams(t.Key(), pp.params), - m.JSCreateWithParams(t.Elem(), pp.params), - ) + result[pp.index] = fmt.Sprintf("%s$Create.Map($Create.Any, %s)", pre, m.JSCreateWithParams(t.Elem(), pp.params)) case *types.Named: if !collect.IsClass(key) { @@ -313,10 +319,10 @@ func (m *module) PostponedCreates() []string { } }) - if newline != "\n" { + if Newline != "\n" { // Replace newlines according to local git config. for i := range result { - result[i] = strings.ReplaceAll(result[i], "\n", newline) + result[i] = strings.ReplaceAll(result[i], "\n", Newline) } } diff --git a/v3/internal/generator/render/default.go b/v3/internal/generator/render/default.go index 1c045a2ff..793c704ba 100644 --- a/v3/internal/generator/render/default.go +++ b/v3/internal/generator/render/default.go @@ -44,11 +44,12 @@ func (m *module) JSDefault(typ types.Type, quoted bool) (result string) { case *types.Map: return "{}" - case *types.Pointer: - return "null" - case *types.Struct: return m.renderStructDefault(t) + + case *types.TypeParam: + // Should be unreachable + panic("type parameters have no default value") } // Fall back to null. @@ -102,8 +103,8 @@ func (m *module) renderNamedDefault(typ aliasOrNamed, quoted bool) (result strin } if quoted { - // WARN: Do not test with IsString here!! We only want to catch marshalers. - if !collect.IsAny(typ) && !collect.MaybeTextMarshaler(typ) { + // WARN: Do not test with IsAny/IsStringAlias here!! We only want to catch marshalers. + if collect.MaybeJSONMarshaler(typ) == collect.NonMarshaler && collect.MaybeTextMarshaler(typ) == collect.NonMarshaler { if basic, ok := typ.Underlying().(*types.Basic); ok { // Quoted mode for basic alias/named type that is not a marshaler: delegate. return m.renderBasicDefault(basic, quoted), true @@ -119,9 +120,9 @@ func (m *module) renderNamedDefault(typ aliasOrNamed, quoted bool) (result strin if collect.IsAny(typ) { return "", false - } else if collect.MaybeTextMarshaler(typ) { + } else if collect.MaybeTextMarshaler(typ) != collect.NonMarshaler { return `""`, true - } else if collect.IsClass(typ) { + } else if collect.IsClass(typ) && !istpalias(typ) { if typ.Obj().Pkg().Path() == m.Imports.Self { return fmt.Sprintf("(new %s%s())", prefix, jsid(typ.Obj().Name())), true } else { @@ -129,29 +130,26 @@ func (m *module) renderNamedDefault(typ aliasOrNamed, quoted bool) (result strin } } else if _, isAlias := typ.(*types.Alias); isAlias { return m.JSDefault(types.Unalias(typ), quoted), true - } else { - // Inject a type assertion in case we are breaking an enum. - // Using the true Go zero value is preferrable to selecting an arbitrary enum value. - value := m.JSDefault(typ.Underlying(), quoted) + } else if len(m.collector.Model(typ.Obj()).Collect().Values) > 0 { if typ.Obj().Pkg().Path() == m.Imports.Self { - if m.TS { - return fmt.Sprintf("(%s as %s%s)", value, prefix, jsid(typ.Obj().Name())), true - } else { - return fmt.Sprintf("(/** @type {%s%s} */(%s))", prefix, jsid(typ.Obj().Name()), value), true - } + return fmt.Sprintf("%s%s.$zero", prefix, jsid(typ.Obj().Name())), true } else { - if m.TS { - return fmt.Sprintf("(%s as %s.%s)", value, jsimport(m.Imports.External[typ.Obj().Pkg().Path()]), jsid(typ.Obj().Name())), true - } else { - return fmt.Sprintf("(/** @type {%s.%s} */(%s))", jsimport(m.Imports.External[typ.Obj().Pkg().Path()]), jsid(typ.Obj().Name()), value), true - } + return fmt.Sprintf("%s.%s.$zero", jsimport(m.Imports.External[typ.Obj().Pkg().Path()]), jsid(typ.Obj().Name())), true } + } else { + return m.JSDefault(typ.Underlying(), quoted), true } } // renderStructDefault outputs the Javascript representation // of the zero value for the given struct type. func (m *module) renderStructDefault(typ *types.Struct) string { + if collect.MaybeJSONMarshaler(typ) != collect.NonMarshaler { + return "null" + } else if collect.MaybeTextMarshaler(typ) != collect.NonMarshaler { + return `""` + } + info := m.collector.Struct(typ) info.Collect() diff --git a/v3/internal/generator/render/doc.go b/v3/internal/generator/render/doc.go index 586d095aa..8ed46d9c5 100644 --- a/v3/internal/generator/render/doc.go +++ b/v3/internal/generator/render/doc.go @@ -35,7 +35,7 @@ var commentTerminator = []byte("*/") // with the given indentation. func jsdoc(comment string, indent string) string { var builder strings.Builder - prefix := []byte(newline + indent + " * ") + prefix := []byte(Newline + indent + " * ") scanner := bufio.NewScanner(bytes.NewReader([]byte(comment))) for scanner.Scan() { diff --git a/v3/internal/generator/render/functions.go b/v3/internal/generator/render/functions.go index c5c71bc13..6123095e8 100644 --- a/v3/internal/generator/render/functions.go +++ b/v3/internal/generator/render/functions.go @@ -2,6 +2,7 @@ package render import ( "fmt" + "go/types" "math/big" "strconv" "strings" @@ -15,16 +16,18 @@ import ( var tmplFunctions = template.FuncMap{ "fixext": fixext, "hasdoc": hasdoc, - "isclass": collect.IsClass, "isjsdocid": isjsdocid, "isjsdocobj": isjsdocobj, + "istpalias": istpalias, "jsdoc": jsdoc, "jsdocline": jsdocline, "jsid": jsid, "jsimport": jsimport, "jsparam": jsparam, "jsvalue": jsvalue, + "modelinfo": modelinfo, "typeparam": typeparam, + "unalias": types.Unalias, } // fixext replaces a *.ts extension with *.js in the given string. @@ -92,3 +95,13 @@ func jsvalue(value any) string { // Fall back to undefined. return "(void(0))" } + +// istpalias determines whether typ is an alias +// that when uninstantiated resolves to a typeparam. +func istpalias(typ types.Type) bool { + if alias, ok := typ.(*types.Alias); ok { + return collect.IsTypeParam(alias.Origin()) + } + + return false +} diff --git a/v3/internal/generator/render/info.go b/v3/internal/generator/render/info.go new file mode 100644 index 000000000..7cd95a3f6 --- /dev/null +++ b/v3/internal/generator/render/info.go @@ -0,0 +1,70 @@ +package render + +import ( + "strings" + + "github.com/wailsapp/wails/v3/internal/generator/collect" +) + +// modelInfo gathers useful information about a model. +type modelInfo struct { + HasValues bool + IsEnum bool + + IsAlias bool + IsClassAlias bool + IsTypeAlias bool + + IsClassOrInterface bool + IsInterface bool + IsClass bool + + Template struct { + Params string + ParamList string + CreateList string + } +} + +// modelinfo gathers and returns useful information about the given model. +func modelinfo(model *collect.ModelInfo, useInterfaces bool) (info modelInfo) { + info.HasValues = len(model.Values) > 0 + info.IsEnum = info.HasValues && !model.Alias + + info.IsAlias = !info.IsEnum && model.Type != nil + info.IsClassAlias = info.IsAlias && model.Predicates.IsClass && !useInterfaces + info.IsTypeAlias = info.IsAlias && !info.IsClassAlias + + info.IsClassOrInterface = !info.IsEnum && !info.IsAlias + info.IsInterface = info.IsClassOrInterface && (model.Alias || useInterfaces) + info.IsClass = info.IsClassOrInterface && !info.IsInterface + + if len(model.TypeParams) > 0 { + var params, paramList, createList strings.Builder + + paramList.WriteRune('<') + createList.WriteRune('(') + + for i, param := range model.TypeParams { + if i > 0 { + params.WriteRune(',') + paramList.WriteString(", ") + createList.WriteString(", ") + } + params.WriteString(param) + paramList.WriteString(param) + + createList.WriteString("$$createParam") + createList.WriteString(param) + } + + paramList.WriteRune('>') + createList.WriteRune(')') + + info.Template.Params = params.String() + info.Template.ParamList = paramList.String() + info.Template.CreateList = createList.String() + } + + return +} diff --git a/v3/internal/generator/render/renderer.go b/v3/internal/generator/render/renderer.go index e1108716e..5ddee85c2 100644 --- a/v3/internal/generator/render/renderer.go +++ b/v3/internal/generator/render/renderer.go @@ -38,7 +38,7 @@ func NewRenderer(options *flags.GenerateBindingsOptions, collector *collect.Coll ext: ext, service: tmplService[tmplLanguage(options.TS)], - typedefs: tmplTypedefs[tmplLanguage(options.TS)], + typedefs: tmplModels[tmplLanguage(options.TS)], } } @@ -54,12 +54,6 @@ func (renderer *Renderer) ModelsFile() string { return renderer.options.ModelsFilename + renderer.ext } -// InternalFile returns the standard name of an internal model file -// with the appropriate extension. -func (renderer *Renderer) InternalFile() string { - return renderer.options.InternalFilename + renderer.ext -} - // IndexFile returns the standard name of a package index file // with the appropriate extension. func (renderer *Renderer) IndexFile() string { @@ -82,7 +76,7 @@ func (renderer *Renderer) Service(w io.Writer, info *collect.ServiceInfo) error } // Typedefs renders type definitions for the given list of models. -func (renderer *Renderer) Typedefs(w io.Writer, imports *collect.ImportMap, models []*collect.ModelInfo) error { +func (renderer *Renderer) Models(w io.Writer, imports *collect.ImportMap, models []*collect.ModelInfo) error { if !renderer.options.UseInterfaces { // Sort class aliases after the class they alias. // Works in amortized linear time thanks to an auxiliary map. @@ -92,7 +86,7 @@ func (renderer *Renderer) Typedefs(w io.Writer, imports *collect.ImportMap, mode models = slices.Clone(models) for i, j := 0, 0; i < len(models); i++ { - if models[i].Type != nil && collect.IsClass(models[i].Type) { + if models[i].Type != nil && models[i].Predicates.IsClass { // models[i] is a class alias: // models[i].Type is guaranteed to be // either an alias or a named type @@ -133,19 +127,6 @@ func (renderer *Renderer) Typedefs(w io.Writer, imports *collect.ImportMap, mode }) } -// Models renders exported models for the given package index to w. -func (renderer *Renderer) Models(w io.Writer, index *collect.PackageIndex) error { - return tmplModels.Execute(w, &struct { - *collect.PackageIndex - *Renderer - *flags.GenerateBindingsOptions - }{ - index, - renderer, - renderer.options, - }) -} - // Index renders the given package index to w. func (renderer *Renderer) Index(w io.Writer, index *collect.PackageIndex) error { return tmplIndex.Execute(w, &struct { diff --git a/v3/internal/generator/render/templates.go b/v3/internal/generator/render/templates.go index e3f7dbe17..5aa7398f5 100644 --- a/v3/internal/generator/render/templates.go +++ b/v3/internal/generator/render/templates.go @@ -18,16 +18,14 @@ var tmplService = map[tmplLanguage]*template.Template{ tmplTS: template.Must(template.New("service.ts.tmpl").Funcs(tmplFunctions).ParseFS(templates, "templates/service.ts.tmpl")), } -var tmplTypedefs = map[tmplLanguage]*template.Template{ - tmplJS: template.Must(template.New("internal.js.tmpl").Funcs(tmplFunctions).ParseFS(templates, "templates/internal.js.tmpl")), - tmplTS: template.Must(template.New("internal.ts.tmpl").Funcs(tmplFunctions).ParseFS(templates, "templates/internal.ts.tmpl")), +var tmplModels = map[tmplLanguage]*template.Template{ + tmplJS: template.Must(template.New("models.js.tmpl").Funcs(tmplFunctions).ParseFS(templates, "templates/models.js.tmpl")), + tmplTS: template.Must(template.New("models.ts.tmpl").Funcs(tmplFunctions).ParseFS(templates, "templates/models.ts.tmpl")), } -var tmplModels = template.Must(template.New("models.tmpl").Funcs(tmplFunctions).ParseFS(templates, "templates/models.tmpl")) - var tmplIndex = template.Must(template.New("index.tmpl").Funcs(tmplFunctions).ParseFS(templates, "templates/index.tmpl")) -var newline string +var Newline string func init() { var builder strings.Builder @@ -37,5 +35,5 @@ func init() { panic(err) } - newline = builder.String() + Newline = builder.String() } diff --git a/v3/internal/generator/render/templates/index.tmpl b/v3/internal/generator/render/templates/index.tmpl index 80230aaf2..fd067bf50 100644 --- a/v3/internal/generator/render/templates/index.tmpl +++ b/v3/internal/generator/render/templates/index.tmpl @@ -1,4 +1,5 @@ {{$renderer := .}} +{{- $useInterfaces := .UseInterfaces}} {{- $models := (fixext .ModelsFile)}} {{- if not .TS -}} // @ts-check @@ -18,19 +19,83 @@ */ {{end}} {{- if .Services}} -{{- range .Services}} +{{- range .Services}}{{if .Internal}}{{break}}{{end}} import * as {{jsid .Name}} from "./{{js (fixext ($renderer.ServiceFile .Name))}}"; {{- end}} export { {{- range $i, $service := .Services}} + {{- if .Internal}}{{break}}{{end}} {{- if gt $i 0}},{{end}} {{jsid .Name}} {{- end}} }; {{end}} -{{- if .HasExportedModels}} -export * from "./{{js $models}}"; + +{{- $hasObjects := false}} +{{- $hasTypes := false}} + +{{- range $model := .Models}} +{{- if $model.Internal}}{{break}}{{end}} + +{{- $info := modelinfo $model $useInterfaces }} + +{{- if or $info.HasValues $info.IsClassAlias $info.IsClass}} +{{- if not $hasObjects}} + {{- $hasObjects = true}} +export { +{{- else}},{{end}} + {{jsid $model.Name}} +{{- else}} + {{- $hasTypes = true}} +{{- end}} +{{- end}} +{{- if $hasObjects}} +} from "./{{js $models}}"; {{end}} + +{{- if $hasTypes}} +{{- $hasTypes = false}} + +{{- if .TS}} +export type { +{{- else}} +import * as $models from "./{{js $models}}"; +{{end}} +{{- range $model := .Models}} +{{- if $model.Internal}}{{break}}{{end}} + +{{- $info := modelinfo $model $useInterfaces }} +{{- $template := $info.Template }} + +{{- if or $info.HasValues $info.IsClassAlias $info.IsClass}}{{continue}}{{end}} + +{{- if $renderer.TS}} + {{- if $hasTypes}},{{end}} + {{jsid $model.Name}} +{{- else}} +/** +{{- if hasdoc $model.Decl.Doc}} +{{- jsdoc $model.Decl.Doc.Text ""}}{{if hasdoc $model.Doc}} + *{{end}} +{{- end}} +{{- if hasdoc $model.Doc}} +{{- jsdoc $model.Doc.Text ""}} +{{- end}} +{{- if $template.ParamList}} + * @template {{$template.Params}} +{{- end}} + * @typedef {$models.{{jsid $model.Name}}{{$template.ParamList -}} } {{jsid $model.Name}} + */ +{{end}} + +{{- $hasTypes = true}} +{{- end}} + +{{- if .TS}} +} from "./{{js $models}}"; +{{end}} + +{{- end}} {{- range .Package.Injections}} {{.}} {{- end}}{{if .Package.Injections}} diff --git a/v3/internal/generator/render/templates/internal.js.tmpl b/v3/internal/generator/render/templates/models.js.tmpl similarity index 71% rename from v3/internal/generator/render/templates/internal.js.tmpl rename to v3/internal/generator/render/templates/models.js.tmpl index f954d9f63..4d12429d0 100644 --- a/v3/internal/generator/render/templates/internal.js.tmpl +++ b/v3/internal/generator/render/templates/models.js.tmpl @@ -19,34 +19,10 @@ import * as {{jsimport .}} from "{{js .RelPath}}/{{js $models}}"; {{end}} {{- range $model := .Models}} -{{- $isEnum := $model.Values}} -{{- $isClassAlias := and $model.Type (not $useInterfaces) (isclass $model.Type)}} -{{- $isTypeAlias := and $model.Type (or $useInterfaces (not (isclass $model.Type)))}} -{{- $isClassOrInterface := and (not $model.Type) (not $model.Values)}} -{{- $isInterface := and $isClassOrInterface (or $useInterfaces $model.Alias)}} +{{- $info := modelinfo $model $useInterfaces }} +{{- $template := $info.Template }} -{{- /* Build type parameter list */}} -{{- $typeParams := ""}} -{{- $typeParamList := ""}} -{{- $createParamList := ""}} -{{- range $i, $param := $model.TypeParams}} - {{- $param = (typeparam $i $param)}} - {{- if eq $i 0}} - {{- $typeParams = $param}} - {{- $typeParamList = (printf "<%s" $param)}} - {{- $createParamList = (printf "($$createParam%s" $param)}} - {{- else}} - {{- $typeParams = (printf "%s,%s" $typeParams $param)}} - {{- $typeParamList = (printf "%s, %s" $typeParamList $param)}} - {{- $createParamList = (printf "%s, $$createParam%s" $createParamList $param)}} - {{- end}} -{{- end}} -{{- if $typeParamList}} - {{- $typeParamList = (printf "%s>" $typeParamList)}} - {{- $createParamList = (printf "%s)" $createParamList)}} -{{- end}} - -{{- if or $typeParamList (hasdoc $model.Decl.Doc) (hasdoc $model.Doc) $isEnum $isTypeAlias $isInterface}} +{{- if or $template.ParamList (hasdoc $model.Decl.Doc) (hasdoc $model.Doc) $info.IsEnum $info.IsTypeAlias $info.IsInterface}} /** {{- if hasdoc $model.Decl.Doc}} {{- jsdoc $model.Decl.Doc.Text ""}}{{if hasdoc $model.Doc}} @@ -55,15 +31,15 @@ import * as {{jsimport .}} from "{{js .RelPath}}/{{js $models}}"; {{- if hasdoc $model.Doc}} {{- jsdoc $model.Doc.Text ""}} {{- end}} -{{- if and $typeParamList (not $isClassAlias)}} - * @template {{$typeParams}} +{{- if and $template.ParamList (not $info.IsClassAlias)}} + * @template {{$template.Params}} {{- end}} -{{- if $isEnum}} +{{- if $info.IsEnum}} * @readonly * @enum { {{- $module.JSType $model.Type -}} } -{{- else if $isTypeAlias}} +{{- else if $info.IsTypeAlias}} * @typedef { {{- $module.JSType $model.Type -}} } {{jsid $model.Name}} -{{- else if $isInterface}} +{{- else if $info.IsInterface}} {{- if isjsdocobj $model}} * @typedef {Object} {{jsid $model.Name}} {{- range $i, $decl := $model.Fields}}{{range $j, $field := $decl}} @@ -81,13 +57,22 @@ import * as {{jsimport .}} from "{{js .RelPath}}/{{js $models}}"; {{- end}} */ {{- end}} -{{- if $isEnum}} +{{- if $info.HasValues}} +{{- if not $info.IsEnum}} + +/** + * Predefined constants for type {{jsid $model.Name}}. + * @namespace + */ +{{- end}} export const {{jsid $model.Name}} = { +{{- if $info.IsEnum}} /** * The Go zero value for the underlying type of the enum. */ $zero: {{$module.JSDefault $model.Type false}}, -{{range $i, $decl := $model.Values}}{{range $j, $spec := $decl}}{{range $k, $value := $spec}} +{{end}} +{{- range $i, $decl := $model.Values}}{{range $j, $spec := $decl}}{{range $k, $value := $spec}} {{- if and (ne $i 0) (eq $j 0) (eq $k 0)}} {{end}} {{- if or (and (eq $j 0) (eq $k 0) (hasdoc $value.Decl.Doc)) (and (eq $k 0) (hasdoc $value.Spec.Doc))}} @@ -106,8 +91,12 @@ export const {{jsid $model.Name}} = { {{jsid $value.Name}}: {{jsvalue $value.Value}}, {{- end}}{{end}}{{end}} }; -{{else if $isClassAlias}} -export const {{jsid $model.Name}} = {{$module.JSType $model.Type.Origin}}; +{{else if $info.IsClassAlias}} +export const {{jsid $model.Name}} = {{if istpalias $model.Type -}} + {{$module.JSType (unalias $model.Type).Origin}}; +{{- else -}} + {{$module.JSType $model.Type.Origin}}; +{{- end}} /** {{- if hasdoc $model.Decl.Doc}} @@ -117,16 +106,16 @@ export const {{jsid $model.Name}} = {{$module.JSType $model.Type.Origin}}; {{- if hasdoc $model.Doc}} {{- jsdoc $model.Doc.Text ""}} {{- end}} -{{- if $typeParamList}} - * @template {{$typeParams}} +{{- if $template.ParamList}} + * @template {{$template.Params}} {{- end}} * @typedef { {{- $module.JSType $model.Type -}} } {{jsid $model.Name}} */ -{{else if and $isClassOrInterface (not $isInterface)}} +{{else if and $info.IsClass}} export class {{jsid $model.Name}} { /** * Creates a new {{jsid $model.Name}} instance. - * @param {Partial<{{jsid $model.Name}}{{$typeParamList}}>} [$$source = {}] - The source object to create the {{jsid $model.Name}}. + * @param {Partial<{{jsid $model.Name}}{{$template.ParamList}}>} [$$source = {}] - The source object to create the {{jsid $model.Name}}. */ constructor($$source = {}) { {{- range $decl := $model.Fields}}{{range $j, $field := $decl}} @@ -144,9 +133,9 @@ export class {{jsid $model.Name}} { {{- jsdoc $field.Decl.Doc.Text " "}} {{- end}} * @member - * @type { {{- $module.JSFieldType $field.StructField}}{{if .Optional}} | undefined{{end -}} } + * @type { {{- $module.JSFieldType $field.StructField}}{{if $field.Optional}} | undefined{{end -}} } */ - this["{{js $field.JsonName}}"] = {{$module.JSDefault $field.Type $field.Quoted}}; + this["{{js $field.JsonName}}"] = {{if $field.Optional}}undefined{{else}}{{$module.JSDefault $field.Type $field.Quoted}}{{end}}; } {{- end}}{{end}} @@ -154,31 +143,31 @@ export class {{jsid $model.Name}} { } /** - {{- if $typeParamList}} + {{- if $template.ParamList}} * Given creation functions for each type parameter, * returns a creation function for a concrete instance * of the generic class {{jsid $model.Name}}. - * @template {{$typeParams}} + * @template {{$template.Params}} {{- range $i, $param := $model.TypeParams}} {{- $param = (typeparam $i $param)}} * @param {(source: any) => {{$param -}} } $$createParam{{$param}} {{- end}} - * @returns {($$source?: any) => {{jsid $model.Name}}{{$typeParamList -}} } + * @returns {($$source?: any) => {{jsid $model.Name}}{{$template.ParamList -}} } {{- else}} * Creates a new {{jsid $model.Name}} instance from a string or object. * @param {any} [$$source = {}] * @returns { {{- jsid $model.Name -}} } {{- end}} */ - static createFrom{{if $typeParamList}}{{$createParamList}}{{else}}($$source = {}){{end}} { + static createFrom{{if $template.ParamList}}{{$template.CreateList}}{{else}}($$source = {}){{end}} { {{- range $i, $spec := $model.Fields}}{{range $j, $field := $spec}} - {{- $create := ($module.JSCreateWithParams $field.Type $createParamList)}} + {{- $create := ($module.JSCreateWithParams $field.Type $template.CreateList)}} {{- if ne $create "$Create.Any"}} const $$createField{{$i}}_{{$j}} = {{$create}}; {{- end}} {{- end}}{{end}} {{- $indent := ""}} - {{- if $typeParamList}} + {{- if $template.ParamList}} {{- $indent = " "}} return ($$source = {}) => { {{- end}} @@ -190,8 +179,8 @@ export class {{jsid $model.Name}} { {{$indent -}} } {{- end}} {{- end}}{{end}} - {{$indent}}return new {{jsid $model.Name}}(/** @type {Partial<{{jsid $model.Name}}{{$typeParamList}}>} */($$parsedSource)); - {{- if $typeParamList}} + {{$indent}}return new {{jsid $model.Name}}(/** @type {Partial<{{jsid $model.Name}}{{$template.ParamList}}>} */($$parsedSource)); + {{- if $template.ParamList}} }; {{- end}} } diff --git a/v3/internal/generator/render/templates/models.tmpl b/v3/internal/generator/render/templates/models.tmpl deleted file mode 100644 index 24622685b..000000000 --- a/v3/internal/generator/render/templates/models.tmpl +++ /dev/null @@ -1,94 +0,0 @@ -{{$renderer := .}} -{{- $useInterfaces := .UseInterfaces}} -{{- $internal := (fixext .InternalFile)}} -{{- if not .TS -}} -// @ts-check -{{end -}} -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -{{- $hasObjects := false}} -{{- $hasTypes := false}} - -{{- range $model := .Models}} -{{- if not $model.Object.Exported}}{{break}}{{end}} - -{{- $isEnum := $model.Values}} -{{- $isClassAlias := and $model.Type (not $useInterfaces) (isclass $model.Type)}} -{{- $isClass := and (not $model.Type) (not $model.Values) (not $useInterfaces) (not $model.Alias)}} - -{{- if or $isEnum $isClassAlias $isClass}} -{{- if not $hasObjects}} - {{- $hasObjects = true}} - -export { -{{- else}},{{end}} - {{jsid $model.Name}} -{{- else}} - {{- $hasTypes = true}} -{{- end}} -{{- end}} -{{- if $hasObjects}} -} from "./{{js $internal}}"; -{{- end}} - -{{- if $hasTypes}} -{{- $hasTypes = false}} - -{{if .TS -}} -export type { -{{- else -}} -import * as $models from "./{{js $internal}}"; -{{- end}} -{{- range $model := .Models}} -{{- if not $model.Object.Exported}}{{break}}{{end}} - -{{- $isEnum := $model.Values}} -{{- $isClassAlias := and $model.Type (not $useInterfaces) (isclass $model.Type)}} -{{- $isClass := and (not $model.Type) (not $model.Values) (not $useInterfaces) (not $model.Alias)}} -{{- if or $isEnum $isClassAlias $isClass}}{{continue}}{{end}} - -{{- /* Build type parameter list */}} -{{- $typeParams := ""}} -{{- $typeParamList := ""}} -{{- range $i, $param := $model.TypeParams}} - {{- $param = (typeparam $i $param)}} - {{- if eq $i 0}} - {{- $typeParams = $param}} - {{- $typeParamList = (printf "<%s" $param)}} - {{- else}} - {{- $typeParams = (printf "%s,%s" $typeParams $param)}} - {{- $typeParamList = (printf "%s, %s" $typeParamList $param)}} - {{- end}} -{{- end}} -{{- if $typeParamList}} - {{- $typeParamList = (printf "%s>" $typeParamList)}} -{{- end}} -{{- if $renderer.TS}} - {{- if $hasTypes}},{{end}} - {{jsid $model.Name}} -{{- else}} - -/** -{{- if hasdoc $model.Decl.Doc}} -{{- jsdoc $model.Decl.Doc.Text ""}}{{if hasdoc $model.Doc}} - *{{end}} -{{- end}} -{{- if hasdoc $model.Doc}} -{{- jsdoc $model.Doc.Text ""}} -{{- end}} -{{- if $typeParamList}} - * @template {{$typeParams}} -{{- end}} - * @typedef {$models.{{jsid $model.Name}}{{$typeParamList -}} } {{jsid $model.Name}} - */ -{{- end}} - -{{- $hasTypes = true}} -{{- end}} - -{{- if .TS}} -} from "./{{js $internal}}"; -{{- end}} - -{{- end}} diff --git a/v3/internal/generator/render/templates/internal.ts.tmpl b/v3/internal/generator/render/templates/models.ts.tmpl similarity index 69% rename from v3/internal/generator/render/templates/internal.ts.tmpl rename to v3/internal/generator/render/templates/models.ts.tmpl index 383623c3e..e82e7311a 100644 --- a/v3/internal/generator/render/templates/internal.ts.tmpl +++ b/v3/internal/generator/render/templates/models.ts.tmpl @@ -18,29 +18,8 @@ import * as {{jsimport .}} from "{{js .RelPath}}/{{js $models}}"; {{end}} {{- range $model := .Models}} -{{- $isEnum := $model.Values}} -{{- $isClassAlias := and $model.Type (not $useInterfaces) (isclass $model.Type)}} -{{- $isTypeAlias := and $model.Type (or $useInterfaces (not (isclass $model.Type)))}} -{{- $isClassOrInterface := and (not $model.Type) (not $model.Values)}} -{{- $isInterface := or $useInterfaces $model.Alias}} - -{{- /* Build type parameter list */}} -{{- $typeParamList := ""}} -{{- $createParamList := ""}} -{{- range $i, $param := $model.TypeParams}} - {{- $param = (typeparam $i $param)}} - {{- if eq $i 0}} - {{- $typeParamList = (printf "<%s" $param)}} - {{- $createParamList = (printf "($$createParam%s" $param)}} - {{- else}} - {{- $typeParamList = (printf "%s, %s" $typeParamList $param)}} - {{- $createParamList = (printf "%s, $$createParam%s" $createParamList $param)}} - {{- end}} -{{- end}} -{{- if $typeParamList}} - {{- $typeParamList = (printf "%s>" $typeParamList)}} - {{- $createParamList = (printf "%s)" $createParamList)}} -{{- end}} +{{- $info := modelinfo $model $useInterfaces }} +{{- $template := $info.Template }} {{- if or (hasdoc $model.Decl.Doc) (hasdoc $model.Doc)}} /** @@ -53,7 +32,7 @@ import * as {{jsimport .}} from "{{js .RelPath}}/{{js $models}}"; {{- end}} */ {{- end}} -{{- if $isEnum}} +{{- if $info.IsEnum}} export enum {{jsid $model.Name}} { /** * The Go zero value for the underlying type of the enum. @@ -78,8 +57,12 @@ export enum {{jsid $model.Name}} { {{jsid $value.Name}} = {{jsvalue $value.Value}}, {{- end}}{{end}}{{end}} }; -{{else if $isClassAlias}} -export const {{jsid $model.Name}} = {{$module.JSType $model.Type.Origin}}; +{{else if $info.IsClassAlias}} +export const {{jsid $model.Name}} = {{if istpalias $model.Type -}} + {{$module.JSType (unalias $model.Type).Origin}}; +{{- else -}} + {{$module.JSType $model.Type.Origin}}; +{{- end}} {{- if or (hasdoc $model.Decl.Doc) (hasdoc $model.Doc)}} /** @@ -92,11 +75,38 @@ export const {{jsid $model.Name}} = {{$module.JSType $model.Type.Origin}}; {{- end}} */ {{- end}} -export type {{jsid $model.Name}}{{$typeParamList}} = {{$module.JSType $model.Type}}; -{{else if $isTypeAlias}} -export type {{jsid $model.Name}}{{$typeParamList}} = {{$module.JSType $model.Type}}; -{{else if $isClassOrInterface}} -export {{if $isInterface}}interface{{else}}class{{end}} {{jsid $model.Name}}{{$typeParamList}} { +export type {{jsid $model.Name}}{{$template.ParamList}} = {{$module.JSType $model.Type}}; +{{else if $info.IsTypeAlias}} +export type {{jsid $model.Name}}{{$template.ParamList}} = {{$module.JSType $model.Type}}; +{{- if $info.HasValues}} + +/** + * Predefined constants for type {{jsid $model.Name}}. + * @namespace + */ +export const {{jsid $model.Name}} = { +{{- range $i, $decl := $model.Values}}{{range $j, $spec := $decl}}{{range $k, $value := $spec}} + {{- if and (ne $i 0) (eq $j 0) (eq $k 0)}} +{{end}} + {{- if or (and (eq $j 0) (eq $k 0) (hasdoc $value.Decl.Doc)) (and (eq $k 0) (hasdoc $value.Spec.Doc))}} + {{- if gt $j 0}} +{{end}} + /** + {{- if and (eq $j 0) (eq $k 0) (hasdoc $value.Decl.Doc)}} + {{- jsdoc $value.Decl.Doc.Text " "}}{{if and (eq $k 0) (hasdoc $value.Spec.Doc)}} + *{{end}} + {{- end}} + {{- if and (eq $k 0) (hasdoc $value.Spec.Doc)}} + {{- jsdoc $value.Spec.Doc.Text " "}} + {{- end}} + */ + {{- end}} + {{jsid $value.Name}}: {{jsvalue $value.Value}}, +{{- end}}{{end}}{{end}} +}; +{{- end}} +{{else if $info.IsClassOrInterface}} +export {{if $info.IsInterface}}interface{{else}}class{{end}} {{jsid $model.Name}}{{$template.ParamList}} { {{- range $i, $decl := $model.Fields}}{{range $j, $field := $decl}} {{- if and (eq $j 0) (hasdoc $field.Decl.Doc)}} {{- if gt $i 0}} @@ -107,11 +117,11 @@ export {{if $isInterface}}interface{{else}}class{{end}} {{jsid $model.Name}}{{$t {{- end}} "{{js $field.JsonName}}"{{if $field.Optional}}?{{end}}: {{$module.JSFieldType $field.StructField}}; {{- end}}{{end}} -{{- if not $isInterface}} +{{- if $info.IsClass}} /** Creates a new {{jsid $model.Name}} instance. */ - constructor($$source: Partial<{{jsid $model.Name}}{{$typeParamList}}> = {}) { - {{- range $spec := $model.Fields}}{{range $i, $field := $spec}}{{if not .Optional}} + constructor($$source: Partial<{{jsid $model.Name}}{{$template.ParamList}}> = {}) { + {{- range $spec := $model.Fields}}{{range $i, $field := $spec}}{{if not $field.Optional}} if (!("{{js $field.JsonName}}" in $$source)) { this["{{js $field.JsonName}}"] = {{$module.JSDefault $field.Type $field.Quoted}}; } @@ -121,7 +131,7 @@ export {{if $isInterface}}interface{{else}}class{{end}} {{jsid $model.Name}}{{$t } /** - {{- if $typeParamList}} + {{- if $template.ParamList}} * Given creation functions for each type parameter, * returns a creation function for a concrete instance * of the generic class {{jsid $model.Name}}. @@ -129,21 +139,21 @@ export {{if $isInterface}}interface{{else}}class{{end}} {{jsid $model.Name}}{{$t * Creates a new {{jsid $model.Name}} instance from a string or object. {{- end}} */ - static createFrom{{$typeParamList}}({{if $typeParamList}} + static createFrom{{$template.ParamList}}({{if $template.ParamList}} {{- range $i, $param := $model.TypeParams}} {{- $param = (typeparam $i $param)}} {{- if gt $i 0}}, {{end -}} $$createParam{{$param}}: (source: any) => {{$param}}{{end -}} {{else}}$$source: any = {}{{end}}): - {{- if $typeParamList}} ($$source?: any) =>{{end}} {{jsid $model.Name}}{{$typeParamList}} { + {{- if $template.ParamList}} ($$source?: any) =>{{end}} {{jsid $model.Name}}{{$template.ParamList}} { {{- range $i, $spec := $model.Fields}}{{range $j, $field := $spec}} - {{- $create := ($module.JSCreateWithParams $field.Type $createParamList)}} + {{- $create := ($module.JSCreateWithParams $field.Type $template.CreateList)}} {{- if ne $create "$Create.Any"}} const $$createField{{$i}}_{{$j}} = {{$create}}; {{- end}} {{- end}}{{end}} {{- $indent := ""}} - {{- if $typeParamList}} + {{- if $template.ParamList}} {{- $indent = " "}} return ($$source: any = {}) => { {{- end}} @@ -155,8 +165,8 @@ export {{if $isInterface}}interface{{else}}class{{end}} {{jsid $model.Name}}{{$t {{$indent -}} } {{- end}} {{- end}}{{end}} - {{$indent}}return new {{jsid $model.Name}}{{$typeParamList}}($$parsedSource as Partial<{{jsid $model.Name}}{{$typeParamList}}>); - {{- if $typeParamList}} + {{$indent}}return new {{jsid $model.Name}}{{$template.ParamList}}($$parsedSource as Partial<{{jsid $model.Name}}{{$template.ParamList}}>); + {{- if $template.ParamList}} }; {{- end}} } diff --git a/v3/internal/generator/render/templates/service.js.tmpl b/v3/internal/generator/render/templates/service.js.tmpl index d477cbc62..bde8ad188 100644 --- a/v3/internal/generator/render/templates/service.js.tmpl +++ b/v3/internal/generator/render/templates/service.js.tmpl @@ -1,7 +1,6 @@ {{$module := .}} {{- $runtime := $module.Runtime}} {{- $models := (fixext $module.ModelsFile)}} -{{- $internal := (fixext $module.InternalFile)}} {{- $useNames := $module.UseNames}} {{- $useInterfaces := $module.UseInterfaces}} {{- $imports := $module.Imports}} @@ -33,11 +32,7 @@ import * as {{jsimport .}} from "{{js .RelPath}}/{{js $models}}"; {{- if $imports.ImportModels}} // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./{{js $internal}}"; -{{end}} -{{- range .Injections}} -{{.}} -{{- end}}{{if .Injections}} +import * as $models from "./{{js $models}}"; {{end}} {{- range .Methods}} /** @@ -100,4 +95,8 @@ import * as $models from "./{{js $internal}}"; {{if and (ge (len $create) 54) (eq (slice $create 39 54) "function $$init")}}var {{else}}const {{end -}} $$createType{{$i}} = {{$create}}; {{- end}} +{{end}} +{{- range .Injections}} +{{.}} +{{- end}}{{if .Injections}} {{end}}{{end -}} diff --git a/v3/internal/generator/render/templates/service.ts.tmpl b/v3/internal/generator/render/templates/service.ts.tmpl index 0e8400a3b..9a2f0cd31 100644 --- a/v3/internal/generator/render/templates/service.ts.tmpl +++ b/v3/internal/generator/render/templates/service.ts.tmpl @@ -1,7 +1,6 @@ {{$module := .}} {{- $runtime := $module.Runtime}} {{- $models := (fixext $module.ModelsFile)}} -{{- $internal := (fixext $module.InternalFile)}} {{- $useNames := $module.UseNames}} {{- $useInterfaces := $module.UseInterfaces}} {{- $imports := $module.Imports}} @@ -32,11 +31,7 @@ import * as {{jsimport .}} from "{{js .RelPath}}/{{js $models}}"; {{- if $imports.ImportModels}} // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./{{js $internal}}"; -{{end}} -{{- range .Injections}} -{{.}} -{{- end}}{{if .Injections}} +import * as $models from "./{{js $models}}"; {{end}} {{- range .Methods}} {{- if or (hasdoc .Decl.Doc) (hasdoc .Doc)}} @@ -97,4 +92,8 @@ import * as $models from "./{{js $internal}}"; {{if and (ge (len $create) 16) (eq (slice $create 1 16) "function $$init")}}var {{else}}const {{end -}} $$createType{{$i}} = {{$create}}; {{- end}} +{{end}} +{{- range .Injections}} +{{.}} +{{- end}}{{if .Injections}} {{end}}{{end -}} diff --git a/v3/internal/generator/render/type.go b/v3/internal/generator/render/type.go index 429ec7041..2c880154a 100644 --- a/v3/internal/generator/render/type.go +++ b/v3/internal/generator/render/type.go @@ -72,9 +72,9 @@ func (m *module) renderType(typ types.Type, quoted bool) (result string, nullabl return m.renderMapType(t) case *types.Pointer: - elem, ptr := m.renderType(t.Elem(), false) - if ptr { - return elem, true + elem, nullable := m.renderType(t.Elem(), false) + if nullable { + return elem, nullable } else { return fmt.Sprintf("%s | null", elem), true } @@ -83,11 +83,11 @@ func (m *module) renderType(typ types.Type, quoted bool) (result string, nullabl return m.renderStructType(t), false case *types.TypeParam: - str := "" + pre, post := "", "" if quoted { - str = "| string " + pre, post = "(", " | string)" } - return fmt.Sprintf("%s %s| null", typeparam(t.Index(), t.Obj().Name()), str), true + return fmt.Sprintf("%s%s%s", pre, typeparam(t.Index(), t.Obj().Name()), post), false } // Fall back to untyped mode. @@ -147,29 +147,22 @@ func (m *module) renderMapType(typ *types.Map) (result string, nullable bool) { key = m.renderBasicType(k, true) } - case *types.Alias, *types.Named: - if collect.IsMapKey(typ) { - if collect.IsString(typ) { + case *types.Alias, *types.Named, *types.Pointer: + if collect.IsMapKey(k) { + if collect.IsStringAlias(k) { // Alias or named type is a string and therefore // safe to use as a JS object key. if ptr, ok := k.(*types.Pointer); ok { - // Unwrap pointer to named string type, but not pointer aliases. + // Unwrap pointers to string aliases. key, _ = m.renderType(ptr.Elem(), false) } else { key, _ = m.renderType(k, false) } - } else if basic, ok := typ.Underlying().(*types.Basic); ok && basic.Info()&types.IsString == 0 { + } else if basic, ok := k.Underlying().(*types.Basic); ok && basic.Info()&types.IsString == 0 { // Render non-string basic type in quoted mode. key = m.renderBasicType(basic, true) } } - - case *types.Pointer: - if collect.IsMapKey(typ) && collect.IsString(typ.Elem()) { - // Base type is a string alias and therefore - // safe to use as a JS object key. - key, _ = m.renderType(k.Elem(), false) - } } return fmt.Sprintf("{ [_: %s]: %s }%s", key, elem, null), m.UseInterfaces @@ -193,16 +186,12 @@ func (m *module) renderNamedType(typ aliasOrNamed, quoted bool) (result string, return m.renderType(a, quoted) case *types.Named: // Quoted mode for (alias of?) named type. - // WARN: Do not test with IsString here!! We only want to catch marshalers. - if !collect.IsAny(typ) && !collect.MaybeTextMarshaler(typ) { + // WARN: Do not test with IsAny/IsStringAlias here!! We only want to catch marshalers. + if collect.MaybeJSONMarshaler(typ) == collect.NonMarshaler && collect.MaybeTextMarshaler(typ) == collect.NonMarshaler { // No custom marshaling for this type. - switch u := a.Underlying().(type) { - case *types.Basic: + if u, ok := a.Underlying().(*types.Basic); ok { // Quoted mode for basic named type that is not a marshaler: delegate. return m.renderBasicType(u, quoted), false - case *types.TypeParam: - // Quoted mode for generic type that maps to typeparam: delegate. - return m.renderType(u, quoted) } } } @@ -242,6 +231,12 @@ func (m *module) renderNamedType(typ aliasOrNamed, quoted bool) (result string, // renderStructType outputs the TS representation // of the given anonymous struct type. func (m *module) renderStructType(typ *types.Struct) string { + if collect.MaybeJSONMarshaler(typ) != collect.NonMarshaler { + return "any" + } else if collect.MaybeTextMarshaler(typ) != collect.NonMarshaler { + return "string" + } + info := m.collector.Struct(typ) info.Collect() diff --git a/v3/internal/generator/service.go b/v3/internal/generator/service.go index 8d6323a21..fcbfa9447 100644 --- a/v3/internal/generator/service.go +++ b/v3/internal/generator/service.go @@ -33,11 +33,13 @@ func (generator *Generator) generateService(obj *types.TypeName) { } if info.IsEmpty() { - generator.logger.Infof( - "package %s: type %s: service has no valid exported methods, skipping", - obj.Pkg().Path(), - obj.Name(), - ) + if !info.HasInternalMethods { + generator.logger.Infof( + "package %s: type %s: service has no valid exported methods, skipping", + obj.Pkg().Path(), + obj.Name(), + ) + } success = true return } @@ -53,14 +55,6 @@ func (generator *Generator) generateService(obj *types.TypeName) { ) return - case generator.renderer.InternalFile(): - generator.logger.Errorf( - "package %s: type %s: service filename collides with internal models filename; please rename the type or choose a different filename for internal models", - obj.Pkg().Path(), - obj.Name(), - ) - return - case generator.renderer.IndexFile(): if !generator.options.NoIndex { generator.logger.Errorf( @@ -90,7 +84,12 @@ func (generator *Generator) generateService(obj *types.TypeName) { generator.logger.Errorf("%v", err) return } - defer file.Close() + defer func() { + if err := file.Close(); err != nil { + generator.logger.Errorf("%v", err) + success = false + } + }() // Render service code. err = generator.renderer.Service(file, info) diff --git a/v3/internal/generator/testcases/aliases/main.go b/v3/internal/generator/testcases/aliases/main.go index 902dfa9f0..7695d625c 100644 --- a/v3/internal/generator/testcases/aliases/main.go +++ b/v3/internal/generator/testcases/aliases/main.go @@ -4,6 +4,7 @@ import ( _ "embed" "log" + nobindingshere "github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here" "github.com/wailsapp/wails/v3/pkg/application" ) @@ -52,6 +53,39 @@ type GenericPerson[T any] struct { // Another class alias, but ordered after its aliased class. type StrangelyAliasedPerson = Person +// A generic alias that forwards to a type parameter. +// type GenericAlias[T any] = T + +// A generic alias that wraps a pointer type. +// type GenericPtrAlias[T any] = *GenericAlias[T] + +// A generic alias that wraps a map. +// type GenericMapAlias[T interface { +// comparable +// encoding.TextMarshaler +// }, U any] = map[T]U + +// A generic alias that wraps a generic struct. +// type GenericPersonAlias[T any] = GenericPerson[[]GenericPtrAlias[T]] + +// An alias that wraps a class through a non-typeparam alias. +// type IndirectPersonAlias = GenericPersonAlias[bool] + +// An alias that wraps a class through a typeparam alias. +// type TPIndirectPersonAlias = GenericAlias[GenericPerson[bool]] + +// A class whose fields have various aliased types. +// type AliasGroup struct { +// GAi GenericAlias[int] +// GAP GenericAlias[GenericPerson[bool]] +// GPAs GenericPtrAlias[[]string] +// GPAP GenericPtrAlias[GenericPerson[[]int]] +// GMA GenericMapAlias[struct{ encoding.TextMarshaler }, float32] +// GPA GenericPersonAlias[bool] +// IPA IndirectPersonAlias +// TPIPA TPIndirectPersonAlias +// } + // Get someone. func (GreetService) Get(aliasValue Alias) Person { return Person{"hello", aliasValue} @@ -67,6 +101,14 @@ func (GreetService) GetButAliased(p AliasedPerson) StrangelyAliasedPerson { return p } +func (GreetService) GetButForeignPrivateAlias() (_ nobindingshere.PrivatePerson) { + return +} + +// func (GreetService) GetButGenericAliases() (_ AliasGroup) { +// return +// } + // Greet a lot of unusual things. func (GreetService) Greet(EmptyAliasStruct, EmptyStruct) AliasStruct { return AliasStruct{} diff --git a/v3/internal/generator/testcases/complex_instantiations/bound_types.json b/v3/internal/generator/testcases/complex_instantiations/bound_types.json index ece1b9220..442ec1501 100644 --- a/v3/internal/generator/testcases/complex_instantiations/bound_types.json +++ b/v3/internal/generator/testcases/complex_instantiations/bound_types.json @@ -12,5 +12,5 @@ ".Service11", ".Service12", ".Service13", - "/other.Service14" + "/other.Service16" ] diff --git a/v3/internal/generator/testcases/complex_instantiations/main.go b/v3/internal/generator/testcases/complex_instantiations/main.go index 74e03ba6c..a934421c1 100644 --- a/v3/internal/generator/testcases/complex_instantiations/main.go +++ b/v3/internal/generator/testcases/complex_instantiations/main.go @@ -21,6 +21,10 @@ type Service10 struct{} type Service11 struct{} type Service12 struct{} type Service13 struct{} +type Service14 struct{} +type Service15 struct{} + +// type SimplifiedFactory[T any] = Factory[T, Service15] func main() { factory := NewFactory[Service1, Service2]() @@ -38,6 +42,7 @@ func main() { other.CustomNewService(Service7{}), other.ServiceInitialiser[Service8]()(&Service8{}), application.NewServiceWithOptions(&Service13{}, application.ServiceOptions{Name: "custom name"}), + // SimplifiedFactory[Service14]{}.Get(), other.LocalService, }, CustomNewServices[Service9, Service10]()...), diff --git a/v3/internal/generator/testcases/complex_instantiations/other/local.go b/v3/internal/generator/testcases/complex_instantiations/other/local.go index 99cf173d2..f08abb26a 100644 --- a/v3/internal/generator/testcases/complex_instantiations/other/local.go +++ b/v3/internal/generator/testcases/complex_instantiations/other/local.go @@ -2,6 +2,6 @@ package other import "github.com/wailsapp/wails/v3/pkg/application" -type Service14 int +type Service16 int -var LocalService = application.NewService(new(Service14)) +var LocalService = application.NewService(new(Service16)) diff --git a/v3/internal/generator/testcases/directives/bound_types.json b/v3/internal/generator/testcases/directives/bound_types.json new file mode 100644 index 000000000..62c02c0ca --- /dev/null +++ b/v3/internal/generator/testcases/directives/bound_types.json @@ -0,0 +1,5 @@ +[ + ".InternalService", + ".Service", + ".unexportedService" +] diff --git a/v3/internal/generator/testcases/directives/includes.go b/v3/internal/generator/testcases/directives/includes.go new file mode 100644 index 000000000..669d5305c --- /dev/null +++ b/v3/internal/generator/testcases/directives/includes.go @@ -0,0 +1,11 @@ +//wails:include js/test.js +//wails:include **:js/test_all.js +//wails:include *c:js/test_c.js +//wails:include *i:js/test_i.js +//wails:include j*:js/test_j.js +//wails:include jc:js/test_jc.js +//wails:include ji:js/test_ji.js +//wails:include t*:js/test_t.ts +//wails:include tc:js/test_tc.ts +//wails:include ti:js/test_ti.ts +package main diff --git a/v3/internal/generator/testcases/directives/internal.go b/v3/internal/generator/testcases/directives/internal.go new file mode 100644 index 000000000..86f06e02d --- /dev/null +++ b/v3/internal/generator/testcases/directives/internal.go @@ -0,0 +1,15 @@ +package main + +// An exported but internal model. +// +//wails:internal +type InternalModel struct { + Field string +} + +// An exported but internal service. +// +//wails:internal +type InternalService struct{} + +func (InternalService) Method(InternalModel) {} diff --git a/v3/internal/generator/testcases/directives/js/test.js b/v3/internal/generator/testcases/directives/js/test.js new file mode 100644 index 000000000..138385f53 --- /dev/null +++ b/v3/internal/generator/testcases/directives/js/test.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("everywhere"); diff --git a/v3/internal/generator/testcases/directives/js/test_all.js b/v3/internal/generator/testcases/directives/js/test_all.js new file mode 100644 index 000000000..19d5c2f42 --- /dev/null +++ b/v3/internal/generator/testcases/directives/js/test_all.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("everywhere again"); diff --git a/v3/internal/generator/testcases/directives/js/test_c.js b/v3/internal/generator/testcases/directives/js/test_c.js new file mode 100644 index 000000000..724e79e12 --- /dev/null +++ b/v3/internal/generator/testcases/directives/js/test_c.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("Classes"); diff --git a/v3/internal/generator/testcases/directives/js/test_i.js b/v3/internal/generator/testcases/directives/js/test_i.js new file mode 100644 index 000000000..442f20472 --- /dev/null +++ b/v3/internal/generator/testcases/directives/js/test_i.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("Interfaces"); diff --git a/v3/internal/generator/testcases/directives/js/test_j.js b/v3/internal/generator/testcases/directives/js/test_j.js new file mode 100644 index 000000000..b2f9c5edb --- /dev/null +++ b/v3/internal/generator/testcases/directives/js/test_j.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("JS"); diff --git a/v3/internal/generator/testcases/directives/js/test_jc.js b/v3/internal/generator/testcases/directives/js/test_jc.js new file mode 100644 index 000000000..ddf4920e5 --- /dev/null +++ b/v3/internal/generator/testcases/directives/js/test_jc.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("JS Classes"); diff --git a/v3/internal/generator/testcases/directives/js/test_ji.js b/v3/internal/generator/testcases/directives/js/test_ji.js new file mode 100644 index 000000000..36e28f09b --- /dev/null +++ b/v3/internal/generator/testcases/directives/js/test_ji.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("JS Interfaces"); diff --git a/v3/internal/generator/testcases/directives/js/test_t.ts b/v3/internal/generator/testcases/directives/js/test_t.ts new file mode 100644 index 000000000..253d3f2f6 --- /dev/null +++ b/v3/internal/generator/testcases/directives/js/test_t.ts @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("TS"); diff --git a/v3/internal/generator/testcases/directives/js/test_tc.ts b/v3/internal/generator/testcases/directives/js/test_tc.ts new file mode 100644 index 000000000..66b739d3a --- /dev/null +++ b/v3/internal/generator/testcases/directives/js/test_tc.ts @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("TS Classes"); diff --git a/v3/internal/generator/testcases/directives/js/test_ti.ts b/v3/internal/generator/testcases/directives/js/test_ti.ts new file mode 100644 index 000000000..7400e97aa --- /dev/null +++ b/v3/internal/generator/testcases/directives/js/test_ti.ts @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("TS Interfaces"); diff --git a/v3/internal/generator/testcases/directives/main.go b/v3/internal/generator/testcases/directives/main.go new file mode 100644 index 000000000..ce8a2b3ff --- /dev/null +++ b/v3/internal/generator/testcases/directives/main.go @@ -0,0 +1,60 @@ +//wails:inject console.log("Hello everywhere!"); +//wails:inject **:console.log("Hello everywhere again!"); +//wails:inject *c:console.log("Hello Classes!"); +//wails:inject *i:console.log("Hello Interfaces!"); +//wails:inject j*:console.log("Hello JS!"); +//wails:inject jc:console.log("Hello JS Classes!"); +//wails:inject ji:console.log("Hello JS Interfaces!"); +//wails:inject t*:console.log("Hello TS!"); +//wails:inject tc:console.log("Hello TS Classes!"); +//wails:inject ti:console.log("Hello TS Interfaces!"); +package main + +import ( + _ "embed" + "log" + + "github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage" + "github.com/wailsapp/wails/v3/pkg/application" +) + +type IgnoredType struct { + Field int +} + +//wails:inject j*:/** +//wails:inject j*: * @param {string} arg +//wails:inject j*: * @returns {Promise} +//wails:inject j*: */ +//wails:inject j*:export async function CustomMethod(arg) { +//wails:inject t*:export async function CustomMethod(arg: string): Promise { +//wails:inject await InternalMethod("Hello " + arg + "!"); +//wails:inject } +type Service struct{} + +func (*Service) VisibleMethod(otherpackage.Dummy) {} + +//wails:ignore +func (*Service) IgnoredMethod(IgnoredType) {} + +//wails:internal +func (*Service) InternalMethod(string) {} + +func main() { + app := application.New(application.Options{ + Services: []application.Service{ + application.NewService(&Service{}), + application.NewService(&unexportedService{}), + application.NewService(&InternalService{}), + }, + }) + + app.NewWebviewWindow() + + err := app.Run() + + if err != nil { + log.Fatal(err) + } + +} diff --git a/v3/internal/generator/testcases/directives/otherpackage/dummy.go b/v3/internal/generator/testcases/directives/otherpackage/dummy.go new file mode 100644 index 000000000..e8f688f05 --- /dev/null +++ b/v3/internal/generator/testcases/directives/otherpackage/dummy.go @@ -0,0 +1,5 @@ +//wails:include jc:js/*_j*.js +//wails:include tc:js/*_t*.ts +package otherpackage + +type Dummy struct{} diff --git a/v3/internal/generator/testcases/directives/otherpackage/js/test_j.js b/v3/internal/generator/testcases/directives/otherpackage/js/test_j.js new file mode 100644 index 000000000..2166d33b6 --- /dev/null +++ b/v3/internal/generator/testcases/directives/otherpackage/js/test_j.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "../service.js"; + +CustomMethod("JS"); diff --git a/v3/internal/generator/testcases/directives/otherpackage/js/test_jc.js b/v3/internal/generator/testcases/directives/otherpackage/js/test_jc.js new file mode 100644 index 000000000..338898726 --- /dev/null +++ b/v3/internal/generator/testcases/directives/otherpackage/js/test_jc.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "../service.js"; + +CustomMethod("JS Classes"); diff --git a/v3/internal/generator/testcases/directives/otherpackage/js/test_t.ts b/v3/internal/generator/testcases/directives/otherpackage/js/test_t.ts new file mode 100644 index 000000000..6703820f1 --- /dev/null +++ b/v3/internal/generator/testcases/directives/otherpackage/js/test_t.ts @@ -0,0 +1,3 @@ +import { CustomMethod } from "../service.js"; + +CustomMethod("TS"); diff --git a/v3/internal/generator/testcases/directives/otherpackage/js/test_tc.ts b/v3/internal/generator/testcases/directives/otherpackage/js/test_tc.ts new file mode 100644 index 000000000..15d2994e9 --- /dev/null +++ b/v3/internal/generator/testcases/directives/otherpackage/js/test_tc.ts @@ -0,0 +1,3 @@ +import { CustomMethod } from "../service.js"; + +CustomMethod("TS Classes"); diff --git a/v3/internal/generator/testcases/directives/unexported.go b/v3/internal/generator/testcases/directives/unexported.go new file mode 100644 index 000000000..56708c5ae --- /dev/null +++ b/v3/internal/generator/testcases/directives/unexported.go @@ -0,0 +1,11 @@ +package main + +// An unexported model. +type unexportedModel struct { + Field string +} + +// An unexported service. +type unexportedService struct{} + +func (unexportedService) Method(unexportedModel) {} diff --git a/v3/internal/generator/testcases/enum/main.go b/v3/internal/generator/testcases/enum/main.go index a0329e7db..ba4eea5a8 100644 --- a/v3/internal/generator/testcases/enum/main.go +++ b/v3/internal/generator/testcases/enum/main.go @@ -19,6 +19,19 @@ const ( Dr Title = "Dr" ) +// Age is an integer with some predefined values +type Age = int + +const ( + NewBorn Age = 0 + Teenager Age = 12 + YoungAdult Age = 18 + + // Oh no, some grey hair! + MiddleAged Age = 50 + Mathusalem Age = 1000 // Unbelievable! +) + // GreetService is great type GreetService struct { SomeVariable int @@ -30,6 +43,7 @@ type GreetService struct { type Person struct { Title Title Name string + Age Age } // Greet does XYZ diff --git a/v3/internal/generator/testcases/map_keys/bound_types.json b/v3/internal/generator/testcases/map_keys/bound_types.json new file mode 100644 index 000000000..1a27d889e --- /dev/null +++ b/v3/internal/generator/testcases/map_keys/bound_types.json @@ -0,0 +1,3 @@ +[ + ".Service" +] diff --git a/v3/internal/generator/testcases/map_keys/main.go b/v3/internal/generator/testcases/map_keys/main.go new file mode 100644 index 000000000..1ed2608a3 --- /dev/null +++ b/v3/internal/generator/testcases/map_keys/main.go @@ -0,0 +1,307 @@ +package main + +import ( + _ "embed" + "encoding" + "encoding/json" + "log" + + "github.com/wailsapp/wails/v3/pkg/application" +) + +type Service struct{} + +type NonTextMarshaler struct{} + +type ValueTextMarshaler struct{} + +func (ValueTextMarshaler) MarshalText() ([]byte, error) { return nil, nil } + +type PointerTextMarshaler struct{} + +func (*PointerTextMarshaler) MarshalText() ([]byte, error) { return nil, nil } + +type JsonTextMarshaler struct{} + +func (JsonTextMarshaler) MarshalJSON() ([]byte, error) { return nil, nil } +func (JsonTextMarshaler) MarshalText() ([]byte, error) { return nil, nil } + +type CustomInterface interface { + MarshalText() ([]byte, error) +} + +type EmbeddedInterface interface { + encoding.TextMarshaler +} + +type EmbeddedInterfaces interface { + json.Marshaler + encoding.TextMarshaler +} + +type BasicConstraint interface { + ~int | ~int8 | ~int16 | ~int32 | ~int64 | + ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | + ~string +} + +type BadTildeConstraint interface { + int | ~struct{} | string +} + +type GoodTildeConstraint interface { + int | ~struct{} | string + MarshalText() ([]byte, error) +} + +type NonBasicConstraint interface { + ValueTextMarshaler | *PointerTextMarshaler +} + +type PointableConstraint interface { + ValueTextMarshaler | PointerTextMarshaler +} + +type MixedConstraint interface { + uint | ~string | ValueTextMarshaler | *PointerTextMarshaler +} + +type InterfaceConstraint interface { + comparable + encoding.TextMarshaler +} + +type PointerConstraint[T comparable] interface { + *T + encoding.TextMarshaler +} + +type EmbeddedValue struct{ ValueTextMarshaler } +type EmbeddedValuePtr struct{ *ValueTextMarshaler } +type EmbeddedPointer struct{ PointerTextMarshaler } +type EmbeddedPointerPtr struct{ *PointerTextMarshaler } + +type EmbeddedCustomInterface struct{ CustomInterface } +type EmbeddedOriginalInterface struct{ encoding.TextMarshaler } + +type WrongType bool +type WrongAlias = bool +type StringType string +type StringAlias = string +type IntType int +type IntAlias = int + +type ValueType ValueTextMarshaler +type ValuePtrType *ValueTextMarshaler +type ValueAlias = ValueTextMarshaler +type ValuePtrAlias = *ValueTextMarshaler + +type PointerType PointerTextMarshaler +type PointerPtrType *PointerTextMarshaler +type PointerAlias = PointerTextMarshaler +type PointerPtrAlias = *PointerTextMarshaler + +type InterfaceType encoding.TextMarshaler +type InterfacePtrType *encoding.TextMarshaler +type InterfaceAlias = encoding.TextMarshaler +type InterfacePtrAlias = *encoding.TextMarshaler + +// type ComparableCstrAlias[R comparable] = R +// type ComparableCstrPtrAlias[R comparable] = *R +// type BasicCstrAlias[S BasicConstraint] = S +// type BasicCstrPtrAlias[S BasicConstraint] = *S +// type BadTildeCstrAlias[T BadTildeConstraint] = T +// type BadTildeCstrPtrAlias[T BadTildeConstraint] = *T +// type GoodTildeCstrAlias[U GoodTildeConstraint] = U +// type GoodTildeCstrPtrAlias[U GoodTildeConstraint] = *U +// type NonBasicCstrAlias[V NonBasicConstraint] = V +// type NonBasicCstrPtrAlias[V NonBasicConstraint] = *V +// type PointableCstrAlias[W PointableConstraint] = W +// type PointableCstrPtrAlias[W PointableConstraint] = *W +// type MixedCstrAlias[X MixedConstraint] = X +// type MixedCstrPtrAlias[X MixedConstraint] = *X +// type InterfaceCstrAlias[Y InterfaceConstraint] = Y +// type InterfaceCstrPtrAlias[Y InterfaceConstraint] = *Y +// type PointerCstrAlias[R comparable, Z PointerConstraint[R]] = Z +// type PointerCstrPtrAlias[R comparable, Z PointerConstraint[R]] = *Z + +type Maps[R comparable, S BasicConstraint, T BadTildeConstraint, U GoodTildeConstraint, V NonBasicConstraint, W PointableConstraint, X MixedConstraint, Y InterfaceConstraint, Z PointerConstraint[R]] struct { + Bool map[bool]int // Reject + Int map[int]int // Accept + Uint map[uint]int // Accept + Float map[float32]int // Reject + Complex map[complex64]int // Reject + Byte map[byte]int // Accept + Rune map[rune]int // Accept + String map[string]int // Accept + + IntPtr map[*int]int // Reject + UintPtr map[*uint]int // Reject + FloatPtr map[*float32]int // Reject + ComplexPtr map[*complex64]int // Reject + StringPtr map[*string]int // Reject + + NTM map[NonTextMarshaler]int // Reject + NTMPtr map[*NonTextMarshaler]int // Reject + VTM map[ValueTextMarshaler]int // Accept + VTMPtr map[*ValueTextMarshaler]int // Accept + PTM map[PointerTextMarshaler]int // Reject + PTMPtr map[*PointerTextMarshaler]int // Accept + JTM map[JsonTextMarshaler]int // Accept, hide + JTMPtr map[*JsonTextMarshaler]int // Accept, hide + + A map[any]int // Reject + APtr map[*any]int // Reject + TM map[encoding.TextMarshaler]int // Accept, hide + TMPtr map[*encoding.TextMarshaler]int // Reject + CI map[CustomInterface]int // Accept, hide + CIPtr map[*CustomInterface]int // Reject + EI map[EmbeddedInterface]int // Accept, hide + EIPtr map[*EmbeddedInterface]int // Reject + + EV map[EmbeddedValue]int // Accept + EVPtr map[*EmbeddedValue]int // Accept + EVP map[EmbeddedValuePtr]int // Accept + EVPPtr map[*EmbeddedValuePtr]int // Accept + EP map[EmbeddedPointer]int // Reject + EPPtr map[*EmbeddedPointer]int // Accept + EPP map[EmbeddedPointerPtr]int // Accept + EPPPtr map[*EmbeddedPointerPtr]int // Accept + + ECI map[EmbeddedCustomInterface]int // Accept + ECIPtr map[*EmbeddedCustomInterface]int // Accept + EOI map[EmbeddedOriginalInterface]int // Accept + EOIPtr map[*EmbeddedOriginalInterface]int // Accept + + WT map[WrongType]int // Reject + WA map[WrongAlias]int // Reject + ST map[StringType]int // Accept + SA map[StringAlias]int // Accept + IntT map[IntType]int // Accept + IntA map[IntAlias]int // Accept + + VT map[ValueType]int // Reject + VTPtr map[*ValueType]int // Reject + VPT map[ValuePtrType]int // Reject + VPTPtr map[*ValuePtrType]int // Reject + VA map[ValueAlias]int // Accept + VAPtr map[*ValueAlias]int // Accept + VPA map[ValuePtrAlias]int // Accept, hide + VPAPtr map[*ValuePtrAlias]int // Reject + + PT map[PointerType]int // Reject + PTPtr map[*PointerType]int // Reject + PPT map[PointerPtrType]int // Reject + PPTPtr map[*PointerPtrType]int // Reject + PA map[PointerAlias]int // Reject + PAPtr map[*PointerAlias]int // Accept + PPA map[PointerPtrAlias]int // Accept, hide + PPAPtr map[*PointerPtrAlias]int // Reject + + IT map[InterfaceType]int // Accept, hide + ITPtr map[*InterfaceType]int // Reject + IPT map[InterfacePtrType]int // Reject + IPTPtr map[*InterfacePtrType]int // Reject + IA map[InterfaceAlias]int // Accept, hide + IAPtr map[*InterfaceAlias]int // Reject + IPA map[InterfacePtrAlias]int // Reject + IPAPtr map[*InterfacePtrAlias]int // Reject + + TPR map[R]int // Soft reject + TPRPtr map[*R]int // Soft reject + TPS map[S]int // Accept, hide + TPSPtr map[*S]int // Soft reject + TPT map[T]int // Soft reject + TPTPtr map[*T]int // Soft reject + TPU map[U]int // Accept, hide + TPUPtr map[*U]int // Soft reject + TPV map[V]int // Accept, hide + TPVPtr map[*V]int // Soft reject + TPW map[W]int // Soft reject + TPWPtr map[*W]int // Accept, hide + TPX map[X]int // Accept, hide + TPXPtr map[*X]int // Soft reject + TPY map[Y]int // Accept, hide + TPYPtr map[*Y]int // Soft reject + TPZ map[Z]int // Accept, hide + TPZPtr map[*Z]int // Soft reject + + // GAR map[ComparableCstrAlias[R]]int // Soft reject + // GARPtr map[ComparableCstrPtrAlias[R]]int // Soft reject + // GAS map[BasicCstrAlias[S]]int // Accept, hide + // GASPtr map[BasicCstrPtrAlias[S]]int // Soft reject + // GAT map[BadTildeCstrAlias[T]]int // Soft reject + // GATPtr map[BadTildeCstrPtrAlias[T]]int // Soft reject + // GAU map[GoodTildeCstrAlias[U]]int // Accept, hide + // GAUPtr map[GoodTildeCstrPtrAlias[U]]int // Soft reject + // GAV map[NonBasicCstrAlias[V]]int // Accept, hide + // GAVPtr map[NonBasicCstrPtrAlias[V]]int // Soft reject + // GAW map[PointableCstrAlias[W]]int // Soft reject + // GAWPtr map[PointableCstrPtrAlias[W]]int // Accept, hide + // GAX map[MixedCstrAlias[X]]int // Accept, hide + // GAXPtr map[MixedCstrPtrAlias[X]]int // Soft reject + // GAY map[InterfaceCstrAlias[Y]]int // Accept, hide + // GAYPtr map[InterfaceCstrPtrAlias[Y]]int // Soft reject + // GAZ map[PointerCstrAlias[R, Z]]int // Accept, hide + // GAZPtr map[PointerCstrPtrAlias[R, Z]]int // Soft reject + + // GACi map[ComparableCstrAlias[int]]int // Accept, hide + // GACV map[ComparableCstrAlias[ValueTextMarshaler]]int // Accept + // GACP map[ComparableCstrAlias[PointerTextMarshaler]]int // Reject + // GACiPtr map[ComparableCstrPtrAlias[int]]int // Reject + // GACVPtr map[ComparableCstrPtrAlias[ValueTextMarshaler]]int // Accept, hide + // GACPPtr map[ComparableCstrPtrAlias[PointerTextMarshaler]]int // Accept, hide + // GABi map[BasicCstrAlias[int]]int // Accept, hide + // GABs map[BasicCstrAlias[string]]int // Accept + // GABiPtr map[BasicCstrPtrAlias[int]]int // Reject + // GABT map[BadTildeCstrAlias[struct{}]]int // Reject + // GABTPtr map[BadTildeCstrPtrAlias[struct{}]]int // Reject + // GAGT map[GoodTildeCstrAlias[ValueTextMarshaler]]int // Accept + // GAGTPtr map[GoodTildeCstrPtrAlias[ValueTextMarshaler]]int // Accept, hide + // GANBV map[NonBasicCstrAlias[ValueTextMarshaler]]int // Accept + // GANBP map[NonBasicCstrAlias[*PointerTextMarshaler]]int // Accept, hide + // GANBVPtr map[NonBasicCstrPtrAlias[ValueTextMarshaler]]int // Accept, hide + // GANBPPtr map[NonBasicCstrPtrAlias[*PointerTextMarshaler]]int // Reject + // GAPlV1 map[PointableCstrAlias[ValueTextMarshaler]]int // Accept + // GAPlV2 map[*PointableCstrAlias[ValueTextMarshaler]]int // Accept + // GAPlP1 map[PointableCstrAlias[PointerTextMarshaler]]int // Reject + // GAPlP2 map[*PointableCstrAlias[PointerTextMarshaler]]int // Accept + // GAPlVPtr map[PointableCstrPtrAlias[ValueTextMarshaler]]int // Accept, hide + // GAPlPPtr map[PointableCstrPtrAlias[PointerTextMarshaler]]int // Accept, hide + // GAMi map[MixedCstrAlias[uint]]int // Accept, hide + // GAMS map[MixedCstrAlias[StringType]]int // Accept + // GAMV map[MixedCstrAlias[ValueTextMarshaler]]int // Accept + // GAMSPtr map[MixedCstrPtrAlias[StringType]]int // Reject + // GAMVPtr map[MixedCstrPtrAlias[ValueTextMarshaler]]int // Accept, hide + // GAII map[InterfaceCstrAlias[encoding.TextMarshaler]]int // Accept, hide + // GAIV map[InterfaceCstrAlias[ValueTextMarshaler]]int // Accept + // GAIP map[InterfaceCstrAlias[*PointerTextMarshaler]]int // Accept, hide + // GAIIPtr map[InterfaceCstrPtrAlias[encoding.TextMarshaler]]int // Reject + // GAIVPtr map[InterfaceCstrPtrAlias[ValueTextMarshaler]]int // Accept, hide + // GAIPPtr map[InterfaceCstrPtrAlias[*PointerTextMarshaler]]int // Reject + // GAPrV map[PointerCstrAlias[ValueTextMarshaler, *ValueTextMarshaler]]int // Accept, hide + // GAPrP map[PointerCstrAlias[PointerTextMarshaler, *PointerTextMarshaler]]int // Accept, hide + // GAPrVPtr map[PointerCstrPtrAlias[ValueTextMarshaler, *ValueTextMarshaler]]int // Reject + // GAPrPPtr map[PointerCstrPtrAlias[PointerTextMarshaler, *PointerTextMarshaler]]int // Reject +} + +func (*Service) Method() (_ Maps[PointerTextMarshaler, int, int, ValueTextMarshaler, *PointerTextMarshaler, ValueTextMarshaler, StringType, ValueTextMarshaler, *PointerTextMarshaler]) { + return +} + +func main() { + app := application.New(application.Options{ + Services: []application.Service{ + application.NewService(&Service{}), + }, + }) + + app.NewWebviewWindow() + + err := app.Run() + + if err != nil { + log.Fatal(err) + } + +} diff --git a/v3/internal/generator/testcases/marshalers/bound_types.json b/v3/internal/generator/testcases/marshalers/bound_types.json new file mode 100644 index 000000000..1a27d889e --- /dev/null +++ b/v3/internal/generator/testcases/marshalers/bound_types.json @@ -0,0 +1,3 @@ +[ + ".Service" +] diff --git a/v3/internal/generator/testcases/marshalers/main.go b/v3/internal/generator/testcases/marshalers/main.go new file mode 100644 index 000000000..7bee8c66a --- /dev/null +++ b/v3/internal/generator/testcases/marshalers/main.go @@ -0,0 +1,209 @@ +package main + +import ( + _ "embed" + "encoding" + "encoding/json" + "log" + + "github.com/wailsapp/wails/v3/pkg/application" +) + +type Service struct{} + +// class {} +type NonMarshaler struct{} + +// any +type ValueJsonMarshaler struct{} + +func (ValueJsonMarshaler) MarshalJSON() ([]byte, error) { return nil, nil } + +// any +type PointerJsonMarshaler struct{} + +func (*PointerJsonMarshaler) MarshalJSON() ([]byte, error) { return nil, nil } + +// string +type ValueTextMarshaler struct{} + +func (ValueTextMarshaler) MarshalText() ([]byte, error) { return nil, nil } + +// string +type PointerTextMarshaler struct{} + +func (*PointerTextMarshaler) MarshalText() ([]byte, error) { return nil, nil } + +// any +type ValueMarshaler struct{} + +func (ValueMarshaler) MarshalJSON() ([]byte, error) { return nil, nil } +func (ValueMarshaler) MarshalText() ([]byte, error) { return nil, nil } + +// any +type PointerMarshaler struct{} + +func (*PointerMarshaler) MarshalJSON() ([]byte, error) { return nil, nil } +func (*PointerMarshaler) MarshalText() ([]byte, error) { return nil, nil } + +// any +type UnderlyingJsonMarshaler struct{ json.Marshaler } + +// string +type UnderlyingTextMarshaler struct{ encoding.TextMarshaler } + +// any +type UnderlyingMarshaler struct { + json.Marshaler + encoding.TextMarshaler +} + +type customJsonMarshaler interface { + MarshalJSON() ([]byte, error) +} + +type customTextMarshaler interface { + MarshalText() ([]byte, error) +} + +type customMarshaler interface { + MarshalJSON() ([]byte, error) + MarshalText() ([]byte, error) +} + +// struct{} +type AliasNonMarshaler = struct{} + +// any +type AliasJsonMarshaler = struct{ json.Marshaler } + +// string +type AliasTextMarshaler = struct{ encoding.TextMarshaler } + +// any +type AliasMarshaler = struct { + json.Marshaler + encoding.TextMarshaler +} + +// any +type ImplicitJsonMarshaler UnderlyingJsonMarshaler + +// string +type ImplicitTextMarshaler UnderlyingTextMarshaler + +// any +type ImplicitMarshaler UnderlyingMarshaler + +// string +type ImplicitNonJson UnderlyingMarshaler + +func (ImplicitNonJson) MarshalJSON() {} + +// any +type ImplicitNonText UnderlyingMarshaler + +func (ImplicitNonText) MarshalText() {} + +// class{ Marshaler, TextMarshaler } +type ImplicitNonMarshaler UnderlyingMarshaler + +func (ImplicitNonMarshaler) MarshalJSON() {} +func (ImplicitNonMarshaler) MarshalText() {} + +// any +type ImplicitJsonButText UnderlyingJsonMarshaler + +func (ImplicitJsonButText) MarshalText() ([]byte, error) { return nil, nil } + +// any +type ImplicitTextButJson UnderlyingTextMarshaler + +func (ImplicitTextButJson) MarshalJSON() ([]byte, error) { return nil, nil } + +type Data struct { + NM NonMarshaler + NMPtr *NonMarshaler // NonMarshaler | null + + VJM ValueJsonMarshaler + VJMPtr *ValueJsonMarshaler // ValueJsonMarshaler | null + PJM PointerJsonMarshaler + PJMPtr *PointerJsonMarshaler // PointerJsonMarshaler | null + + VTM ValueTextMarshaler + VTMPtr *ValueTextMarshaler // ValueTextMarshaler | null + PTM PointerTextMarshaler + PTMPtr *PointerTextMarshaler // PointerTextMarshaler | null + + VM ValueMarshaler + VMPtr *ValueMarshaler // ValueMarshaler | null + PM PointerMarshaler + PMPtr *PointerMarshaler // PointerMarshaler | null + + UJM UnderlyingJsonMarshaler + UJMPtr *UnderlyingJsonMarshaler // UnderlyingJsonMarshaler | null + UTM UnderlyingTextMarshaler + UTMPtr *UnderlyingTextMarshaler // UnderlyingTextMarshaler | null + UM UnderlyingMarshaler + UMPtr *UnderlyingMarshaler // UnderlyingMarshaler | null + + JM struct{ json.Marshaler } // any + JMPtr *struct{ json.Marshaler } // any | null + TM struct{ encoding.TextMarshaler } // string + TMPtr *struct{ encoding.TextMarshaler } // string | null + CJM struct{ customJsonMarshaler } // any + CJMPtr *struct{ customJsonMarshaler } // any | null + CTM struct{ customTextMarshaler } // string + CTMPtr *struct{ customTextMarshaler } // string | null + CM struct{ customMarshaler } // any + CMPtr *struct{ customMarshaler } // any | null + + ANM AliasNonMarshaler + ANMPtr *AliasNonMarshaler // AliasNonMarshaler | null + AJM AliasJsonMarshaler + AJMPtr *AliasJsonMarshaler // AliasJsonMarshaler | null + ATM AliasTextMarshaler + ATMPtr *AliasTextMarshaler // AliasTextMarshaler | null + AM AliasMarshaler + AMPtr *AliasMarshaler // AliasMarshaler | null + + ImJM ImplicitJsonMarshaler + ImJMPtr *ImplicitJsonMarshaler // ImplicitJsonMarshaler | null + ImTM ImplicitTextMarshaler + ImTMPtr *ImplicitTextMarshaler // ImplicitTextMarshaler | null + ImM ImplicitMarshaler + ImMPtr *ImplicitMarshaler // ImplicitMarshaler | null + + ImNJ ImplicitNonJson + ImNJPtr *ImplicitNonJson // ImplicitNonJson | null + ImNT ImplicitNonText + ImNTPtr *ImplicitNonText // ImplicitNonText | null + ImNM ImplicitNonMarshaler + ImNMPtr *ImplicitNonMarshaler // ImplicitNonMarshaler | null + + ImJbT ImplicitJsonButText + ImJbTPtr *ImplicitJsonButText // ImplicitJsonButText | null + ImTbJ ImplicitTextButJson + ImTbJPtr *ImplicitTextButJson // ImplicitTextButJson | null +} + +func (*Service) Method() (_ Data) { + return +} + +func main() { + app := application.New(application.Options{ + Services: []application.Service{ + application.NewService(&Service{}), + }, + }) + + app.NewWebviewWindow() + + err := app.Run() + + if err != nil { + log.Fatal(err) + } + +} diff --git a/v3/internal/generator/testcases/no_bindings_here/person.go b/v3/internal/generator/testcases/no_bindings_here/person.go index 5123c8b80..b0b6f941d 100644 --- a/v3/internal/generator/testcases/no_bindings_here/person.go +++ b/v3/internal/generator/testcases/no_bindings_here/person.go @@ -10,14 +10,14 @@ type Person struct { } // Impersonator gets their fields from other people. -type Impersonator other.OtherPerson[int] +type Impersonator = other.OtherPerson[int] // HowDifferent is a curious kind of person // that lets other people decide how they are different. type HowDifferent[How any] other.OtherPerson[map[string]How] // PrivatePerson gets their fields from hidden sources. -type PrivatePerson personImpl +type PrivatePerson = personImpl type personImpl struct { // Nickname conceals a person's identity. diff --git a/v3/internal/generator/testcases/struct_literal_non_pointer_single/main.go b/v3/internal/generator/testcases/struct_literal_non_pointer_single/main.go index 0f73b8976..0afc8d3e1 100644 --- a/v3/internal/generator/testcases/struct_literal_non_pointer_single/main.go +++ b/v3/internal/generator/testcases/struct_literal_non_pointer_single/main.go @@ -174,7 +174,7 @@ func (GreetService) MapIntInt(in map[int]int) { func (GreetService) PointerMapIntInt(in *map[int]int) { } -func (GreetService) MapIntPointerInt(in map[*int]int) { +func (GreetService) MapIntIntPointer(in map[int]*int) { } func (GreetService) MapIntSliceInt(in map[int][]int) { diff --git a/v3/internal/generator/testcases/struct_literal_single/main.go b/v3/internal/generator/testcases/struct_literal_single/main.go index 2a8c75aa9..b560bff23 100644 --- a/v3/internal/generator/testcases/struct_literal_single/main.go +++ b/v3/internal/generator/testcases/struct_literal_single/main.go @@ -174,7 +174,7 @@ func (*GreetService) MapIntInt(in map[int]int) { func (*GreetService) PointerMapIntInt(in *map[int]int) { } -func (*GreetService) MapIntPointerInt(in map[*int]int) { +func (*GreetService) MapIntIntPointer(in map[int]*int) { } func (*GreetService) MapIntSliceInt(in map[int][]int) { diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/encoding/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/encoding/index.js new file mode 100644 index 000000000..cf48d86db --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/encoding/index.js @@ -0,0 +1,13 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as $models from "./models.js"; + +/** + * TextMarshaler is the interface implemented by an object that can + * marshal itself into a textual form. + * + * MarshalText encodes the receiver into UTF-8-encoded text and returns the result. + * @typedef {$models.TextMarshaler} TextMarshaler + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/encoding/json/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/encoding/json/index.js new file mode 100644 index 000000000..22f1fd904 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/encoding/json/index.js @@ -0,0 +1,11 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as $models from "./models.js"; + +/** + * Marshaler is the interface implemented by types that + * can marshal themselves into valid JSON. + * @typedef {$models.Marshaler} Marshaler + */ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.ts b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/encoding/json/models.js similarity index 59% rename from v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.ts rename to v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/encoding/json/models.js index b2b49ffa6..b7e840816 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.ts +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/encoding/json/models.js @@ -1,3 +1,4 @@ +// @ts-check // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT @@ -5,8 +6,8 @@ // @ts-ignore: Unused imports import {Create as $Create} from "/wails/runtime.js"; -export type Alias = Cyclic | null; - -export type Cyclic = { [_: string]: Alias }[]; - -export type GenericCyclic = {"X": GenericCyclic | null, "Y": (T | null)[]}[]; +/** + * Marshaler is the interface implemented by types that + * can marshal themselves into valid JSON. + * @typedef {any} Marshaler + */ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.ts b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/encoding/models.js similarity index 51% rename from v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.ts rename to v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/encoding/models.js index 335543dbb..bbabe728a 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.ts +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/encoding/models.js @@ -1,3 +1,4 @@ +// @ts-check // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT @@ -5,18 +6,10 @@ // @ts-ignore: Unused imports import {Create as $Create} from "/wails/runtime.js"; -export enum Title { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero = "", - - /** - * Mister is a title - */ - Mister = "Mr", - Miss = "Miss", - Ms = "Ms", - Mrs = "Mrs", - Dr = "Dr", -}; +/** + * TextMarshaler is the interface implemented by an object that can + * marshal itself into a textual form. + * + * MarshalText encodes the receiver into UTF-8-encoded text and returns the result. + * @typedef {any} TextMarshaler + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.js index 6a281186a..761df70f4 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.js @@ -13,7 +13,11 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as nobindingshere$0 from "../no_bindings_here/models.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; /** * Get someone. @@ -56,6 +60,18 @@ export function GetButDifferent() { return $typingPromise; } +/** + * @returns {Promise & { cancel(): void }} + */ +export function GetButForeignPrivateAlias() { + let $resultPromise = /** @type {any} */($Call.ByID(643456960)); + let $typingPromise = /** @type {any} */($resultPromise.then(($result) => { + return $$createType2($result); + })); + $typingPromise.cancel = $resultPromise.cancel.bind($resultPromise); + return $typingPromise; +} + /** * Greet a lot of unusual things. * @param {$models.EmptyAliasStruct} $0 @@ -65,7 +81,7 @@ export function GetButDifferent() { export function Greet($0, $1) { let $resultPromise = /** @type {any} */($Call.ByID(1411160069, $0, $1)); let $typingPromise = /** @type {any} */($resultPromise.then(($result) => { - return $$createType5($result); + return $$createType6($result); })); $typingPromise.cancel = $resultPromise.cancel.bind($resultPromise); return $typingPromise; @@ -74,12 +90,13 @@ export function Greet($0, $1) { // Private type creation functions const $$createType0 = $models.Person.createFrom; const $$createType1 = $models.GenericPerson.createFrom($Create.Any); -const $$createType2 = $Create.Array($Create.Any); +const $$createType2 = nobindingshere$0.personImpl.createFrom; const $$createType3 = $Create.Array($Create.Any); -const $$createType4 = $Create.Struct({ - "NoMoreIdeas": $$createType3, -}); +const $$createType4 = $Create.Array($Create.Any); const $$createType5 = $Create.Struct({ - "Foo": $$createType2, - "Other": $$createType4, + "NoMoreIdeas": $$createType4, +}); +const $$createType6 = $Create.Struct({ + "Foo": $$createType3, + "Other": $$createType5, }); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.js index 130c30a09..10aa9e917 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.js @@ -7,4 +7,33 @@ export { GreetService }; -export * from "./models.js"; +export { + AliasedPerson, + EmptyStruct, + GenericPerson, + Person, + StrangelyAliasedPerson +} from "./models.js"; + +import * as $models from "./models.js"; + +/** + * A nice type Alias. + * @typedef {$models.Alias} Alias + */ + +/** + * A struct alias. + * This should be rendered as a typedef or interface in every mode. + * @typedef {$models.AliasStruct} AliasStruct + */ + +/** + * An empty struct alias. + * @typedef {$models.EmptyAliasStruct} EmptyAliasStruct + */ + +/** + * Another struct alias. + * @typedef {$models.OtherAliasStruct} OtherAliasStruct + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.js deleted file mode 100644 index 1dcc6d53b..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.js +++ /dev/null @@ -1,166 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -/** - * A nice type Alias. - * @typedef {number} Alias - */ - -/** - * A struct alias. - * This should be rendered as a typedef or interface in every mode. - * @typedef {Object} AliasStruct - * @property {number[]} Foo - A field with a comment. - * @property {string} [Bar] - Definitely not Foo. - * @property {string} [Baz] - Definitely not Foo. - * @property {OtherAliasStruct} Other - A nested alias struct. - */ - -/** - * An empty struct alias. - * @typedef { { - * } } EmptyAliasStruct - */ - -/** - * An empty struct. - */ -export class EmptyStruct { - /** - * Creates a new EmptyStruct instance. - * @param {Partial} [$$source = {}] - The source object to create the EmptyStruct. - */ - constructor($$source = {}) { - - Object.assign(this, $$source); - } - - /** - * Creates a new EmptyStruct instance from a string or object. - * @param {any} [$$source = {}] - * @returns {EmptyStruct} - */ - static createFrom($$source = {}) { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new EmptyStruct(/** @type {Partial} */($$parsedSource)); - } -} - -/** - * A generic struct containing an alias. - * @template T - */ -export class GenericPerson { - /** - * Creates a new GenericPerson instance. - * @param {Partial>} [$$source = {}] - The source object to create the GenericPerson. - */ - constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * @member - * @type {T | null} - */ - this["Name"] = null; - } - if (!("AliasedField" in $$source)) { - /** - * @member - * @type {Alias} - */ - this["AliasedField"] = 0; - } - - Object.assign(this, $$source); - } - - /** - * Given creation functions for each type parameter, - * returns a creation function for a concrete instance - * of the generic class GenericPerson. - * @template T - * @param {(source: any) => T} $$createParamT - * @returns {($$source?: any) => GenericPerson} - */ - static createFrom($$createParamT) { - const $$createField0_0 = $$createParamT; - return ($$source = {}) => { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Name" in $$parsedSource) { - $$parsedSource["Name"] = $$createField0_0($$parsedSource["Name"]); - } - return new GenericPerson(/** @type {Partial>} */($$parsedSource)); - }; - } -} - -/** - * Another struct alias. - * @typedef {Object} OtherAliasStruct - * @property {number[]} NoMoreIdeas - */ - -/** - * A non-generic struct containing an alias. - */ -export class Person { - /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. - */ - constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * The Person's name. - * @member - * @type {string} - */ - this["Name"] = ""; - } - if (!("AliasedField" in $$source)) { - /** - * A random alias field. - * @member - * @type {Alias} - */ - this["AliasedField"] = 0; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Person} - */ - static createFrom($$source = {}) { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Person(/** @type {Partial} */($$parsedSource)); - } -} - -/** - * A class alias. - */ -export const AliasedPerson = Person; - -/** - * A class alias. - * @typedef {Person} AliasedPerson - */ - -/** - * Another class alias, but ordered after its aliased class. - */ -export const StrangelyAliasedPerson = Person; - -/** - * Another class alias, but ordered after its aliased class. - * @typedef {Person} StrangelyAliasedPerson - */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.js index b5478bc40..5c69d0005 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.js @@ -2,33 +2,165 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - AliasedPerson, - EmptyStruct, - GenericPerson, - Person, - StrangelyAliasedPerson -} from "./internal.js"; - -import * as $models from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; /** * A nice type Alias. - * @typedef {$models.Alias} Alias + * @typedef {number} Alias */ /** * A struct alias. * This should be rendered as a typedef or interface in every mode. - * @typedef {$models.AliasStruct} AliasStruct + * @typedef {Object} AliasStruct + * @property {number[]} Foo - A field with a comment. + * @property {string} [Bar] - Definitely not Foo. + * @property {string} [Baz] - Definitely not Foo. + * @property {OtherAliasStruct} Other - A nested alias struct. */ /** * An empty struct alias. - * @typedef {$models.EmptyAliasStruct} EmptyAliasStruct + * @typedef { { + * } } EmptyAliasStruct */ /** - * Another struct alias. - * @typedef {$models.OtherAliasStruct} OtherAliasStruct + * An empty struct. + */ +export class EmptyStruct { + /** + * Creates a new EmptyStruct instance. + * @param {Partial} [$$source = {}] - The source object to create the EmptyStruct. + */ + constructor($$source = {}) { + + Object.assign(this, $$source); + } + + /** + * Creates a new EmptyStruct instance from a string or object. + * @param {any} [$$source = {}] + * @returns {EmptyStruct} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new EmptyStruct(/** @type {Partial} */($$parsedSource)); + } +} + +/** + * A generic struct containing an alias. + * @template T + */ +export class GenericPerson { + /** + * Creates a new GenericPerson instance. + * @param {Partial>} [$$source = {}] - The source object to create the GenericPerson. + */ + constructor($$source = {}) { + if (/** @type {any} */(false)) { + /** + * @member + * @type {T | undefined} + */ + this["Name"] = undefined; + } + if (!("AliasedField" in $$source)) { + /** + * @member + * @type {Alias} + */ + this["AliasedField"] = 0; + } + + Object.assign(this, $$source); + } + + /** + * Given creation functions for each type parameter, + * returns a creation function for a concrete instance + * of the generic class GenericPerson. + * @template T + * @param {(source: any) => T} $$createParamT + * @returns {($$source?: any) => GenericPerson} + */ + static createFrom($$createParamT) { + const $$createField0_0 = $$createParamT; + return ($$source = {}) => { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Name" in $$parsedSource) { + $$parsedSource["Name"] = $$createField0_0($$parsedSource["Name"]); + } + return new GenericPerson(/** @type {Partial>} */($$parsedSource)); + }; + } +} + +/** + * Another struct alias. + * @typedef {Object} OtherAliasStruct + * @property {number[]} NoMoreIdeas + */ + +/** + * A non-generic struct containing an alias. + */ +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (!("Name" in $$source)) { + /** + * The Person's name. + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("AliasedField" in $$source)) { + /** + * A random alias field. + * @member + * @type {Alias} + */ + this["AliasedField"] = 0; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Person(/** @type {Partial} */($$parsedSource)); + } +} + +/** + * A class alias. + */ +export const AliasedPerson = Person; + +/** + * A class alias. + * @typedef {Person} AliasedPerson + */ + +/** + * Another class alias, but ordered after its aliased class. + */ +export const StrangelyAliasedPerson = Person; + +/** + * Another class alias, but ordered after its aliased class. + * @typedef {Person} StrangelyAliasedPerson */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.js index 82a1394c2..91b7651a8 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.js index 130c30a09..ab78e5ea3 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.js @@ -7,4 +7,14 @@ export { GreetService }; -export * from "./models.js"; +export { + Embedded1, + Person, + Title +} from "./models.js"; + +import * as $models from "./models.js"; + +/** + * @typedef {$models.Embedded3} Embedded3 + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.js deleted file mode 100644 index bf2cf7b1e..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.js +++ /dev/null @@ -1,272 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Embedded1 { - /** - * Creates a new Embedded1 instance. - * @param {Partial} [$$source = {}] - The source object to create the Embedded1. - */ - constructor($$source = {}) { - if (!("Friends" in $$source)) { - /** - * Friends should be shadowed in Person by a field of lesser depth - * @member - * @type {number} - */ - this["Friends"] = 0; - } - if (!("Vanish" in $$source)) { - /** - * Vanish should be omitted from Person because there is another field with same depth and no tag - * @member - * @type {number} - */ - this["Vanish"] = 0; - } - if (!("StillThere" in $$source)) { - /** - * StillThere should be shadowed in Person by other field with same depth and a json tag - * @member - * @type {string} - */ - this["StillThere"] = ""; - } - if (!("NamingThingsIsHard" in $$source)) { - /** - * NamingThingsIsHard is a law of programming - * @member - * @type {`${boolean}`} - */ - this["NamingThingsIsHard"] = "false"; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Embedded1 instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Embedded1} - */ - static createFrom($$source = {}) { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Embedded1(/** @type {Partial} */($$parsedSource)); - } -} - -/** - * @typedef {string} Embedded3 - */ - -/** - * Person represents a person - */ -export class Person { - /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. - */ - constructor($$source = {}) { - if (/** @type {any} */(false)) { - /** - * Titles is optional in JSON - * @member - * @type {Title[] | undefined} - */ - this["Titles"] = []; - } - if (!("Names" in $$source)) { - /** - * Names has a - * multiline comment - * @member - * @type {string[]} - */ - this["Names"] = []; - } - if (!("Partner" in $$source)) { - /** - * Partner has a custom and complex JSON key - * @member - * @type {Person | null} - */ - this["Partner"] = null; - } - if (!("Friends" in $$source)) { - /** - * @member - * @type {(Person | null)[]} - */ - this["Friends"] = []; - } - if (!("NamingThingsIsHard" in $$source)) { - /** - * NamingThingsIsHard is a law of programming - * @member - * @type {`${boolean}`} - */ - this["NamingThingsIsHard"] = "false"; - } - if (!("StillThere" in $$source)) { - /** - * StillThereButRenamed should shadow in Person the other field with same depth and no json tag - * @member - * @type {Embedded3 | null} - */ - this["StillThere"] = null; - } - if (!("-" in $$source)) { - /** - * StrangeNumber maps to "-" - * @member - * @type {number} - */ - this["-"] = 0; - } - if (!("Embedded3" in $$source)) { - /** - * Embedded3 should appear with key "Embedded3" - * @member - * @type {Embedded3} - */ - this["Embedded3"] = (/** @type {Embedded3} */("")); - } - if (!("StrangerNumber" in $$source)) { - /** - * StrangerNumber is serialized as a string - * @member - * @type {`${number}`} - */ - this["StrangerNumber"] = "0"; - } - if (/** @type {any} */(false)) { - /** - * StrangestString is optional and serialized as a JSON string - * @member - * @type {`"${string}"` | undefined} - */ - this["StrangestString"] = '""'; - } - if (/** @type {any} */(false)) { - /** - * StringStrangest is serialized as a JSON string and optional - * @member - * @type {`"${string}"` | undefined} - */ - this["StringStrangest"] = '""'; - } - if (/** @type {any} */(false)) { - /** - * embedded4 should be optional and appear with key "emb4" - * @member - * @type {embedded4 | undefined} - */ - this["emb4"] = (new embedded4()); - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Person} - */ - static createFrom($$source = {}) { - const $$createField0_0 = $$createType0; - const $$createField1_0 = $$createType1; - const $$createField2_0 = $$createType3; - const $$createField3_0 = $$createType4; - const $$createField11_0 = $$createType5; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Titles" in $$parsedSource) { - $$parsedSource["Titles"] = $$createField0_0($$parsedSource["Titles"]); - } - if ("Names" in $$parsedSource) { - $$parsedSource["Names"] = $$createField1_0($$parsedSource["Names"]); - } - if ("Partner" in $$parsedSource) { - $$parsedSource["Partner"] = $$createField2_0($$parsedSource["Partner"]); - } - if ("Friends" in $$parsedSource) { - $$parsedSource["Friends"] = $$createField3_0($$parsedSource["Friends"]); - } - if ("emb4" in $$parsedSource) { - $$parsedSource["emb4"] = $$createField11_0($$parsedSource["emb4"]); - } - return new Person(/** @type {Partial} */($$parsedSource)); - } -} - -/** - * Title is a title - * @readonly - * @enum {string} - */ -export const Title = { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero: "", - - /** - * Mister is a title - */ - Mister: "Mr", - Miss: "Miss", - Ms: "Ms", - Mrs: "Mrs", - Dr: "Dr", -}; - -export class embedded4 { - /** - * Creates a new embedded4 instance. - * @param {Partial} [$$source = {}] - The source object to create the embedded4. - */ - constructor($$source = {}) { - if (!("NamingThingsIsHard" in $$source)) { - /** - * NamingThingsIsHard is a law of programming - * @member - * @type {`${boolean}`} - */ - this["NamingThingsIsHard"] = "false"; - } - if (!("Friends" in $$source)) { - /** - * Friends should not be shadowed in Person as embedded4 is not embedded - * from encoding/json's point of view; - * however, it should be shadowed in Embedded1 - * @member - * @type {boolean} - */ - this["Friends"] = false; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new embedded4 instance from a string or object. - * @param {any} [$$source = {}] - * @returns {embedded4} - */ - static createFrom($$source = {}) { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new embedded4(/** @type {Partial} */($$parsedSource)); - } -} - -// Private type creation functions -const $$createType0 = $Create.Array($Create.Any); -const $$createType1 = $Create.Array($Create.Any); -const $$createType2 = Person.createFrom; -const $$createType3 = $Create.Nullable($$createType2); -const $$createType4 = $Create.Array($$createType3); -const $$createType5 = embedded4.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.js index f3fc0cdbd..d6da8c762 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.js @@ -2,14 +2,271 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Embedded1, - Person, - Title -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; -import * as $models from "./internal.js"; +export class Embedded1 { + /** + * Creates a new Embedded1 instance. + * @param {Partial} [$$source = {}] - The source object to create the Embedded1. + */ + constructor($$source = {}) { + if (!("Friends" in $$source)) { + /** + * Friends should be shadowed in Person by a field of lesser depth + * @member + * @type {number} + */ + this["Friends"] = 0; + } + if (!("Vanish" in $$source)) { + /** + * Vanish should be omitted from Person because there is another field with same depth and no tag + * @member + * @type {number} + */ + this["Vanish"] = 0; + } + if (!("StillThere" in $$source)) { + /** + * StillThere should be shadowed in Person by other field with same depth and a json tag + * @member + * @type {string} + */ + this["StillThere"] = ""; + } + if (!("NamingThingsIsHard" in $$source)) { + /** + * NamingThingsIsHard is a law of programming + * @member + * @type {`${boolean}`} + */ + this["NamingThingsIsHard"] = "false"; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Embedded1 instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Embedded1} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Embedded1(/** @type {Partial} */($$parsedSource)); + } +} /** - * @typedef {$models.Embedded3} Embedded3 + * @typedef {string} Embedded3 */ + +/** + * Person represents a person + */ +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (/** @type {any} */(false)) { + /** + * Titles is optional in JSON + * @member + * @type {Title[] | undefined} + */ + this["Titles"] = undefined; + } + if (!("Names" in $$source)) { + /** + * Names has a + * multiline comment + * @member + * @type {string[]} + */ + this["Names"] = []; + } + if (!("Partner" in $$source)) { + /** + * Partner has a custom and complex JSON key + * @member + * @type {Person | null} + */ + this["Partner"] = null; + } + if (!("Friends" in $$source)) { + /** + * @member + * @type {(Person | null)[]} + */ + this["Friends"] = []; + } + if (!("NamingThingsIsHard" in $$source)) { + /** + * NamingThingsIsHard is a law of programming + * @member + * @type {`${boolean}`} + */ + this["NamingThingsIsHard"] = "false"; + } + if (!("StillThere" in $$source)) { + /** + * StillThereButRenamed should shadow in Person the other field with same depth and no json tag + * @member + * @type {Embedded3 | null} + */ + this["StillThere"] = null; + } + if (!("-" in $$source)) { + /** + * StrangeNumber maps to "-" + * @member + * @type {number} + */ + this["-"] = 0; + } + if (!("Embedded3" in $$source)) { + /** + * Embedded3 should appear with key "Embedded3" + * @member + * @type {Embedded3} + */ + this["Embedded3"] = ""; + } + if (!("StrangerNumber" in $$source)) { + /** + * StrangerNumber is serialized as a string + * @member + * @type {`${number}`} + */ + this["StrangerNumber"] = "0"; + } + if (/** @type {any} */(false)) { + /** + * StrangestString is optional and serialized as a JSON string + * @member + * @type {`"${string}"` | undefined} + */ + this["StrangestString"] = undefined; + } + if (/** @type {any} */(false)) { + /** + * StringStrangest is serialized as a JSON string and optional + * @member + * @type {`"${string}"` | undefined} + */ + this["StringStrangest"] = undefined; + } + if (/** @type {any} */(false)) { + /** + * embedded4 should be optional and appear with key "emb4" + * @member + * @type {embedded4 | undefined} + */ + this["emb4"] = undefined; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + const $$createField0_0 = $$createType0; + const $$createField1_0 = $$createType1; + const $$createField2_0 = $$createType3; + const $$createField3_0 = $$createType4; + const $$createField11_0 = $$createType5; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Titles" in $$parsedSource) { + $$parsedSource["Titles"] = $$createField0_0($$parsedSource["Titles"]); + } + if ("Names" in $$parsedSource) { + $$parsedSource["Names"] = $$createField1_0($$parsedSource["Names"]); + } + if ("Partner" in $$parsedSource) { + $$parsedSource["Partner"] = $$createField2_0($$parsedSource["Partner"]); + } + if ("Friends" in $$parsedSource) { + $$parsedSource["Friends"] = $$createField3_0($$parsedSource["Friends"]); + } + if ("emb4" in $$parsedSource) { + $$parsedSource["emb4"] = $$createField11_0($$parsedSource["emb4"]); + } + return new Person(/** @type {Partial} */($$parsedSource)); + } +} + +/** + * Title is a title + * @readonly + * @enum {string} + */ +export const Title = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: "", + + /** + * Mister is a title + */ + Mister: "Mr", + Miss: "Miss", + Ms: "Ms", + Mrs: "Mrs", + Dr: "Dr", +}; + +export class embedded4 { + /** + * Creates a new embedded4 instance. + * @param {Partial} [$$source = {}] - The source object to create the embedded4. + */ + constructor($$source = {}) { + if (!("NamingThingsIsHard" in $$source)) { + /** + * NamingThingsIsHard is a law of programming + * @member + * @type {`${boolean}`} + */ + this["NamingThingsIsHard"] = "false"; + } + if (!("Friends" in $$source)) { + /** + * Friends should not be shadowed in Person as embedded4 is not embedded + * from encoding/json's point of view; + * however, it should be shadowed in Embedded1 + * @member + * @type {boolean} + */ + this["Friends"] = false; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new embedded4 instance from a string or object. + * @param {any} [$$source = {}] + * @returns {embedded4} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new embedded4(/** @type {Partial} */($$parsedSource)); + } +} + +// Private type creation functions +const $$createType0 = $Create.Array($Create.Any); +const $$createType1 = $Create.Array($Create.Any); +const $$createType2 = Person.createFrom; +const $$createType3 = $Create.Nullable($$createType2); +const $$createType4 = $Create.Array($$createType3); +const $$createType5 = embedded4.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.js index 4aa59c10c..6298ac99b 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.js index 130c30a09..fefe6b6ba 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.js @@ -7,4 +7,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.js index 1cf2e2418..70a01e64c 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.js @@ -2,6 +2,37 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * Person represents a person + */ +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (!("Name" in $$source)) { + /** + * @member + * @type {string} + */ + this["Name"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Person(/** @type {Partial} */($$parsedSource)); + } +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.js index 0b866bbcd..3ad458498 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Make a cycle. diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.js index 130c30a09..0ad0efb4e 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.js @@ -7,4 +7,8 @@ export { GreetService }; -export * from "./models.js"; +export { + StructA, + StructC, + StructE +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.js deleted file mode 100644 index d101a661f..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.js +++ /dev/null @@ -1,164 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class StructA { - /** - * Creates a new StructA instance. - * @param {Partial} [$$source = {}] - The source object to create the StructA. - */ - constructor($$source = {}) { - if (!("B" in $$source)) { - /** - * @member - * @type {structB | null} - */ - this["B"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new StructA instance from a string or object. - * @param {any} [$$source = {}] - * @returns {StructA} - */ - static createFrom($$source = {}) { - const $$createField0_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("B" in $$parsedSource) { - $$parsedSource["B"] = $$createField0_0($$parsedSource["B"]); - } - return new StructA(/** @type {Partial} */($$parsedSource)); - } -} - -export class StructC { - /** - * Creates a new StructC instance. - * @param {Partial} [$$source = {}] - The source object to create the StructC. - */ - constructor($$source = {}) { - if (!("D" in $$source)) { - /** - * @member - * @type {structD} - */ - this["D"] = (new structD()); - } - - Object.assign(this, $$source); - } - - /** - * Creates a new StructC instance from a string or object. - * @param {any} [$$source = {}] - * @returns {StructC} - */ - static createFrom($$source = {}) { - const $$createField0_0 = $$createType2; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("D" in $$parsedSource) { - $$parsedSource["D"] = $$createField0_0($$parsedSource["D"]); - } - return new StructC(/** @type {Partial} */($$parsedSource)); - } -} - -export class StructE { - /** - * Creates a new StructE instance. - * @param {Partial} [$$source = {}] - The source object to create the StructE. - */ - constructor($$source = {}) { - - Object.assign(this, $$source); - } - - /** - * Creates a new StructE instance from a string or object. - * @param {any} [$$source = {}] - * @returns {StructE} - */ - static createFrom($$source = {}) { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new StructE(/** @type {Partial} */($$parsedSource)); - } -} - -export class structB { - /** - * Creates a new structB instance. - * @param {Partial} [$$source = {}] - The source object to create the structB. - */ - constructor($$source = {}) { - if (!("A" in $$source)) { - /** - * @member - * @type {StructA | null} - */ - this["A"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new structB instance from a string or object. - * @param {any} [$$source = {}] - * @returns {structB} - */ - static createFrom($$source = {}) { - const $$createField0_0 = $$createType4; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("A" in $$parsedSource) { - $$parsedSource["A"] = $$createField0_0($$parsedSource["A"]); - } - return new structB(/** @type {Partial} */($$parsedSource)); - } -} - -export class structD { - /** - * Creates a new structD instance. - * @param {Partial} [$$source = {}] - The source object to create the structD. - */ - constructor($$source = {}) { - if (!("E" in $$source)) { - /** - * @member - * @type {StructE} - */ - this["E"] = (new StructE()); - } - - Object.assign(this, $$source); - } - - /** - * Creates a new structD instance from a string or object. - * @param {any} [$$source = {}] - * @returns {structD} - */ - static createFrom($$source = {}) { - const $$createField0_0 = $$createType5; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("E" in $$parsedSource) { - $$parsedSource["E"] = $$createField0_0($$parsedSource["E"]); - } - return new structD(/** @type {Partial} */($$parsedSource)); - } -} - -// Private type creation functions -const $$createType0 = structB.createFrom; -const $$createType1 = $Create.Nullable($$createType0); -const $$createType2 = structD.createFrom; -const $$createType3 = StructA.createFrom; -const $$createType4 = $Create.Nullable($$createType3); -const $$createType5 = StructE.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.js index 7978fe3d8..d101a661f 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.js @@ -2,8 +2,163 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - StructA, - StructC, - StructE -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class StructA { + /** + * Creates a new StructA instance. + * @param {Partial} [$$source = {}] - The source object to create the StructA. + */ + constructor($$source = {}) { + if (!("B" in $$source)) { + /** + * @member + * @type {structB | null} + */ + this["B"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new StructA instance from a string or object. + * @param {any} [$$source = {}] + * @returns {StructA} + */ + static createFrom($$source = {}) { + const $$createField0_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("B" in $$parsedSource) { + $$parsedSource["B"] = $$createField0_0($$parsedSource["B"]); + } + return new StructA(/** @type {Partial} */($$parsedSource)); + } +} + +export class StructC { + /** + * Creates a new StructC instance. + * @param {Partial} [$$source = {}] - The source object to create the StructC. + */ + constructor($$source = {}) { + if (!("D" in $$source)) { + /** + * @member + * @type {structD} + */ + this["D"] = (new structD()); + } + + Object.assign(this, $$source); + } + + /** + * Creates a new StructC instance from a string or object. + * @param {any} [$$source = {}] + * @returns {StructC} + */ + static createFrom($$source = {}) { + const $$createField0_0 = $$createType2; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("D" in $$parsedSource) { + $$parsedSource["D"] = $$createField0_0($$parsedSource["D"]); + } + return new StructC(/** @type {Partial} */($$parsedSource)); + } +} + +export class StructE { + /** + * Creates a new StructE instance. + * @param {Partial} [$$source = {}] - The source object to create the StructE. + */ + constructor($$source = {}) { + + Object.assign(this, $$source); + } + + /** + * Creates a new StructE instance from a string or object. + * @param {any} [$$source = {}] + * @returns {StructE} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new StructE(/** @type {Partial} */($$parsedSource)); + } +} + +export class structB { + /** + * Creates a new structB instance. + * @param {Partial} [$$source = {}] - The source object to create the structB. + */ + constructor($$source = {}) { + if (!("A" in $$source)) { + /** + * @member + * @type {StructA | null} + */ + this["A"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new structB instance from a string or object. + * @param {any} [$$source = {}] + * @returns {structB} + */ + static createFrom($$source = {}) { + const $$createField0_0 = $$createType4; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("A" in $$parsedSource) { + $$parsedSource["A"] = $$createField0_0($$parsedSource["A"]); + } + return new structB(/** @type {Partial} */($$parsedSource)); + } +} + +export class structD { + /** + * Creates a new structD instance. + * @param {Partial} [$$source = {}] - The source object to create the structD. + */ + constructor($$source = {}) { + if (!("E" in $$source)) { + /** + * @member + * @type {StructE} + */ + this["E"] = (new StructE()); + } + + Object.assign(this, $$source); + } + + /** + * Creates a new structD instance from a string or object. + * @param {any} [$$source = {}] + * @returns {structD} + */ + static createFrom($$source = {}) { + const $$createField0_0 = $$createType5; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("E" in $$parsedSource) { + $$parsedSource["E"] = $$createField0_0($$parsedSource["E"]); + } + return new structD(/** @type {Partial} */($$parsedSource)); + } +} + +// Private type creation functions +const $$createType0 = structB.createFrom; +const $$createType1 = $Create.Nullable($$createType0); +const $$createType2 = structD.createFrom; +const $$createType3 = StructA.createFrom; +const $$createType4 = $Create.Nullable($$createType3); +const $$createType5 = StructE.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.js index 1a3f31b28..428da2dbd 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Make a cycle. diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.js index 130c30a09..9fc31bf7c 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.js @@ -7,4 +7,17 @@ export { GreetService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.Alias} Alias + */ + +/** + * @typedef {$models.Cyclic} Cyclic + */ + +/** + * @template T + * @typedef {$models.GenericCyclic} GenericCyclic + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.js index 1d70efd70..f4a68bd4b 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.js @@ -2,17 +2,19 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; /** - * @typedef {$models.Alias} Alias + * @typedef {Cyclic | null} Alias */ /** - * @typedef {$models.Cyclic} Cyclic + * @typedef {{ [_: string]: Alias }[]} Cyclic */ /** * @template T - * @typedef {$models.GenericCyclic} GenericCyclic + * @typedef {{"X": GenericCyclic | null, "Y": T[]}[]} GenericCyclic */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.js new file mode 100644 index 000000000..972196ce3 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.js @@ -0,0 +1,14 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +console.log("Hello everywhere!"); +console.log("Hello everywhere again!"); +console.log("Hello Classes!"); +console.log("Hello JS!"); +console.log("Hello JS Classes!"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.js new file mode 100644 index 000000000..b1523d411 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.js @@ -0,0 +1,25 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * An exported but internal service. + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call, Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +/** + * @param {$models.InternalModel} $0 + * @returns {Promise & { cancel(): void }} + */ +export function Method($0) { + let $resultPromise = /** @type {any} */($Call.ByID(538079117, $0)); + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.js new file mode 100644 index 000000000..fad4870ca --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.js @@ -0,0 +1,69 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * An exported but internal model. + */ +export class InternalModel { + /** + * Creates a new InternalModel instance. + * @param {Partial} [$$source = {}] - The source object to create the InternalModel. + */ + constructor($$source = {}) { + if (!("Field" in $$source)) { + /** + * @member + * @type {string} + */ + this["Field"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new InternalModel instance from a string or object. + * @param {any} [$$source = {}] + * @returns {InternalModel} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new InternalModel(/** @type {Partial} */($$parsedSource)); + } +} + +/** + * An unexported model. + */ +export class unexportedModel { + /** + * Creates a new unexportedModel instance. + * @param {Partial} [$$source = {}] - The source object to create the unexportedModel. + */ + constructor($$source = {}) { + if (!("Field" in $$source)) { + /** + * @member + * @type {string} + */ + this["Field"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new unexportedModel instance from a string or object. + * @param {any} [$$source = {}] + * @returns {unexportedModel} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new unexportedModel(/** @type {Partial} */($$parsedSource)); + } +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.ts b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.js similarity index 54% rename from v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.ts rename to v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.js index b76080cf3..b7e83cfd4 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.ts +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.js @@ -1,8 +1,7 @@ +// @ts-check // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export interface Address { - "Street": string; - "State": string; - "Country": string; -} +export { + Dummy +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.js similarity index 52% rename from v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.js rename to v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.js index 70a01e64c..b38ff6238 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.js @@ -6,33 +6,23 @@ // @ts-ignore: Unused imports import {Create as $Create} from "/wails/runtime.js"; -/** - * Person represents a person - */ -export class Person { +export class Dummy { /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. + * Creates a new Dummy instance. + * @param {Partial} [$$source = {}] - The source object to create the Dummy. */ constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * @member - * @type {string} - */ - this["Name"] = ""; - } Object.assign(this, $$source); } /** - * Creates a new Person instance from a string or object. + * Creates a new Dummy instance from a string or object. * @param {any} [$$source = {}] - * @returns {Person} + * @returns {Dummy} */ static createFrom($$source = {}) { let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Person(/** @type {Partial} */($$parsedSource)); + return new Dummy(/** @type {Partial} */($$parsedSource)); } } diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_j.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_j.js new file mode 100644 index 000000000..2166d33b6 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_j.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "../service.js"; + +CustomMethod("JS"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_jc.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_jc.js new file mode 100644 index 000000000..338898726 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_jc.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "../service.js"; + +CustomMethod("JS Classes"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.js new file mode 100644 index 000000000..8a2f4b65b --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.js @@ -0,0 +1,37 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call, Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as otherpackage$0 from "./otherpackage/models.js"; + +/** + * @param {string} $0 + * @returns {Promise & { cancel(): void }} + */ +function InternalMethod($0) { + let $resultPromise = /** @type {any} */($Call.ByID(3518775569, $0)); + return $resultPromise; +} + +/** + * @param {otherpackage$0.Dummy} $0 + * @returns {Promise & { cancel(): void }} + */ +export function VisibleMethod($0) { + let $resultPromise = /** @type {any} */($Call.ByID(474018228, $0)); + return $resultPromise; +} + +/** + * @param {string} arg + * @returns {Promise} + */ +export async function CustomMethod(arg) { + await InternalMethod("Hello " + arg + "!"); +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js new file mode 100644 index 000000000..138385f53 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("everywhere"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js new file mode 100644 index 000000000..19d5c2f42 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("everywhere again"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_c.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_c.js new file mode 100644 index 000000000..724e79e12 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_c.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("Classes"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_j.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_j.js new file mode 100644 index 000000000..b2f9c5edb --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_j.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("JS"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_jc.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_jc.js new file mode 100644 index 000000000..ddf4920e5 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_jc.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("JS Classes"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.js new file mode 100644 index 000000000..325ddfe88 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.js @@ -0,0 +1,25 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * An unexported service. + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call, Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +/** + * @param {$models.unexportedModel} $0 + * @returns {Promise & { cancel(): void }} + */ +export function Method($0) { + let $resultPromise = /** @type {any} */($Call.ByID(37626172, $0)); + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.js index cdd83d947..61730be16 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.js index 130c30a09..d5d66d4cb 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.js @@ -7,4 +7,8 @@ export { GreetService }; -export * from "./models.js"; +export { + Age, + Person, + Title +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.js deleted file mode 100644 index 1ddcaf0e0..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.js +++ /dev/null @@ -1,66 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -/** - * Person represents a person - */ -export class Person { - /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. - */ - constructor($$source = {}) { - if (!("Title" in $$source)) { - /** - * @member - * @type {Title} - */ - this["Title"] = (/** @type {Title} */("")); - } - if (!("Name" in $$source)) { - /** - * @member - * @type {string} - */ - this["Name"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Person} - */ - static createFrom($$source = {}) { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Person(/** @type {Partial} */($$parsedSource)); - } -} - -/** - * Title is a title - * @readonly - * @enum {string} - */ -export const Title = { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero: "", - - /** - * Mister is a title - */ - Mister: "Mr", - Miss: "Miss", - Ms: "Ms", - Mrs: "Mrs", - Dr: "Dr", -}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.js index 25b4a5f65..cad356265 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.js @@ -2,7 +2,97 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person, - Title -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * Age is an integer with some predefined values + * @typedef {number} Age + */ + +/** + * Predefined constants for type Age. + * @namespace + */ +export const Age = { + NewBorn: 0, + Teenager: 12, + YoungAdult: 18, + + /** + * Oh no, some grey hair! + */ + MiddleAged: 50, + + /** + * Unbelievable! + */ + Mathusalem: 1000, +}; + +/** + * Person represents a person + */ +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (!("Title" in $$source)) { + /** + * @member + * @type {Title} + */ + this["Title"] = Title.$zero; + } + if (!("Name" in $$source)) { + /** + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("Age" in $$source)) { + /** + * @member + * @type {Age} + */ + this["Age"] = 0; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Person(/** @type {Partial} */($$parsedSource)); + } +} + +/** + * Title is a title + * @readonly + * @enum {string} + */ +export const Title = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: "", + + /** + * Mister is a title + */ + Mister: "Mr", + Miss: "Miss", + Ms: "Ms", + Mrs: "Mrs", + Dr: "Dr", +}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.js index 580fb67af..089a8b685 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.js @@ -2,4 +2,6 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export * from "./models.js"; +export { + Title +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.js deleted file mode 100644 index 0e7acabe2..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.js +++ /dev/null @@ -1,27 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -/** - * @readonly - * @enum {string} - */ -export const Title = { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero: "", - - /** - * Mister is a title - */ - Mister: "Mr", - Miss: "Miss", - Ms: "Ms", - Mrs: "Mrs", - Dr: "Dr", -}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.js index 389f670e2..0e7acabe2 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.js @@ -2,6 +2,26 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Title -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * @readonly + * @enum {string} + */ +export const Title = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: "", + + /** + * Mister is a title + */ + Mister: "Mr", + Miss: "Miss", + Ms: "Ms", + Mrs: "Mrs", + Dr: "Dr", +}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.js index bf314a446..5f8cf55b5 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.js index 130c30a09..fefe6b6ba 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.js @@ -7,4 +7,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.js deleted file mode 100644 index 860939563..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.js +++ /dev/null @@ -1,57 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -/** - * Person is a person - */ -export class Person { - /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. - */ - constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * @member - * @type {string} - */ - this["Name"] = ""; - } - if (!("Address" in $$source)) { - /** - * @member - * @type {services$0.Address | null} - */ - this["Address"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Person} - */ - static createFrom($$source = {}) { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Address" in $$parsedSource) { - $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); - } - return new Person(/** @type {Partial} */($$parsedSource)); - } -} - -// Private type creation functions -const $$createType0 = services$0.Address.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.js index 1cf2e2418..860939563 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.js @@ -2,6 +2,56 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; + +/** + * Person is a person + */ +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (!("Name" in $$source)) { + /** + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("Address" in $$source)) { + /** + * @member + * @type {services$0.Address | null} + */ + this["Address"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Address" in $$parsedSource) { + $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); + } + return new Person(/** @type {Partial} */($$parsedSource)); + } +} + +// Private type creation functions +const $$createType0 = services$0.Address.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.js index bac48bb49..ed65b6d15 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.js @@ -7,4 +7,6 @@ export { OtherService }; -export * from "./models.js"; +export { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.js deleted file mode 100644 index fb1176dee..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.js +++ /dev/null @@ -1,49 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Address { - /** - * Creates a new Address instance. - * @param {Partial
} [$$source = {}] - The source object to create the Address. - */ - constructor($$source = {}) { - if (!("Street" in $$source)) { - /** - * @member - * @type {string} - */ - this["Street"] = ""; - } - if (!("State" in $$source)) { - /** - * @member - * @type {string} - */ - this["State"] = ""; - } - if (!("Country" in $$source)) { - /** - * @member - * @type {string} - */ - this["Country"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Address instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Address} - */ - static createFrom($$source = {}) { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Address(/** @type {Partial
} */($$parsedSource)); - } -} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.js index 6820003a0..fb1176dee 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.js @@ -2,6 +2,48 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Address -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Address { + /** + * Creates a new Address instance. + * @param {Partial
} [$$source = {}] - The source object to create the Address. + */ + constructor($$source = {}) { + if (!("Street" in $$source)) { + /** + * @member + * @type {string} + */ + this["Street"] = ""; + } + if (!("State" in $$source)) { + /** + * @member + * @type {string} + */ + this["State"] = ""; + } + if (!("Country" in $$source)) { + /** + * @member + * @type {string} + */ + this["Country"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Address instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Address} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Address(/** @type {Partial
} */($$parsedSource)); + } +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.js index 0801673d9..447b0a588 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.js @@ -14,7 +14,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.js index bf314a446..5f8cf55b5 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.js index 130c30a09..fefe6b6ba 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.js @@ -7,4 +7,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.js deleted file mode 100644 index 5b28ee2f6..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.js +++ /dev/null @@ -1,54 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as other$0 from "./services/other/models.js"; - -export class Person { - /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. - */ - constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * @member - * @type {string} - */ - this["Name"] = ""; - } - if (!("Address" in $$source)) { - /** - * @member - * @type {other$0.Address | null} - */ - this["Address"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Person} - */ - static createFrom($$source = {}) { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Address" in $$parsedSource) { - $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); - } - return new Person(/** @type {Partial} */($$parsedSource)); - } -} - -// Private type creation functions -const $$createType0 = other$0.Address.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.js index 1cf2e2418..5b28ee2f6 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.js @@ -2,6 +2,53 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as other$0 from "./services/other/models.js"; + +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (!("Name" in $$source)) { + /** + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("Address" in $$source)) { + /** + * @member + * @type {other$0.Address | null} + */ + this["Address"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Address" in $$parsedSource) { + $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); + } + return new Person(/** @type {Partial} */($$parsedSource)); + } +} + +// Private type creation functions +const $$createType0 = other$0.Address.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.js index bac48bb49..ed65b6d15 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.js @@ -7,4 +7,6 @@ export { OtherService }; -export * from "./models.js"; +export { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.js deleted file mode 100644 index fb1176dee..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.js +++ /dev/null @@ -1,49 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Address { - /** - * Creates a new Address instance. - * @param {Partial
} [$$source = {}] - The source object to create the Address. - */ - constructor($$source = {}) { - if (!("Street" in $$source)) { - /** - * @member - * @type {string} - */ - this["Street"] = ""; - } - if (!("State" in $$source)) { - /** - * @member - * @type {string} - */ - this["State"] = ""; - } - if (!("Country" in $$source)) { - /** - * @member - * @type {string} - */ - this["Country"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Address instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Address} - */ - static createFrom($$source = {}) { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Address(/** @type {Partial
} */($$parsedSource)); - } -} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.js index 6820003a0..fb1176dee 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.js @@ -2,6 +2,48 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Address -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Address { + /** + * Creates a new Address instance. + * @param {Partial
} [$$source = {}] - The source object to create the Address. + */ + constructor($$source = {}) { + if (!("Street" in $$source)) { + /** + * @member + * @type {string} + */ + this["Street"] = ""; + } + if (!("State" in $$source)) { + /** + * @member + * @type {string} + */ + this["State"] = ""; + } + if (!("Country" in $$source)) { + /** + * @member + * @type {string} + */ + this["Country"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Address instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Address} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Address(/** @type {Partial
} */($$parsedSource)); + } +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.js index 44352d476..4bece70b6 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.js @@ -14,7 +14,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.js new file mode 100644 index 000000000..3c20ebc43 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.js @@ -0,0 +1,62 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +export { + Maps +} from "./models.js"; + +import * as $models from "./models.js"; + +/** + * @typedef {$models.EmbeddedCustomInterface} EmbeddedCustomInterface + */ + +/** + * @typedef {$models.EmbeddedOriginalInterface} EmbeddedOriginalInterface + */ + +/** + * @typedef {$models.EmbeddedPointer} EmbeddedPointer + */ + +/** + * @typedef {$models.EmbeddedPointerPtr} EmbeddedPointerPtr + */ + +/** + * @typedef {$models.EmbeddedValue} EmbeddedValue + */ + +/** + * @typedef {$models.EmbeddedValuePtr} EmbeddedValuePtr + */ + +/** + * @typedef {$models.PointerAlias} PointerAlias + */ + +/** + * @typedef {$models.PointerTextMarshaler} PointerTextMarshaler + */ + +/** + * @typedef {$models.StringAlias} StringAlias + */ + +/** + * @typedef {$models.StringType} StringType + */ + +/** + * @typedef {$models.ValueAlias} ValueAlias + */ + +/** + * @typedef {$models.ValueTextMarshaler} ValueTextMarshaler + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.js new file mode 100644 index 000000000..c715dd484 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.js @@ -0,0 +1,1239 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * @typedef {string} EmbeddedCustomInterface + */ + +/** + * @typedef {string} EmbeddedOriginalInterface + */ + +/** + * @typedef {string} EmbeddedPointer + */ + +/** + * @typedef {string} EmbeddedPointerPtr + */ + +/** + * @typedef {string} EmbeddedValue + */ + +/** + * @typedef {string} EmbeddedValuePtr + */ + +/** + * @template R,S,T,U,V,W,X,Y,Z + */ +export class Maps { + /** + * Creates a new Maps instance. + * @param {Partial>} [$$source = {}] - The source object to create the Maps. + */ + constructor($$source = {}) { + if (!("Bool" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["Bool"] = {}; + } + if (!("Int" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: `${number}`]: number }} + */ + this["Int"] = {}; + } + if (!("Uint" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: `${number}`]: number }} + */ + this["Uint"] = {}; + } + if (!("Float" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["Float"] = {}; + } + if (!("Complex" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["Complex"] = {}; + } + if (!("Byte" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: `${number}`]: number }} + */ + this["Byte"] = {}; + } + if (!("Rune" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: `${number}`]: number }} + */ + this["Rune"] = {}; + } + if (!("String" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: string]: number }} + */ + this["String"] = {}; + } + if (!("IntPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["IntPtr"] = {}; + } + if (!("UintPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["UintPtr"] = {}; + } + if (!("FloatPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["FloatPtr"] = {}; + } + if (!("ComplexPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["ComplexPtr"] = {}; + } + if (!("StringPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["StringPtr"] = {}; + } + if (!("NTM" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["NTM"] = {}; + } + if (!("NTMPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["NTMPtr"] = {}; + } + if (!("VTM" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: ValueTextMarshaler]: number }} + */ + this["VTM"] = {}; + } + if (!("VTMPtr" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: ValueTextMarshaler]: number }} + */ + this["VTMPtr"] = {}; + } + if (!("PTM" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["PTM"] = {}; + } + if (!("PTMPtr" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: PointerTextMarshaler]: number }} + */ + this["PTMPtr"] = {}; + } + if (!("JTM" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["JTM"] = {}; + } + if (!("JTMPtr" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["JTMPtr"] = {}; + } + if (!("A" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["A"] = {}; + } + if (!("APtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["APtr"] = {}; + } + if (!("TM" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["TM"] = {}; + } + if (!("TMPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["TMPtr"] = {}; + } + if (!("CI" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["CI"] = {}; + } + if (!("CIPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["CIPtr"] = {}; + } + if (!("EI" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["EI"] = {}; + } + if (!("EIPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["EIPtr"] = {}; + } + if (!("EV" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: EmbeddedValue]: number }} + */ + this["EV"] = {}; + } + if (!("EVPtr" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: EmbeddedValue]: number }} + */ + this["EVPtr"] = {}; + } + if (!("EVP" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: EmbeddedValuePtr]: number }} + */ + this["EVP"] = {}; + } + if (!("EVPPtr" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: EmbeddedValuePtr]: number }} + */ + this["EVPPtr"] = {}; + } + if (!("EP" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["EP"] = {}; + } + if (!("EPPtr" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: EmbeddedPointer]: number }} + */ + this["EPPtr"] = {}; + } + if (!("EPP" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: EmbeddedPointerPtr]: number }} + */ + this["EPP"] = {}; + } + if (!("EPPPtr" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: EmbeddedPointerPtr]: number }} + */ + this["EPPPtr"] = {}; + } + if (!("ECI" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: EmbeddedCustomInterface]: number }} + */ + this["ECI"] = {}; + } + if (!("ECIPtr" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: EmbeddedCustomInterface]: number }} + */ + this["ECIPtr"] = {}; + } + if (!("EOI" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: EmbeddedOriginalInterface]: number }} + */ + this["EOI"] = {}; + } + if (!("EOIPtr" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: EmbeddedOriginalInterface]: number }} + */ + this["EOIPtr"] = {}; + } + if (!("WT" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["WT"] = {}; + } + if (!("WA" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["WA"] = {}; + } + if (!("ST" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: StringType]: number }} + */ + this["ST"] = {}; + } + if (!("SA" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: StringAlias]: number }} + */ + this["SA"] = {}; + } + if (!("IntT" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: `${number}`]: number }} + */ + this["IntT"] = {}; + } + if (!("IntA" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: `${number}`]: number }} + */ + this["IntA"] = {}; + } + if (!("VT" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["VT"] = {}; + } + if (!("VTPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["VTPtr"] = {}; + } + if (!("VPT" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["VPT"] = {}; + } + if (!("VPTPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["VPTPtr"] = {}; + } + if (!("VA" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: ValueAlias]: number }} + */ + this["VA"] = {}; + } + if (!("VAPtr" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: ValueAlias]: number }} + */ + this["VAPtr"] = {}; + } + if (!("VPA" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["VPA"] = {}; + } + if (!("VPAPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["VPAPtr"] = {}; + } + if (!("PT" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["PT"] = {}; + } + if (!("PTPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["PTPtr"] = {}; + } + if (!("PPT" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["PPT"] = {}; + } + if (!("PPTPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["PPTPtr"] = {}; + } + if (!("PA" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["PA"] = {}; + } + if (!("PAPtr" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: PointerAlias]: number }} + */ + this["PAPtr"] = {}; + } + if (!("PPA" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["PPA"] = {}; + } + if (!("PPAPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["PPAPtr"] = {}; + } + if (!("IT" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["IT"] = {}; + } + if (!("ITPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["ITPtr"] = {}; + } + if (!("IPT" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["IPT"] = {}; + } + if (!("IPTPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["IPTPtr"] = {}; + } + if (!("IA" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["IA"] = {}; + } + if (!("IAPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["IAPtr"] = {}; + } + if (!("IPA" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["IPA"] = {}; + } + if (!("IPAPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["IPAPtr"] = {}; + } + if (!("TPR" in $$source)) { + /** + * Soft reject + * @member + * @type {{ [_: string]: number }} + */ + this["TPR"] = {}; + } + if (!("TPRPtr" in $$source)) { + /** + * Soft reject + * @member + * @type {{ [_: string]: number }} + */ + this["TPRPtr"] = {}; + } + if (!("TPS" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["TPS"] = {}; + } + if (!("TPSPtr" in $$source)) { + /** + * Soft reject + * @member + * @type {{ [_: string]: number }} + */ + this["TPSPtr"] = {}; + } + if (!("TPT" in $$source)) { + /** + * Soft reject + * @member + * @type {{ [_: string]: number }} + */ + this["TPT"] = {}; + } + if (!("TPTPtr" in $$source)) { + /** + * Soft reject + * @member + * @type {{ [_: string]: number }} + */ + this["TPTPtr"] = {}; + } + if (!("TPU" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["TPU"] = {}; + } + if (!("TPUPtr" in $$source)) { + /** + * Soft reject + * @member + * @type {{ [_: string]: number }} + */ + this["TPUPtr"] = {}; + } + if (!("TPV" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["TPV"] = {}; + } + if (!("TPVPtr" in $$source)) { + /** + * Soft reject + * @member + * @type {{ [_: string]: number }} + */ + this["TPVPtr"] = {}; + } + if (!("TPW" in $$source)) { + /** + * Soft reject + * @member + * @type {{ [_: string]: number }} + */ + this["TPW"] = {}; + } + if (!("TPWPtr" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["TPWPtr"] = {}; + } + if (!("TPX" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["TPX"] = {}; + } + if (!("TPXPtr" in $$source)) { + /** + * Soft reject + * @member + * @type {{ [_: string]: number }} + */ + this["TPXPtr"] = {}; + } + if (!("TPY" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["TPY"] = {}; + } + if (!("TPYPtr" in $$source)) { + /** + * Soft reject + * @member + * @type {{ [_: string]: number }} + */ + this["TPYPtr"] = {}; + } + if (!("TPZ" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["TPZ"] = {}; + } + if (!("TPZPtr" in $$source)) { + /** + * Soft reject + * @member + * @type {{ [_: string]: number }} + */ + this["TPZPtr"] = {}; + } + + Object.assign(this, $$source); + } + + /** + * Given creation functions for each type parameter, + * returns a creation function for a concrete instance + * of the generic class Maps. + * @template R,S,T,U,V,W,X,Y,Z + * @param {(source: any) => R} $$createParamR + * @param {(source: any) => S} $$createParamS + * @param {(source: any) => T} $$createParamT + * @param {(source: any) => U} $$createParamU + * @param {(source: any) => V} $$createParamV + * @param {(source: any) => W} $$createParamW + * @param {(source: any) => X} $$createParamX + * @param {(source: any) => Y} $$createParamY + * @param {(source: any) => Z} $$createParamZ + * @returns {($$source?: any) => Maps} + */ + static createFrom($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) { + const $$createField0_0 = $$createType0; + const $$createField1_0 = $$createType1; + const $$createField2_0 = $$createType2; + const $$createField3_0 = $$createType3; + const $$createField4_0 = $$createType4; + const $$createField5_0 = $$createType5; + const $$createField6_0 = $$createType6; + const $$createField7_0 = $$createType7; + const $$createField8_0 = $$createType8; + const $$createField9_0 = $$createType9; + const $$createField10_0 = $$createType10; + const $$createField11_0 = $$createType11; + const $$createField12_0 = $$createType12; + const $$createField13_0 = $$createType13; + const $$createField14_0 = $$createType14; + const $$createField15_0 = $$createType15; + const $$createField16_0 = $$createType16; + const $$createField17_0 = $$createType17; + const $$createField18_0 = $$createType18; + const $$createField19_0 = $$createType19; + const $$createField20_0 = $$createType20; + const $$createField21_0 = $$createType21; + const $$createField22_0 = $$createType22; + const $$createField23_0 = $$createType23; + const $$createField24_0 = $$createType24; + const $$createField25_0 = $$createType25; + const $$createField26_0 = $$createType26; + const $$createField27_0 = $$createType27; + const $$createField28_0 = $$createType28; + const $$createField29_0 = $$createType29; + const $$createField30_0 = $$createType30; + const $$createField31_0 = $$createType31; + const $$createField32_0 = $$createType32; + const $$createField33_0 = $$createType33; + const $$createField34_0 = $$createType34; + const $$createField35_0 = $$createType35; + const $$createField36_0 = $$createType36; + const $$createField37_0 = $$createType37; + const $$createField38_0 = $$createType38; + const $$createField39_0 = $$createType39; + const $$createField40_0 = $$createType40; + const $$createField41_0 = $$createType41; + const $$createField42_0 = $$createType0; + const $$createField43_0 = $$createType42; + const $$createField44_0 = $$createType7; + const $$createField45_0 = $$createType43; + const $$createField46_0 = $$createType1; + const $$createField47_0 = $$createType44; + const $$createField48_0 = $$createType45; + const $$createField49_0 = $$createType46; + const $$createField50_0 = $$createType47; + const $$createField51_0 = $$createType15; + const $$createField52_0 = $$createType16; + const $$createField53_0 = $$createType16; + const $$createField54_0 = $$createType48; + const $$createField55_0 = $$createType49; + const $$createField56_0 = $$createType50; + const $$createField57_0 = $$createType51; + const $$createField58_0 = $$createType52; + const $$createField59_0 = $$createType17; + const $$createField60_0 = $$createType18; + const $$createField61_0 = $$createType18; + const $$createField62_0 = $$createType53; + const $$createField63_0 = $$createType54; + const $$createField64_0 = $$createType55; + const $$createField65_0 = $$createType56; + const $$createField66_0 = $$createType57; + const $$createField67_0 = $$createType23; + const $$createField68_0 = $$createType24; + const $$createField69_0 = $$createType24; + const $$createField70_0 = $$createType58; + const $$createField71_0 = $$createType59($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField72_0 = $$createType60($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField73_0 = $$createType61($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField74_0 = $$createType62($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField75_0 = $$createType63($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField76_0 = $$createType64($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField77_0 = $$createType65($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField78_0 = $$createType66($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField79_0 = $$createType67($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField80_0 = $$createType68($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField81_0 = $$createType69($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField82_0 = $$createType70($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField83_0 = $$createType71($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField84_0 = $$createType72($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField85_0 = $$createType73($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField86_0 = $$createType74($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField87_0 = $$createType75($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField88_0 = $$createType76($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + return ($$source = {}) => { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Bool" in $$parsedSource) { + $$parsedSource["Bool"] = $$createField0_0($$parsedSource["Bool"]); + } + if ("Int" in $$parsedSource) { + $$parsedSource["Int"] = $$createField1_0($$parsedSource["Int"]); + } + if ("Uint" in $$parsedSource) { + $$parsedSource["Uint"] = $$createField2_0($$parsedSource["Uint"]); + } + if ("Float" in $$parsedSource) { + $$parsedSource["Float"] = $$createField3_0($$parsedSource["Float"]); + } + if ("Complex" in $$parsedSource) { + $$parsedSource["Complex"] = $$createField4_0($$parsedSource["Complex"]); + } + if ("Byte" in $$parsedSource) { + $$parsedSource["Byte"] = $$createField5_0($$parsedSource["Byte"]); + } + if ("Rune" in $$parsedSource) { + $$parsedSource["Rune"] = $$createField6_0($$parsedSource["Rune"]); + } + if ("String" in $$parsedSource) { + $$parsedSource["String"] = $$createField7_0($$parsedSource["String"]); + } + if ("IntPtr" in $$parsedSource) { + $$parsedSource["IntPtr"] = $$createField8_0($$parsedSource["IntPtr"]); + } + if ("UintPtr" in $$parsedSource) { + $$parsedSource["UintPtr"] = $$createField9_0($$parsedSource["UintPtr"]); + } + if ("FloatPtr" in $$parsedSource) { + $$parsedSource["FloatPtr"] = $$createField10_0($$parsedSource["FloatPtr"]); + } + if ("ComplexPtr" in $$parsedSource) { + $$parsedSource["ComplexPtr"] = $$createField11_0($$parsedSource["ComplexPtr"]); + } + if ("StringPtr" in $$parsedSource) { + $$parsedSource["StringPtr"] = $$createField12_0($$parsedSource["StringPtr"]); + } + if ("NTM" in $$parsedSource) { + $$parsedSource["NTM"] = $$createField13_0($$parsedSource["NTM"]); + } + if ("NTMPtr" in $$parsedSource) { + $$parsedSource["NTMPtr"] = $$createField14_0($$parsedSource["NTMPtr"]); + } + if ("VTM" in $$parsedSource) { + $$parsedSource["VTM"] = $$createField15_0($$parsedSource["VTM"]); + } + if ("VTMPtr" in $$parsedSource) { + $$parsedSource["VTMPtr"] = $$createField16_0($$parsedSource["VTMPtr"]); + } + if ("PTM" in $$parsedSource) { + $$parsedSource["PTM"] = $$createField17_0($$parsedSource["PTM"]); + } + if ("PTMPtr" in $$parsedSource) { + $$parsedSource["PTMPtr"] = $$createField18_0($$parsedSource["PTMPtr"]); + } + if ("JTM" in $$parsedSource) { + $$parsedSource["JTM"] = $$createField19_0($$parsedSource["JTM"]); + } + if ("JTMPtr" in $$parsedSource) { + $$parsedSource["JTMPtr"] = $$createField20_0($$parsedSource["JTMPtr"]); + } + if ("A" in $$parsedSource) { + $$parsedSource["A"] = $$createField21_0($$parsedSource["A"]); + } + if ("APtr" in $$parsedSource) { + $$parsedSource["APtr"] = $$createField22_0($$parsedSource["APtr"]); + } + if ("TM" in $$parsedSource) { + $$parsedSource["TM"] = $$createField23_0($$parsedSource["TM"]); + } + if ("TMPtr" in $$parsedSource) { + $$parsedSource["TMPtr"] = $$createField24_0($$parsedSource["TMPtr"]); + } + if ("CI" in $$parsedSource) { + $$parsedSource["CI"] = $$createField25_0($$parsedSource["CI"]); + } + if ("CIPtr" in $$parsedSource) { + $$parsedSource["CIPtr"] = $$createField26_0($$parsedSource["CIPtr"]); + } + if ("EI" in $$parsedSource) { + $$parsedSource["EI"] = $$createField27_0($$parsedSource["EI"]); + } + if ("EIPtr" in $$parsedSource) { + $$parsedSource["EIPtr"] = $$createField28_0($$parsedSource["EIPtr"]); + } + if ("EV" in $$parsedSource) { + $$parsedSource["EV"] = $$createField29_0($$parsedSource["EV"]); + } + if ("EVPtr" in $$parsedSource) { + $$parsedSource["EVPtr"] = $$createField30_0($$parsedSource["EVPtr"]); + } + if ("EVP" in $$parsedSource) { + $$parsedSource["EVP"] = $$createField31_0($$parsedSource["EVP"]); + } + if ("EVPPtr" in $$parsedSource) { + $$parsedSource["EVPPtr"] = $$createField32_0($$parsedSource["EVPPtr"]); + } + if ("EP" in $$parsedSource) { + $$parsedSource["EP"] = $$createField33_0($$parsedSource["EP"]); + } + if ("EPPtr" in $$parsedSource) { + $$parsedSource["EPPtr"] = $$createField34_0($$parsedSource["EPPtr"]); + } + if ("EPP" in $$parsedSource) { + $$parsedSource["EPP"] = $$createField35_0($$parsedSource["EPP"]); + } + if ("EPPPtr" in $$parsedSource) { + $$parsedSource["EPPPtr"] = $$createField36_0($$parsedSource["EPPPtr"]); + } + if ("ECI" in $$parsedSource) { + $$parsedSource["ECI"] = $$createField37_0($$parsedSource["ECI"]); + } + if ("ECIPtr" in $$parsedSource) { + $$parsedSource["ECIPtr"] = $$createField38_0($$parsedSource["ECIPtr"]); + } + if ("EOI" in $$parsedSource) { + $$parsedSource["EOI"] = $$createField39_0($$parsedSource["EOI"]); + } + if ("EOIPtr" in $$parsedSource) { + $$parsedSource["EOIPtr"] = $$createField40_0($$parsedSource["EOIPtr"]); + } + if ("WT" in $$parsedSource) { + $$parsedSource["WT"] = $$createField41_0($$parsedSource["WT"]); + } + if ("WA" in $$parsedSource) { + $$parsedSource["WA"] = $$createField42_0($$parsedSource["WA"]); + } + if ("ST" in $$parsedSource) { + $$parsedSource["ST"] = $$createField43_0($$parsedSource["ST"]); + } + if ("SA" in $$parsedSource) { + $$parsedSource["SA"] = $$createField44_0($$parsedSource["SA"]); + } + if ("IntT" in $$parsedSource) { + $$parsedSource["IntT"] = $$createField45_0($$parsedSource["IntT"]); + } + if ("IntA" in $$parsedSource) { + $$parsedSource["IntA"] = $$createField46_0($$parsedSource["IntA"]); + } + if ("VT" in $$parsedSource) { + $$parsedSource["VT"] = $$createField47_0($$parsedSource["VT"]); + } + if ("VTPtr" in $$parsedSource) { + $$parsedSource["VTPtr"] = $$createField48_0($$parsedSource["VTPtr"]); + } + if ("VPT" in $$parsedSource) { + $$parsedSource["VPT"] = $$createField49_0($$parsedSource["VPT"]); + } + if ("VPTPtr" in $$parsedSource) { + $$parsedSource["VPTPtr"] = $$createField50_0($$parsedSource["VPTPtr"]); + } + if ("VA" in $$parsedSource) { + $$parsedSource["VA"] = $$createField51_0($$parsedSource["VA"]); + } + if ("VAPtr" in $$parsedSource) { + $$parsedSource["VAPtr"] = $$createField52_0($$parsedSource["VAPtr"]); + } + if ("VPA" in $$parsedSource) { + $$parsedSource["VPA"] = $$createField53_0($$parsedSource["VPA"]); + } + if ("VPAPtr" in $$parsedSource) { + $$parsedSource["VPAPtr"] = $$createField54_0($$parsedSource["VPAPtr"]); + } + if ("PT" in $$parsedSource) { + $$parsedSource["PT"] = $$createField55_0($$parsedSource["PT"]); + } + if ("PTPtr" in $$parsedSource) { + $$parsedSource["PTPtr"] = $$createField56_0($$parsedSource["PTPtr"]); + } + if ("PPT" in $$parsedSource) { + $$parsedSource["PPT"] = $$createField57_0($$parsedSource["PPT"]); + } + if ("PPTPtr" in $$parsedSource) { + $$parsedSource["PPTPtr"] = $$createField58_0($$parsedSource["PPTPtr"]); + } + if ("PA" in $$parsedSource) { + $$parsedSource["PA"] = $$createField59_0($$parsedSource["PA"]); + } + if ("PAPtr" in $$parsedSource) { + $$parsedSource["PAPtr"] = $$createField60_0($$parsedSource["PAPtr"]); + } + if ("PPA" in $$parsedSource) { + $$parsedSource["PPA"] = $$createField61_0($$parsedSource["PPA"]); + } + if ("PPAPtr" in $$parsedSource) { + $$parsedSource["PPAPtr"] = $$createField62_0($$parsedSource["PPAPtr"]); + } + if ("IT" in $$parsedSource) { + $$parsedSource["IT"] = $$createField63_0($$parsedSource["IT"]); + } + if ("ITPtr" in $$parsedSource) { + $$parsedSource["ITPtr"] = $$createField64_0($$parsedSource["ITPtr"]); + } + if ("IPT" in $$parsedSource) { + $$parsedSource["IPT"] = $$createField65_0($$parsedSource["IPT"]); + } + if ("IPTPtr" in $$parsedSource) { + $$parsedSource["IPTPtr"] = $$createField66_0($$parsedSource["IPTPtr"]); + } + if ("IA" in $$parsedSource) { + $$parsedSource["IA"] = $$createField67_0($$parsedSource["IA"]); + } + if ("IAPtr" in $$parsedSource) { + $$parsedSource["IAPtr"] = $$createField68_0($$parsedSource["IAPtr"]); + } + if ("IPA" in $$parsedSource) { + $$parsedSource["IPA"] = $$createField69_0($$parsedSource["IPA"]); + } + if ("IPAPtr" in $$parsedSource) { + $$parsedSource["IPAPtr"] = $$createField70_0($$parsedSource["IPAPtr"]); + } + if ("TPR" in $$parsedSource) { + $$parsedSource["TPR"] = $$createField71_0($$parsedSource["TPR"]); + } + if ("TPRPtr" in $$parsedSource) { + $$parsedSource["TPRPtr"] = $$createField72_0($$parsedSource["TPRPtr"]); + } + if ("TPS" in $$parsedSource) { + $$parsedSource["TPS"] = $$createField73_0($$parsedSource["TPS"]); + } + if ("TPSPtr" in $$parsedSource) { + $$parsedSource["TPSPtr"] = $$createField74_0($$parsedSource["TPSPtr"]); + } + if ("TPT" in $$parsedSource) { + $$parsedSource["TPT"] = $$createField75_0($$parsedSource["TPT"]); + } + if ("TPTPtr" in $$parsedSource) { + $$parsedSource["TPTPtr"] = $$createField76_0($$parsedSource["TPTPtr"]); + } + if ("TPU" in $$parsedSource) { + $$parsedSource["TPU"] = $$createField77_0($$parsedSource["TPU"]); + } + if ("TPUPtr" in $$parsedSource) { + $$parsedSource["TPUPtr"] = $$createField78_0($$parsedSource["TPUPtr"]); + } + if ("TPV" in $$parsedSource) { + $$parsedSource["TPV"] = $$createField79_0($$parsedSource["TPV"]); + } + if ("TPVPtr" in $$parsedSource) { + $$parsedSource["TPVPtr"] = $$createField80_0($$parsedSource["TPVPtr"]); + } + if ("TPW" in $$parsedSource) { + $$parsedSource["TPW"] = $$createField81_0($$parsedSource["TPW"]); + } + if ("TPWPtr" in $$parsedSource) { + $$parsedSource["TPWPtr"] = $$createField82_0($$parsedSource["TPWPtr"]); + } + if ("TPX" in $$parsedSource) { + $$parsedSource["TPX"] = $$createField83_0($$parsedSource["TPX"]); + } + if ("TPXPtr" in $$parsedSource) { + $$parsedSource["TPXPtr"] = $$createField84_0($$parsedSource["TPXPtr"]); + } + if ("TPY" in $$parsedSource) { + $$parsedSource["TPY"] = $$createField85_0($$parsedSource["TPY"]); + } + if ("TPYPtr" in $$parsedSource) { + $$parsedSource["TPYPtr"] = $$createField86_0($$parsedSource["TPYPtr"]); + } + if ("TPZ" in $$parsedSource) { + $$parsedSource["TPZ"] = $$createField87_0($$parsedSource["TPZ"]); + } + if ("TPZPtr" in $$parsedSource) { + $$parsedSource["TPZPtr"] = $$createField88_0($$parsedSource["TPZPtr"]); + } + return new Maps(/** @type {Partial>} */($$parsedSource)); + }; + } +} + +/** + * @typedef {PointerTextMarshaler} PointerAlias + */ + +/** + * @typedef {string} PointerTextMarshaler + */ + +/** + * @typedef {string} StringAlias + */ + +/** + * @typedef {string} StringType + */ + +/** + * @typedef {ValueTextMarshaler} ValueAlias + */ + +/** + * @typedef {string} ValueTextMarshaler + */ + +// Private type creation functions +const $$createType0 = $Create.Map($Create.Any, $Create.Any); +const $$createType1 = $Create.Map($Create.Any, $Create.Any); +const $$createType2 = $Create.Map($Create.Any, $Create.Any); +const $$createType3 = $Create.Map($Create.Any, $Create.Any); +const $$createType4 = $Create.Map($Create.Any, $Create.Any); +const $$createType5 = $Create.Map($Create.Any, $Create.Any); +const $$createType6 = $Create.Map($Create.Any, $Create.Any); +const $$createType7 = $Create.Map($Create.Any, $Create.Any); +const $$createType8 = $Create.Map($Create.Any, $Create.Any); +const $$createType9 = $Create.Map($Create.Any, $Create.Any); +const $$createType10 = $Create.Map($Create.Any, $Create.Any); +const $$createType11 = $Create.Map($Create.Any, $Create.Any); +const $$createType12 = $Create.Map($Create.Any, $Create.Any); +const $$createType13 = $Create.Map($Create.Any, $Create.Any); +const $$createType14 = $Create.Map($Create.Any, $Create.Any); +const $$createType15 = $Create.Map($Create.Any, $Create.Any); +const $$createType16 = $Create.Map($Create.Any, $Create.Any); +const $$createType17 = $Create.Map($Create.Any, $Create.Any); +const $$createType18 = $Create.Map($Create.Any, $Create.Any); +const $$createType19 = $Create.Map($Create.Any, $Create.Any); +const $$createType20 = $Create.Map($Create.Any, $Create.Any); +const $$createType21 = $Create.Map($Create.Any, $Create.Any); +const $$createType22 = $Create.Map($Create.Any, $Create.Any); +const $$createType23 = $Create.Map($Create.Any, $Create.Any); +const $$createType24 = $Create.Map($Create.Any, $Create.Any); +const $$createType25 = $Create.Map($Create.Any, $Create.Any); +const $$createType26 = $Create.Map($Create.Any, $Create.Any); +const $$createType27 = $Create.Map($Create.Any, $Create.Any); +const $$createType28 = $Create.Map($Create.Any, $Create.Any); +const $$createType29 = $Create.Map($Create.Any, $Create.Any); +const $$createType30 = $Create.Map($Create.Any, $Create.Any); +const $$createType31 = $Create.Map($Create.Any, $Create.Any); +const $$createType32 = $Create.Map($Create.Any, $Create.Any); +const $$createType33 = $Create.Map($Create.Any, $Create.Any); +const $$createType34 = $Create.Map($Create.Any, $Create.Any); +const $$createType35 = $Create.Map($Create.Any, $Create.Any); +const $$createType36 = $Create.Map($Create.Any, $Create.Any); +const $$createType37 = $Create.Map($Create.Any, $Create.Any); +const $$createType38 = $Create.Map($Create.Any, $Create.Any); +const $$createType39 = $Create.Map($Create.Any, $Create.Any); +const $$createType40 = $Create.Map($Create.Any, $Create.Any); +const $$createType41 = $Create.Map($Create.Any, $Create.Any); +const $$createType42 = $Create.Map($Create.Any, $Create.Any); +const $$createType43 = $Create.Map($Create.Any, $Create.Any); +const $$createType44 = $Create.Map($Create.Any, $Create.Any); +const $$createType45 = $Create.Map($Create.Any, $Create.Any); +const $$createType46 = $Create.Map($Create.Any, $Create.Any); +const $$createType47 = $Create.Map($Create.Any, $Create.Any); +const $$createType48 = $Create.Map($Create.Any, $Create.Any); +const $$createType49 = $Create.Map($Create.Any, $Create.Any); +const $$createType50 = $Create.Map($Create.Any, $Create.Any); +const $$createType51 = $Create.Map($Create.Any, $Create.Any); +const $$createType52 = $Create.Map($Create.Any, $Create.Any); +const $$createType53 = $Create.Map($Create.Any, $Create.Any); +const $$createType54 = $Create.Map($Create.Any, $Create.Any); +const $$createType55 = $Create.Map($Create.Any, $Create.Any); +const $$createType56 = $Create.Map($Create.Any, $Create.Any); +const $$createType57 = $Create.Map($Create.Any, $Create.Any); +const $$createType58 = $Create.Map($Create.Any, $Create.Any); +const $$createType59 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType60 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType61 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType62 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType63 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType64 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType65 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType66 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType67 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType68 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType69 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType70 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType71 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType72 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType73 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType74 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType75 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType76 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.js new file mode 100644 index 000000000..bca8b3182 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.js @@ -0,0 +1,26 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call, Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +/** + * @returns {Promise<$models.Maps<$models.PointerTextMarshaler, number, number, $models.ValueTextMarshaler, $models.PointerTextMarshaler | null, $models.ValueTextMarshaler, $models.StringType, $models.ValueTextMarshaler, $models.PointerTextMarshaler | null>> & { cancel(): void }} + */ +export function Method() { + let $resultPromise = /** @type {any} */($Call.ByID(4021345184)); + let $typingPromise = /** @type {any} */($resultPromise.then(($result) => { + return $$createType0($result); + })); + $typingPromise.cancel = $resultPromise.cancel.bind($resultPromise); + return $typingPromise; +} + +// Private type creation functions +const $$createType0 = $models.Maps.createFrom($Create.Any, $Create.Any, $Create.Any, $Create.Any, $Create.Any, $Create.Any, $Create.Any, $Create.Any, $Create.Any); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.js new file mode 100644 index 000000000..8f525252e --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.js @@ -0,0 +1,116 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +export { + Data, + ImplicitNonMarshaler, + NonMarshaler +} from "./models.js"; + +import * as $models from "./models.js"; + +/** + * any + * @typedef {$models.AliasJsonMarshaler} AliasJsonMarshaler + */ + +/** + * any + * @typedef {$models.AliasMarshaler} AliasMarshaler + */ + +/** + * struct{} + * @typedef {$models.AliasNonMarshaler} AliasNonMarshaler + */ + +/** + * string + * @typedef {$models.AliasTextMarshaler} AliasTextMarshaler + */ + +/** + * any + * @typedef {$models.ImplicitJsonButText} ImplicitJsonButText + */ + +/** + * any + * @typedef {$models.ImplicitJsonMarshaler} ImplicitJsonMarshaler + */ + +/** + * any + * @typedef {$models.ImplicitMarshaler} ImplicitMarshaler + */ + +/** + * string + * @typedef {$models.ImplicitNonJson} ImplicitNonJson + */ + +/** + * any + * @typedef {$models.ImplicitNonText} ImplicitNonText + */ + +/** + * any + * @typedef {$models.ImplicitTextButJson} ImplicitTextButJson + */ + +/** + * string + * @typedef {$models.ImplicitTextMarshaler} ImplicitTextMarshaler + */ + +/** + * any + * @typedef {$models.PointerJsonMarshaler} PointerJsonMarshaler + */ + +/** + * any + * @typedef {$models.PointerMarshaler} PointerMarshaler + */ + +/** + * string + * @typedef {$models.PointerTextMarshaler} PointerTextMarshaler + */ + +/** + * any + * @typedef {$models.UnderlyingJsonMarshaler} UnderlyingJsonMarshaler + */ + +/** + * any + * @typedef {$models.UnderlyingMarshaler} UnderlyingMarshaler + */ + +/** + * string + * @typedef {$models.UnderlyingTextMarshaler} UnderlyingTextMarshaler + */ + +/** + * any + * @typedef {$models.ValueJsonMarshaler} ValueJsonMarshaler + */ + +/** + * any + * @typedef {$models.ValueMarshaler} ValueMarshaler + */ + +/** + * string + * @typedef {$models.ValueTextMarshaler} ValueTextMarshaler + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.js new file mode 100644 index 000000000..1871e9492 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.js @@ -0,0 +1,630 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as encoding$0 from "../../../../../../../../encoding/models.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as json$0 from "../../../../../../../../encoding/json/models.js"; + +/** + * any + * @typedef {any} AliasJsonMarshaler + */ + +/** + * any + * @typedef {any} AliasMarshaler + */ + +/** + * struct{} + * @typedef { { + * } } AliasNonMarshaler + */ + +/** + * string + * @typedef {string} AliasTextMarshaler + */ + +export class Data { + /** + * Creates a new Data instance. + * @param {Partial} [$$source = {}] - The source object to create the Data. + */ + constructor($$source = {}) { + if (!("NM" in $$source)) { + /** + * @member + * @type {NonMarshaler} + */ + this["NM"] = (new NonMarshaler()); + } + if (!("NMPtr" in $$source)) { + /** + * NonMarshaler | null + * @member + * @type {NonMarshaler | null} + */ + this["NMPtr"] = null; + } + if (!("VJM" in $$source)) { + /** + * @member + * @type {ValueJsonMarshaler} + */ + this["VJM"] = null; + } + if (!("VJMPtr" in $$source)) { + /** + * ValueJsonMarshaler | null + * @member + * @type {ValueJsonMarshaler | null} + */ + this["VJMPtr"] = null; + } + if (!("PJM" in $$source)) { + /** + * @member + * @type {PointerJsonMarshaler} + */ + this["PJM"] = null; + } + if (!("PJMPtr" in $$source)) { + /** + * PointerJsonMarshaler | null + * @member + * @type {PointerJsonMarshaler | null} + */ + this["PJMPtr"] = null; + } + if (!("VTM" in $$source)) { + /** + * @member + * @type {ValueTextMarshaler} + */ + this["VTM"] = ""; + } + if (!("VTMPtr" in $$source)) { + /** + * ValueTextMarshaler | null + * @member + * @type {ValueTextMarshaler | null} + */ + this["VTMPtr"] = null; + } + if (!("PTM" in $$source)) { + /** + * @member + * @type {PointerTextMarshaler} + */ + this["PTM"] = ""; + } + if (!("PTMPtr" in $$source)) { + /** + * PointerTextMarshaler | null + * @member + * @type {PointerTextMarshaler | null} + */ + this["PTMPtr"] = null; + } + if (!("VM" in $$source)) { + /** + * @member + * @type {ValueMarshaler} + */ + this["VM"] = null; + } + if (!("VMPtr" in $$source)) { + /** + * ValueMarshaler | null + * @member + * @type {ValueMarshaler | null} + */ + this["VMPtr"] = null; + } + if (!("PM" in $$source)) { + /** + * @member + * @type {PointerMarshaler} + */ + this["PM"] = null; + } + if (!("PMPtr" in $$source)) { + /** + * PointerMarshaler | null + * @member + * @type {PointerMarshaler | null} + */ + this["PMPtr"] = null; + } + if (!("UJM" in $$source)) { + /** + * @member + * @type {UnderlyingJsonMarshaler} + */ + this["UJM"] = null; + } + if (!("UJMPtr" in $$source)) { + /** + * UnderlyingJsonMarshaler | null + * @member + * @type {UnderlyingJsonMarshaler | null} + */ + this["UJMPtr"] = null; + } + if (!("UTM" in $$source)) { + /** + * @member + * @type {UnderlyingTextMarshaler} + */ + this["UTM"] = ""; + } + if (!("UTMPtr" in $$source)) { + /** + * UnderlyingTextMarshaler | null + * @member + * @type {UnderlyingTextMarshaler | null} + */ + this["UTMPtr"] = null; + } + if (!("UM" in $$source)) { + /** + * @member + * @type {UnderlyingMarshaler} + */ + this["UM"] = null; + } + if (!("UMPtr" in $$source)) { + /** + * UnderlyingMarshaler | null + * @member + * @type {UnderlyingMarshaler | null} + */ + this["UMPtr"] = null; + } + if (!("JM" in $$source)) { + /** + * any + * @member + * @type {any} + */ + this["JM"] = null; + } + if (!("JMPtr" in $$source)) { + /** + * any | null + * @member + * @type {any | null} + */ + this["JMPtr"] = null; + } + if (!("TM" in $$source)) { + /** + * string + * @member + * @type {string} + */ + this["TM"] = ""; + } + if (!("TMPtr" in $$source)) { + /** + * string | null + * @member + * @type {string | null} + */ + this["TMPtr"] = null; + } + if (!("CJM" in $$source)) { + /** + * any + * @member + * @type {any} + */ + this["CJM"] = null; + } + if (!("CJMPtr" in $$source)) { + /** + * any | null + * @member + * @type {any | null} + */ + this["CJMPtr"] = null; + } + if (!("CTM" in $$source)) { + /** + * string + * @member + * @type {string} + */ + this["CTM"] = ""; + } + if (!("CTMPtr" in $$source)) { + /** + * string | null + * @member + * @type {string | null} + */ + this["CTMPtr"] = null; + } + if (!("CM" in $$source)) { + /** + * any + * @member + * @type {any} + */ + this["CM"] = null; + } + if (!("CMPtr" in $$source)) { + /** + * any | null + * @member + * @type {any | null} + */ + this["CMPtr"] = null; + } + if (!("ANM" in $$source)) { + /** + * @member + * @type {AliasNonMarshaler} + */ + this["ANM"] = {}; + } + if (!("ANMPtr" in $$source)) { + /** + * AliasNonMarshaler | null + * @member + * @type {AliasNonMarshaler | null} + */ + this["ANMPtr"] = null; + } + if (!("AJM" in $$source)) { + /** + * @member + * @type {AliasJsonMarshaler} + */ + this["AJM"] = null; + } + if (!("AJMPtr" in $$source)) { + /** + * AliasJsonMarshaler | null + * @member + * @type {AliasJsonMarshaler | null} + */ + this["AJMPtr"] = null; + } + if (!("ATM" in $$source)) { + /** + * @member + * @type {AliasTextMarshaler} + */ + this["ATM"] = ""; + } + if (!("ATMPtr" in $$source)) { + /** + * AliasTextMarshaler | null + * @member + * @type {AliasTextMarshaler | null} + */ + this["ATMPtr"] = null; + } + if (!("AM" in $$source)) { + /** + * @member + * @type {AliasMarshaler} + */ + this["AM"] = null; + } + if (!("AMPtr" in $$source)) { + /** + * AliasMarshaler | null + * @member + * @type {AliasMarshaler | null} + */ + this["AMPtr"] = null; + } + if (!("ImJM" in $$source)) { + /** + * @member + * @type {ImplicitJsonMarshaler} + */ + this["ImJM"] = null; + } + if (!("ImJMPtr" in $$source)) { + /** + * ImplicitJsonMarshaler | null + * @member + * @type {ImplicitJsonMarshaler | null} + */ + this["ImJMPtr"] = null; + } + if (!("ImTM" in $$source)) { + /** + * @member + * @type {ImplicitTextMarshaler} + */ + this["ImTM"] = ""; + } + if (!("ImTMPtr" in $$source)) { + /** + * ImplicitTextMarshaler | null + * @member + * @type {ImplicitTextMarshaler | null} + */ + this["ImTMPtr"] = null; + } + if (!("ImM" in $$source)) { + /** + * @member + * @type {ImplicitMarshaler} + */ + this["ImM"] = null; + } + if (!("ImMPtr" in $$source)) { + /** + * ImplicitMarshaler | null + * @member + * @type {ImplicitMarshaler | null} + */ + this["ImMPtr"] = null; + } + if (!("ImNJ" in $$source)) { + /** + * @member + * @type {ImplicitNonJson} + */ + this["ImNJ"] = ""; + } + if (!("ImNJPtr" in $$source)) { + /** + * ImplicitNonJson | null + * @member + * @type {ImplicitNonJson | null} + */ + this["ImNJPtr"] = null; + } + if (!("ImNT" in $$source)) { + /** + * @member + * @type {ImplicitNonText} + */ + this["ImNT"] = null; + } + if (!("ImNTPtr" in $$source)) { + /** + * ImplicitNonText | null + * @member + * @type {ImplicitNonText | null} + */ + this["ImNTPtr"] = null; + } + if (!("ImNM" in $$source)) { + /** + * @member + * @type {ImplicitNonMarshaler} + */ + this["ImNM"] = (new ImplicitNonMarshaler()); + } + if (!("ImNMPtr" in $$source)) { + /** + * ImplicitNonMarshaler | null + * @member + * @type {ImplicitNonMarshaler | null} + */ + this["ImNMPtr"] = null; + } + if (!("ImJbT" in $$source)) { + /** + * @member + * @type {ImplicitJsonButText} + */ + this["ImJbT"] = null; + } + if (!("ImJbTPtr" in $$source)) { + /** + * ImplicitJsonButText | null + * @member + * @type {ImplicitJsonButText | null} + */ + this["ImJbTPtr"] = null; + } + if (!("ImTbJ" in $$source)) { + /** + * @member + * @type {ImplicitTextButJson} + */ + this["ImTbJ"] = null; + } + if (!("ImTbJPtr" in $$source)) { + /** + * ImplicitTextButJson | null + * @member + * @type {ImplicitTextButJson | null} + */ + this["ImTbJPtr"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Data instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Data} + */ + static createFrom($$source = {}) { + const $$createField0_0 = $$createType0; + const $$createField1_0 = $$createType1; + const $$createField48_0 = $$createType2; + const $$createField49_0 = $$createType3; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("NM" in $$parsedSource) { + $$parsedSource["NM"] = $$createField0_0($$parsedSource["NM"]); + } + if ("NMPtr" in $$parsedSource) { + $$parsedSource["NMPtr"] = $$createField1_0($$parsedSource["NMPtr"]); + } + if ("ImNM" in $$parsedSource) { + $$parsedSource["ImNM"] = $$createField48_0($$parsedSource["ImNM"]); + } + if ("ImNMPtr" in $$parsedSource) { + $$parsedSource["ImNMPtr"] = $$createField49_0($$parsedSource["ImNMPtr"]); + } + return new Data(/** @type {Partial} */($$parsedSource)); + } +} + +/** + * any + * @typedef {any} ImplicitJsonButText + */ + +/** + * any + * @typedef {any} ImplicitJsonMarshaler + */ + +/** + * any + * @typedef {any} ImplicitMarshaler + */ + +/** + * string + * @typedef {string} ImplicitNonJson + */ + +/** + * class{ Marshaler, TextMarshaler } + */ +export class ImplicitNonMarshaler { + /** + * Creates a new ImplicitNonMarshaler instance. + * @param {Partial} [$$source = {}] - The source object to create the ImplicitNonMarshaler. + */ + constructor($$source = {}) { + if (!("Marshaler" in $$source)) { + /** + * @member + * @type {json$0.Marshaler} + */ + this["Marshaler"] = null; + } + if (!("TextMarshaler" in $$source)) { + /** + * @member + * @type {encoding$0.TextMarshaler} + */ + this["TextMarshaler"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new ImplicitNonMarshaler instance from a string or object. + * @param {any} [$$source = {}] + * @returns {ImplicitNonMarshaler} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new ImplicitNonMarshaler(/** @type {Partial} */($$parsedSource)); + } +} + +/** + * any + * @typedef {any} ImplicitNonText + */ + +/** + * any + * @typedef {any} ImplicitTextButJson + */ + +/** + * string + * @typedef {string} ImplicitTextMarshaler + */ + +/** + * class {} + */ +export class NonMarshaler { + /** + * Creates a new NonMarshaler instance. + * @param {Partial} [$$source = {}] - The source object to create the NonMarshaler. + */ + constructor($$source = {}) { + + Object.assign(this, $$source); + } + + /** + * Creates a new NonMarshaler instance from a string or object. + * @param {any} [$$source = {}] + * @returns {NonMarshaler} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new NonMarshaler(/** @type {Partial} */($$parsedSource)); + } +} + +/** + * any + * @typedef {any} PointerJsonMarshaler + */ + +/** + * any + * @typedef {any} PointerMarshaler + */ + +/** + * string + * @typedef {string} PointerTextMarshaler + */ + +/** + * any + * @typedef {any} UnderlyingJsonMarshaler + */ + +/** + * any + * @typedef {any} UnderlyingMarshaler + */ + +/** + * string + * @typedef {string} UnderlyingTextMarshaler + */ + +/** + * any + * @typedef {any} ValueJsonMarshaler + */ + +/** + * any + * @typedef {any} ValueMarshaler + */ + +/** + * string + * @typedef {string} ValueTextMarshaler + */ + +// Private type creation functions +const $$createType0 = NonMarshaler.createFrom; +const $$createType1 = $Create.Nullable($$createType0); +const $$createType2 = ImplicitNonMarshaler.createFrom; +const $$createType3 = $Create.Nullable($$createType2); diff --git a/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/examples/services/hashes/hashes.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.js similarity index 62% rename from v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/examples/services/hashes/hashes.js rename to v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.js index d2aaa4fdd..8e10d60e3 100644 --- a/v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/examples/services/hashes/hashes.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.js @@ -11,11 +11,10 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; import * as $models from "./models.js"; /** - * @param {string} s - * @returns {Promise<$models.Hashes> & { cancel(): void }} + * @returns {Promise<$models.Data> & { cancel(): void }} */ -export function Generate(s) { - let $resultPromise = /** @type {any} */($Call.ByID(1640814231, s)); +export function Method() { + let $resultPromise = /** @type {any} */($Call.ByID(4021345184)); let $typingPromise = /** @type {any} */($resultPromise.then(($result) => { return $$createType0($result); })); @@ -23,13 +22,5 @@ export function Generate(s) { return $typingPromise; } -/** - * @returns {Promise & { cancel(): void }} - */ -export function Name() { - let $resultPromise = /** @type {any} */($Call.ByID(2815914379)); - return $resultPromise; -} - // Private type creation functions -const $$createType0 = $models.Hashes.createFrom; +const $$createType0 = $models.Data.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.js index 79394cd22..9be766c03 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.js @@ -7,4 +7,9 @@ export { SomeMethods }; -export * from "./models.js"; +export { + HowDifferent, + Impersonator, + Person, + PrivatePerson +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.js deleted file mode 100644 index d09e0de6a..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.js +++ /dev/null @@ -1,181 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as other$0 from "./other/models.js"; - -/** - * HowDifferent is a curious kind of person - * that lets other people decide how they are different. - * @template How - */ -export class HowDifferent { - /** - * Creates a new HowDifferent instance. - * @param {Partial>} [$$source = {}] - The source object to create the HowDifferent. - */ - constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * They have a name as well. - * @member - * @type {string} - */ - this["Name"] = ""; - } - if (!("Differences" in $$source)) { - /** - * But they may have many differences. - * @member - * @type {{ [_: string]: How | null }[]} - */ - this["Differences"] = []; - } - - Object.assign(this, $$source); - } - - /** - * Given creation functions for each type parameter, - * returns a creation function for a concrete instance - * of the generic class HowDifferent. - * @template How - * @param {(source: any) => How} $$createParamHow - * @returns {($$source?: any) => HowDifferent} - */ - static createFrom($$createParamHow) { - const $$createField1_0 = $$createType1($$createParamHow); - return ($$source = {}) => { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Differences" in $$parsedSource) { - $$parsedSource["Differences"] = $$createField1_0($$parsedSource["Differences"]); - } - return new HowDifferent(/** @type {Partial>} */($$parsedSource)); - }; - } -} - -/** - * Impersonator gets their fields from other people. - */ -export const Impersonator = other$0.OtherPerson; - -/** - * Impersonator gets their fields from other people. - * @typedef {other$0.OtherPerson} Impersonator - */ - -/** - * Person is not a number. - */ -export class Person { - /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. - */ - constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * They have a name. - * @member - * @type {string} - */ - this["Name"] = ""; - } - if (!("Friends" in $$source)) { - /** - * Exactly 4 sketchy friends. - * @member - * @type {Impersonator[]} - */ - this["Friends"] = Array.from({ length: 4 }, () => (new Impersonator())); - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Person} - */ - static createFrom($$source = {}) { - const $$createField1_0 = $$createType3; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Friends" in $$parsedSource) { - $$parsedSource["Friends"] = $$createField1_0($$parsedSource["Friends"]); - } - return new Person(/** @type {Partial} */($$parsedSource)); - } -} - -export class personImpl { - /** - * Creates a new personImpl instance. - * @param {Partial} [$$source = {}] - The source object to create the personImpl. - */ - constructor($$source = {}) { - if (!("Nickname" in $$source)) { - /** - * Nickname conceals a person's identity. - * @member - * @type {string} - */ - this["Nickname"] = ""; - } - if (!("Name" in $$source)) { - /** - * They have a name. - * @member - * @type {string} - */ - this["Name"] = ""; - } - if (!("Friends" in $$source)) { - /** - * Exactly 4 sketchy friends. - * @member - * @type {Impersonator[]} - */ - this["Friends"] = Array.from({ length: 4 }, () => (new Impersonator())); - } - - Object.assign(this, $$source); - } - - /** - * Creates a new personImpl instance from a string or object. - * @param {any} [$$source = {}] - * @returns {personImpl} - */ - static createFrom($$source = {}) { - const $$createField2_0 = $$createType3; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Friends" in $$parsedSource) { - $$parsedSource["Friends"] = $$createField2_0($$parsedSource["Friends"]); - } - return new personImpl(/** @type {Partial} */($$parsedSource)); - } -} - -/** - * PrivatePerson gets their fields from hidden sources. - */ -export const PrivatePerson = personImpl; - -/** - * PrivatePerson gets their fields from hidden sources. - * @typedef {personImpl} PrivatePerson - */ - -// Private type creation functions -const $$createType0 = ($$createParamHow) => $Create.Map($Create.Any, $$createParamHow); -const $$createType1 = ($$createParamHow) => $Create.Array($$createType0($$createParamHow)); -const $$createType2 = Impersonator.createFrom; -const $$createType3 = $Create.Array($$createType2); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.js index 1515d48ea..f88aa955a 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.js @@ -2,9 +2,180 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - HowDifferent, - Impersonator, - Person, - PrivatePerson -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as other$0 from "./other/models.js"; + +/** + * HowDifferent is a curious kind of person + * that lets other people decide how they are different. + * @template How + */ +export class HowDifferent { + /** + * Creates a new HowDifferent instance. + * @param {Partial>} [$$source = {}] - The source object to create the HowDifferent. + */ + constructor($$source = {}) { + if (!("Name" in $$source)) { + /** + * They have a name as well. + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("Differences" in $$source)) { + /** + * But they may have many differences. + * @member + * @type {{ [_: string]: How }[]} + */ + this["Differences"] = []; + } + + Object.assign(this, $$source); + } + + /** + * Given creation functions for each type parameter, + * returns a creation function for a concrete instance + * of the generic class HowDifferent. + * @template How + * @param {(source: any) => How} $$createParamHow + * @returns {($$source?: any) => HowDifferent} + */ + static createFrom($$createParamHow) { + const $$createField1_0 = $$createType1($$createParamHow); + return ($$source = {}) => { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Differences" in $$parsedSource) { + $$parsedSource["Differences"] = $$createField1_0($$parsedSource["Differences"]); + } + return new HowDifferent(/** @type {Partial>} */($$parsedSource)); + }; + } +} + +/** + * Impersonator gets their fields from other people. + */ +export const Impersonator = other$0.OtherPerson; + +/** + * Impersonator gets their fields from other people. + * @typedef {other$0.OtherPerson} Impersonator + */ + +/** + * Person is not a number. + */ +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (!("Name" in $$source)) { + /** + * They have a name. + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("Friends" in $$source)) { + /** + * Exactly 4 sketchy friends. + * @member + * @type {Impersonator[]} + */ + this["Friends"] = Array.from({ length: 4 }, () => (new Impersonator())); + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + const $$createField1_0 = $$createType3; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Friends" in $$parsedSource) { + $$parsedSource["Friends"] = $$createField1_0($$parsedSource["Friends"]); + } + return new Person(/** @type {Partial} */($$parsedSource)); + } +} + +export class personImpl { + /** + * Creates a new personImpl instance. + * @param {Partial} [$$source = {}] - The source object to create the personImpl. + */ + constructor($$source = {}) { + if (!("Nickname" in $$source)) { + /** + * Nickname conceals a person's identity. + * @member + * @type {string} + */ + this["Nickname"] = ""; + } + if (!("Name" in $$source)) { + /** + * They have a name. + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("Friends" in $$source)) { + /** + * Exactly 4 sketchy friends. + * @member + * @type {Impersonator[]} + */ + this["Friends"] = Array.from({ length: 4 }, () => (new Impersonator())); + } + + Object.assign(this, $$source); + } + + /** + * Creates a new personImpl instance from a string or object. + * @param {any} [$$source = {}] + * @returns {personImpl} + */ + static createFrom($$source = {}) { + const $$createField2_0 = $$createType3; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Friends" in $$parsedSource) { + $$parsedSource["Friends"] = $$createField2_0($$parsedSource["Friends"]); + } + return new personImpl(/** @type {Partial} */($$parsedSource)); + } +} + +/** + * PrivatePerson gets their fields from hidden sources. + */ +export const PrivatePerson = personImpl; + +/** + * PrivatePerson gets their fields from hidden sources. + * @typedef {personImpl} PrivatePerson + */ + +// Private type creation functions +const $$createType0 = ($$createParamHow) => $Create.Map($Create.Any, $$createParamHow); +const $$createType1 = ($$createParamHow) => $Create.Array($$createType0($$createParamHow)); +const $$createType2 = other$0.OtherPerson.createFrom($Create.Any); +const $$createType3 = $Create.Array($$createType2); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.js index 9ac8ae8c2..db4e64147 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.js @@ -7,4 +7,6 @@ export { OtherMethods }; -export * from "./models.js"; +export { + OtherPerson +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.js deleted file mode 100644 index 455e369fc..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.js +++ /dev/null @@ -1,60 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -/** - * OtherPerson is like a person, but different. - * @template T - */ -export class OtherPerson { - /** - * Creates a new OtherPerson instance. - * @param {Partial>} [$$source = {}] - The source object to create the OtherPerson. - */ - constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * They have a name as well. - * @member - * @type {string} - */ - this["Name"] = ""; - } - if (!("Differences" in $$source)) { - /** - * But they may have many differences. - * @member - * @type {(T | null)[]} - */ - this["Differences"] = []; - } - - Object.assign(this, $$source); - } - - /** - * Given creation functions for each type parameter, - * returns a creation function for a concrete instance - * of the generic class OtherPerson. - * @template T - * @param {(source: any) => T} $$createParamT - * @returns {($$source?: any) => OtherPerson} - */ - static createFrom($$createParamT) { - const $$createField1_0 = $$createType0($$createParamT); - return ($$source = {}) => { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Differences" in $$parsedSource) { - $$parsedSource["Differences"] = $$createField1_0($$parsedSource["Differences"]); - } - return new OtherPerson(/** @type {Partial>} */($$parsedSource)); - }; - } -} - -// Private type creation functions -const $$createType0 = ($$createParamT) => $Create.Array($$createParamT); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.js index 30bb60b19..c10d33908 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.js @@ -2,6 +2,59 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - OtherPerson -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * OtherPerson is like a person, but different. + * @template T + */ +export class OtherPerson { + /** + * Creates a new OtherPerson instance. + * @param {Partial>} [$$source = {}] - The source object to create the OtherPerson. + */ + constructor($$source = {}) { + if (!("Name" in $$source)) { + /** + * They have a name as well. + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("Differences" in $$source)) { + /** + * But they may have many differences. + * @member + * @type {T[]} + */ + this["Differences"] = []; + } + + Object.assign(this, $$source); + } + + /** + * Given creation functions for each type parameter, + * returns a creation function for a concrete instance + * of the generic class OtherPerson. + * @template T + * @param {(source: any) => T} $$createParamT + * @returns {($$source?: any) => OtherPerson} + */ + static createFrom($$createParamT) { + const $$createField1_0 = $$createType0($$createParamT); + return ($$source = {}) => { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Differences" in $$parsedSource) { + $$parsedSource["Differences"] = $$createField1_0($$parsedSource["Differences"]); + } + return new OtherPerson(/** @type {Partial>} */($$parsedSource)); + }; + } +} + +// Private type creation functions +const $$createType0 = ($$createParamT) => $Create.Array($$createParamT); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.js index 232f0ec41..9613f1c61 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * LikeThisOne is an example method that does nothing. @@ -43,4 +43,4 @@ export function LikeThisOtherOne() { // Private type creation functions const $$createType0 = $models.Person.createFrom; const $$createType1 = $models.HowDifferent.createFrom($Create.Any); -const $$createType2 = $models.PrivatePerson.createFrom; +const $$createType2 = $models.personImpl.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/out_of_tree/embedservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/out_of_tree/embedservice.js index f85f737a4..bac3669ab 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/out_of_tree/embedservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/out_of_tree/embedservice.js @@ -43,4 +43,4 @@ export function LikeThisOtherOne() { // Private type creation functions const $$createType0 = nobindingshere$0.Person.createFrom; const $$createType1 = nobindingshere$0.HowDifferent.createFrom($Create.Any); -const $$createType2 = nobindingshere$0.PrivatePerson.createFrom; +const $$createType2 = nobindingshere$0.personImpl.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.js index bf314a446..5f8cf55b5 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.js index 130c30a09..fefe6b6ba 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.js @@ -7,4 +7,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.js deleted file mode 100644 index e187cce22..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.js +++ /dev/null @@ -1,54 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -export class Person { - /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. - */ - constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * @member - * @type {string} - */ - this["Name"] = ""; - } - if (!("Address" in $$source)) { - /** - * @member - * @type {services$0.Address | null} - */ - this["Address"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Person} - */ - static createFrom($$source = {}) { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Address" in $$parsedSource) { - $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); - } - return new Person(/** @type {Partial} */($$parsedSource)); - } -} - -// Private type creation functions -const $$createType0 = services$0.Address.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.js index 1cf2e2418..e187cce22 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.js @@ -2,6 +2,53 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; + +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (!("Name" in $$source)) { + /** + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("Address" in $$source)) { + /** + * @member + * @type {services$0.Address | null} + */ + this["Address"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Address" in $$parsedSource) { + $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); + } + return new Person(/** @type {Partial} */($$parsedSource)); + } +} + +// Private type creation functions +const $$createType0 = services$0.Address.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.js index bac48bb49..ed65b6d15 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.js @@ -7,4 +7,6 @@ export { OtherService }; -export * from "./models.js"; +export { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.js deleted file mode 100644 index fb1176dee..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.js +++ /dev/null @@ -1,49 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Address { - /** - * Creates a new Address instance. - * @param {Partial
} [$$source = {}] - The source object to create the Address. - */ - constructor($$source = {}) { - if (!("Street" in $$source)) { - /** - * @member - * @type {string} - */ - this["Street"] = ""; - } - if (!("State" in $$source)) { - /** - * @member - * @type {string} - */ - this["State"] = ""; - } - if (!("Country" in $$source)) { - /** - * @member - * @type {string} - */ - this["Country"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Address instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Address} - */ - static createFrom($$source = {}) { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Address(/** @type {Partial
} */($$parsedSource)); - } -} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.js index 6820003a0..fb1176dee 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.js @@ -2,6 +2,48 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Address -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Address { + /** + * Creates a new Address instance. + * @param {Partial
} [$$source = {}] - The source object to create the Address. + */ + constructor($$source = {}) { + if (!("Street" in $$source)) { + /** + * @member + * @type {string} + */ + this["Street"] = ""; + } + if (!("State" in $$source)) { + /** + * @member + * @type {string} + */ + this["State"] = ""; + } + if (!("Country" in $$source)) { + /** + * @member + * @type {string} + */ + this["Country"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Address instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Address} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Address(/** @type {Partial
} */($$parsedSource)); + } +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.js index f07d455b8..d61e9e689 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.js @@ -14,7 +14,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.js index dc5afe8ea..cb53251ed 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * @param {number[]} $in @@ -170,11 +170,11 @@ export function MapIntInt($in) { } /** - * @param {{ [_: string]: number }} $in + * @param {{ [_: `${number}`]: number | null }} $in * @returns {Promise & { cancel(): void }} */ -export function MapIntPointerInt($in) { - let $resultPromise = /** @type {any} */($Call.ByID(550413585, $in)); +export function MapIntIntPointer($in) { + let $resultPromise = /** @type {any} */($Call.ByID(2163571325, $in)); return $resultPromise; } diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.js index 130c30a09..fefe6b6ba 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.js @@ -7,4 +7,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.js deleted file mode 100644 index 660f38b29..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.js +++ /dev/null @@ -1,57 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Person { - /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. - */ - constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * @member - * @type {string} - */ - this["Name"] = ""; - } - if (!("Parent" in $$source)) { - /** - * @member - * @type {Person | null} - */ - this["Parent"] = null; - } - if (!("Details" in $$source)) { - /** - * @member - * @type {{"Age": number, "Address": {"Street": string}}} - */ - this["Details"] = {"Age": 0, "Address": {"Street": ""}}; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Person} - */ - static createFrom($$source = {}) { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Parent" in $$parsedSource) { - $$parsedSource["Parent"] = $$createField1_0($$parsedSource["Parent"]); - } - return new Person(/** @type {Partial} */($$parsedSource)); - } -} - -// Private type creation functions -const $$createType0 = Person.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.js index 1cf2e2418..660f38b29 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.js @@ -2,6 +2,56 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (!("Name" in $$source)) { + /** + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("Parent" in $$source)) { + /** + * @member + * @type {Person | null} + */ + this["Parent"] = null; + } + if (!("Details" in $$source)) { + /** + * @member + * @type {{"Age": number, "Address": {"Street": string}}} + */ + this["Details"] = {"Age": 0, "Address": {"Street": ""}}; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Parent" in $$parsedSource) { + $$parsedSource["Parent"] = $$createField1_0($$parsedSource["Parent"]); + } + return new Person(/** @type {Partial} */($$parsedSource)); + } +} + +// Private type creation functions +const $$createType0 = Person.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.js index dc5afe8ea..cb53251ed 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * @param {number[]} $in @@ -170,11 +170,11 @@ export function MapIntInt($in) { } /** - * @param {{ [_: string]: number }} $in + * @param {{ [_: `${number}`]: number | null }} $in * @returns {Promise & { cancel(): void }} */ -export function MapIntPointerInt($in) { - let $resultPromise = /** @type {any} */($Call.ByID(550413585, $in)); +export function MapIntIntPointer($in) { + let $resultPromise = /** @type {any} */($Call.ByID(2163571325, $in)); return $resultPromise; } diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.js index 130c30a09..fefe6b6ba 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.js @@ -7,4 +7,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.js deleted file mode 100644 index 660f38b29..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.js +++ /dev/null @@ -1,57 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Person { - /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. - */ - constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * @member - * @type {string} - */ - this["Name"] = ""; - } - if (!("Parent" in $$source)) { - /** - * @member - * @type {Person | null} - */ - this["Parent"] = null; - } - if (!("Details" in $$source)) { - /** - * @member - * @type {{"Age": number, "Address": {"Street": string}}} - */ - this["Details"] = {"Age": 0, "Address": {"Street": ""}}; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Person} - */ - static createFrom($$source = {}) { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Parent" in $$parsedSource) { - $$parsedSource["Parent"] = $$createField1_0($$parsedSource["Parent"]); - } - return new Person(/** @type {Partial} */($$parsedSource)); - } -} - -// Private type creation functions -const $$createType0 = Person.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.js index 1cf2e2418..660f38b29 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.js @@ -2,6 +2,56 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (!("Name" in $$source)) { + /** + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("Parent" in $$source)) { + /** + * @member + * @type {Person | null} + */ + this["Parent"] = null; + } + if (!("Details" in $$source)) { + /** + * @member + * @type {{"Age": number, "Address": {"Street": string}}} + */ + this["Details"] = {"Age": 0, "Address": {"Street": ""}}; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Parent" in $$parsedSource) { + $$parsedSource["Parent"] = $$createField1_0($$parsedSource["Parent"]); + } + return new Person(/** @type {Partial} */($$parsedSource)); + } +} + +// Private type creation functions +const $$createType0 = Person.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.js index bf314a446..5f8cf55b5 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.js index 130c30a09..fefe6b6ba 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.js @@ -7,4 +7,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.js deleted file mode 100644 index 0daca427b..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.js +++ /dev/null @@ -1,58 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -/** - * Person is a person! - * They have a name and an address - */ -export class Person { - /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. - */ - constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * @member - * @type {string} - */ - this["Name"] = ""; - } - if (!("Address" in $$source)) { - /** - * @member - * @type {services$0.Address | null} - */ - this["Address"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Person} - */ - static createFrom($$source = {}) { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Address" in $$parsedSource) { - $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); - } - return new Person(/** @type {Partial} */($$parsedSource)); - } -} - -// Private type creation functions -const $$createType0 = services$0.Address.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.js index 1cf2e2418..0daca427b 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.js @@ -2,6 +2,57 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; + +/** + * Person is a person! + * They have a name and an address + */ +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (!("Name" in $$source)) { + /** + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("Address" in $$source)) { + /** + * @member + * @type {services$0.Address | null} + */ + this["Address"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Address" in $$parsedSource) { + $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); + } + return new Person(/** @type {Partial} */($$parsedSource)); + } +} + +// Private type creation functions +const $$createType0 = services$0.Address.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.js index bac48bb49..ed65b6d15 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.js @@ -7,4 +7,6 @@ export { OtherService }; -export * from "./models.js"; +export { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.js deleted file mode 100644 index fb1176dee..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.js +++ /dev/null @@ -1,49 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Address { - /** - * Creates a new Address instance. - * @param {Partial
} [$$source = {}] - The source object to create the Address. - */ - constructor($$source = {}) { - if (!("Street" in $$source)) { - /** - * @member - * @type {string} - */ - this["Street"] = ""; - } - if (!("State" in $$source)) { - /** - * @member - * @type {string} - */ - this["State"] = ""; - } - if (!("Country" in $$source)) { - /** - * @member - * @type {string} - */ - this["Country"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Address instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Address} - */ - static createFrom($$source = {}) { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Address(/** @type {Partial
} */($$parsedSource)); - } -} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.js index 6820003a0..fb1176dee 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.js @@ -2,6 +2,48 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Address -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Address { + /** + * Creates a new Address instance. + * @param {Partial
} [$$source = {}] - The source object to create the Address. + */ + constructor($$source = {}) { + if (!("Street" in $$source)) { + /** + * @member + * @type {string} + */ + this["Street"] = ""; + } + if (!("State" in $$source)) { + /** + * @member + * @type {string} + */ + this["State"] = ""; + } + if (!("Country" in $$source)) { + /** + * @member + * @type {string} + */ + this["Country"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Address instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Address} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Address(/** @type {Partial
} */($$parsedSource)); + } +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.js index 871880362..63319bf06 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.js @@ -14,7 +14,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/warnings.log b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/warnings.log new file mode 100644 index 000000000..dbefd8749 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/warnings.log @@ -0,0 +1,47 @@ +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *R is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *S is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *T is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *U is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *V is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *X is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *Y is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *Z is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *any is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *complex64 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *encoding.TextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *float32 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.CustomInterface is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.EmbeddedInterface is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfaceAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfaceType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.NonTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValueType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *int is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *string is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *uint is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type R is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type T is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type W is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type any is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type bool is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type complex64 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type float32 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.EmbeddedPointer is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.NonTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValueType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.WrongAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.WrongType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/encoding/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/encoding/index.js new file mode 100644 index 000000000..cf48d86db --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/encoding/index.js @@ -0,0 +1,13 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as $models from "./models.js"; + +/** + * TextMarshaler is the interface implemented by an object that can + * marshal itself into a textual form. + * + * MarshalText encodes the receiver into UTF-8-encoded text and returns the result. + * @typedef {$models.TextMarshaler} TextMarshaler + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/encoding/json/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/encoding/json/index.js new file mode 100644 index 000000000..22f1fd904 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/encoding/json/index.js @@ -0,0 +1,11 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as $models from "./models.js"; + +/** + * Marshaler is the interface implemented by types that + * can marshal themselves into valid JSON. + * @typedef {$models.Marshaler} Marshaler + */ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.ts b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/encoding/json/models.js similarity index 59% rename from v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.ts rename to v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/encoding/json/models.js index b2b49ffa6..b7e840816 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.ts +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/encoding/json/models.js @@ -1,3 +1,4 @@ +// @ts-check // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT @@ -5,8 +6,8 @@ // @ts-ignore: Unused imports import {Create as $Create} from "/wails/runtime.js"; -export type Alias = Cyclic | null; - -export type Cyclic = { [_: string]: Alias }[]; - -export type GenericCyclic = {"X": GenericCyclic | null, "Y": (T | null)[]}[]; +/** + * Marshaler is the interface implemented by types that + * can marshal themselves into valid JSON. + * @typedef {any} Marshaler + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/encoding/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/encoding/models.js new file mode 100644 index 000000000..bbabe728a --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/encoding/models.js @@ -0,0 +1,15 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * TextMarshaler is the interface implemented by an object that can + * marshal itself into a textual form. + * + * MarshalText encodes the receiver into UTF-8-encoded text and returns the result. + * @typedef {any} TextMarshaler + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.js index e0c51be34..41565b11b 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.js @@ -13,7 +13,11 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as nobindingshere$0 from "../no_bindings_here/models.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; /** * Get someone. @@ -56,6 +60,18 @@ export function GetButDifferent() { return $typingPromise; } +/** + * @returns {Promise & { cancel(): void }} + */ +export function GetButForeignPrivateAlias() { + let $resultPromise = /** @type {any} */($Call.ByName("main.GreetService.GetButForeignPrivateAlias")); + let $typingPromise = /** @type {any} */($resultPromise.then(($result) => { + return $$createType2($result); + })); + $typingPromise.cancel = $resultPromise.cancel.bind($resultPromise); + return $typingPromise; +} + /** * Greet a lot of unusual things. * @param {$models.EmptyAliasStruct} $0 @@ -65,7 +81,7 @@ export function GetButDifferent() { export function Greet($0, $1) { let $resultPromise = /** @type {any} */($Call.ByName("main.GreetService.Greet", $0, $1)); let $typingPromise = /** @type {any} */($resultPromise.then(($result) => { - return $$createType5($result); + return $$createType6($result); })); $typingPromise.cancel = $resultPromise.cancel.bind($resultPromise); return $typingPromise; @@ -74,12 +90,13 @@ export function Greet($0, $1) { // Private type creation functions const $$createType0 = $models.Person.createFrom; const $$createType1 = $models.GenericPerson.createFrom($Create.Any); -const $$createType2 = $Create.Array($Create.Any); +const $$createType2 = nobindingshere$0.personImpl.createFrom; const $$createType3 = $Create.Array($Create.Any); -const $$createType4 = $Create.Struct({ - "NoMoreIdeas": $$createType3, -}); +const $$createType4 = $Create.Array($Create.Any); const $$createType5 = $Create.Struct({ - "Foo": $$createType2, - "Other": $$createType4, + "NoMoreIdeas": $$createType4, +}); +const $$createType6 = $Create.Struct({ + "Foo": $$createType3, + "Other": $$createType5, }); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.js index 130c30a09..10aa9e917 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.js @@ -7,4 +7,33 @@ export { GreetService }; -export * from "./models.js"; +export { + AliasedPerson, + EmptyStruct, + GenericPerson, + Person, + StrangelyAliasedPerson +} from "./models.js"; + +import * as $models from "./models.js"; + +/** + * A nice type Alias. + * @typedef {$models.Alias} Alias + */ + +/** + * A struct alias. + * This should be rendered as a typedef or interface in every mode. + * @typedef {$models.AliasStruct} AliasStruct + */ + +/** + * An empty struct alias. + * @typedef {$models.EmptyAliasStruct} EmptyAliasStruct + */ + +/** + * Another struct alias. + * @typedef {$models.OtherAliasStruct} OtherAliasStruct + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.js deleted file mode 100644 index 1dcc6d53b..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.js +++ /dev/null @@ -1,166 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -/** - * A nice type Alias. - * @typedef {number} Alias - */ - -/** - * A struct alias. - * This should be rendered as a typedef or interface in every mode. - * @typedef {Object} AliasStruct - * @property {number[]} Foo - A field with a comment. - * @property {string} [Bar] - Definitely not Foo. - * @property {string} [Baz] - Definitely not Foo. - * @property {OtherAliasStruct} Other - A nested alias struct. - */ - -/** - * An empty struct alias. - * @typedef { { - * } } EmptyAliasStruct - */ - -/** - * An empty struct. - */ -export class EmptyStruct { - /** - * Creates a new EmptyStruct instance. - * @param {Partial} [$$source = {}] - The source object to create the EmptyStruct. - */ - constructor($$source = {}) { - - Object.assign(this, $$source); - } - - /** - * Creates a new EmptyStruct instance from a string or object. - * @param {any} [$$source = {}] - * @returns {EmptyStruct} - */ - static createFrom($$source = {}) { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new EmptyStruct(/** @type {Partial} */($$parsedSource)); - } -} - -/** - * A generic struct containing an alias. - * @template T - */ -export class GenericPerson { - /** - * Creates a new GenericPerson instance. - * @param {Partial>} [$$source = {}] - The source object to create the GenericPerson. - */ - constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * @member - * @type {T | null} - */ - this["Name"] = null; - } - if (!("AliasedField" in $$source)) { - /** - * @member - * @type {Alias} - */ - this["AliasedField"] = 0; - } - - Object.assign(this, $$source); - } - - /** - * Given creation functions for each type parameter, - * returns a creation function for a concrete instance - * of the generic class GenericPerson. - * @template T - * @param {(source: any) => T} $$createParamT - * @returns {($$source?: any) => GenericPerson} - */ - static createFrom($$createParamT) { - const $$createField0_0 = $$createParamT; - return ($$source = {}) => { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Name" in $$parsedSource) { - $$parsedSource["Name"] = $$createField0_0($$parsedSource["Name"]); - } - return new GenericPerson(/** @type {Partial>} */($$parsedSource)); - }; - } -} - -/** - * Another struct alias. - * @typedef {Object} OtherAliasStruct - * @property {number[]} NoMoreIdeas - */ - -/** - * A non-generic struct containing an alias. - */ -export class Person { - /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. - */ - constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * The Person's name. - * @member - * @type {string} - */ - this["Name"] = ""; - } - if (!("AliasedField" in $$source)) { - /** - * A random alias field. - * @member - * @type {Alias} - */ - this["AliasedField"] = 0; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Person} - */ - static createFrom($$source = {}) { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Person(/** @type {Partial} */($$parsedSource)); - } -} - -/** - * A class alias. - */ -export const AliasedPerson = Person; - -/** - * A class alias. - * @typedef {Person} AliasedPerson - */ - -/** - * Another class alias, but ordered after its aliased class. - */ -export const StrangelyAliasedPerson = Person; - -/** - * Another class alias, but ordered after its aliased class. - * @typedef {Person} StrangelyAliasedPerson - */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.js index b5478bc40..5c69d0005 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.js @@ -2,33 +2,165 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - AliasedPerson, - EmptyStruct, - GenericPerson, - Person, - StrangelyAliasedPerson -} from "./internal.js"; - -import * as $models from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; /** * A nice type Alias. - * @typedef {$models.Alias} Alias + * @typedef {number} Alias */ /** * A struct alias. * This should be rendered as a typedef or interface in every mode. - * @typedef {$models.AliasStruct} AliasStruct + * @typedef {Object} AliasStruct + * @property {number[]} Foo - A field with a comment. + * @property {string} [Bar] - Definitely not Foo. + * @property {string} [Baz] - Definitely not Foo. + * @property {OtherAliasStruct} Other - A nested alias struct. */ /** * An empty struct alias. - * @typedef {$models.EmptyAliasStruct} EmptyAliasStruct + * @typedef { { + * } } EmptyAliasStruct */ /** - * Another struct alias. - * @typedef {$models.OtherAliasStruct} OtherAliasStruct + * An empty struct. + */ +export class EmptyStruct { + /** + * Creates a new EmptyStruct instance. + * @param {Partial} [$$source = {}] - The source object to create the EmptyStruct. + */ + constructor($$source = {}) { + + Object.assign(this, $$source); + } + + /** + * Creates a new EmptyStruct instance from a string or object. + * @param {any} [$$source = {}] + * @returns {EmptyStruct} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new EmptyStruct(/** @type {Partial} */($$parsedSource)); + } +} + +/** + * A generic struct containing an alias. + * @template T + */ +export class GenericPerson { + /** + * Creates a new GenericPerson instance. + * @param {Partial>} [$$source = {}] - The source object to create the GenericPerson. + */ + constructor($$source = {}) { + if (/** @type {any} */(false)) { + /** + * @member + * @type {T | undefined} + */ + this["Name"] = undefined; + } + if (!("AliasedField" in $$source)) { + /** + * @member + * @type {Alias} + */ + this["AliasedField"] = 0; + } + + Object.assign(this, $$source); + } + + /** + * Given creation functions for each type parameter, + * returns a creation function for a concrete instance + * of the generic class GenericPerson. + * @template T + * @param {(source: any) => T} $$createParamT + * @returns {($$source?: any) => GenericPerson} + */ + static createFrom($$createParamT) { + const $$createField0_0 = $$createParamT; + return ($$source = {}) => { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Name" in $$parsedSource) { + $$parsedSource["Name"] = $$createField0_0($$parsedSource["Name"]); + } + return new GenericPerson(/** @type {Partial>} */($$parsedSource)); + }; + } +} + +/** + * Another struct alias. + * @typedef {Object} OtherAliasStruct + * @property {number[]} NoMoreIdeas + */ + +/** + * A non-generic struct containing an alias. + */ +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (!("Name" in $$source)) { + /** + * The Person's name. + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("AliasedField" in $$source)) { + /** + * A random alias field. + * @member + * @type {Alias} + */ + this["AliasedField"] = 0; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Person(/** @type {Partial} */($$parsedSource)); + } +} + +/** + * A class alias. + */ +export const AliasedPerson = Person; + +/** + * A class alias. + * @typedef {Person} AliasedPerson + */ + +/** + * Another class alias, but ordered after its aliased class. + */ +export const StrangelyAliasedPerson = Person; + +/** + * Another class alias, but ordered after its aliased class. + * @typedef {Person} StrangelyAliasedPerson */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.js index c712cde8b..7d3bc5c01 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.js index 130c30a09..ab78e5ea3 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.js @@ -7,4 +7,14 @@ export { GreetService }; -export * from "./models.js"; +export { + Embedded1, + Person, + Title +} from "./models.js"; + +import * as $models from "./models.js"; + +/** + * @typedef {$models.Embedded3} Embedded3 + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.js deleted file mode 100644 index bf2cf7b1e..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.js +++ /dev/null @@ -1,272 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Embedded1 { - /** - * Creates a new Embedded1 instance. - * @param {Partial} [$$source = {}] - The source object to create the Embedded1. - */ - constructor($$source = {}) { - if (!("Friends" in $$source)) { - /** - * Friends should be shadowed in Person by a field of lesser depth - * @member - * @type {number} - */ - this["Friends"] = 0; - } - if (!("Vanish" in $$source)) { - /** - * Vanish should be omitted from Person because there is another field with same depth and no tag - * @member - * @type {number} - */ - this["Vanish"] = 0; - } - if (!("StillThere" in $$source)) { - /** - * StillThere should be shadowed in Person by other field with same depth and a json tag - * @member - * @type {string} - */ - this["StillThere"] = ""; - } - if (!("NamingThingsIsHard" in $$source)) { - /** - * NamingThingsIsHard is a law of programming - * @member - * @type {`${boolean}`} - */ - this["NamingThingsIsHard"] = "false"; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Embedded1 instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Embedded1} - */ - static createFrom($$source = {}) { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Embedded1(/** @type {Partial} */($$parsedSource)); - } -} - -/** - * @typedef {string} Embedded3 - */ - -/** - * Person represents a person - */ -export class Person { - /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. - */ - constructor($$source = {}) { - if (/** @type {any} */(false)) { - /** - * Titles is optional in JSON - * @member - * @type {Title[] | undefined} - */ - this["Titles"] = []; - } - if (!("Names" in $$source)) { - /** - * Names has a - * multiline comment - * @member - * @type {string[]} - */ - this["Names"] = []; - } - if (!("Partner" in $$source)) { - /** - * Partner has a custom and complex JSON key - * @member - * @type {Person | null} - */ - this["Partner"] = null; - } - if (!("Friends" in $$source)) { - /** - * @member - * @type {(Person | null)[]} - */ - this["Friends"] = []; - } - if (!("NamingThingsIsHard" in $$source)) { - /** - * NamingThingsIsHard is a law of programming - * @member - * @type {`${boolean}`} - */ - this["NamingThingsIsHard"] = "false"; - } - if (!("StillThere" in $$source)) { - /** - * StillThereButRenamed should shadow in Person the other field with same depth and no json tag - * @member - * @type {Embedded3 | null} - */ - this["StillThere"] = null; - } - if (!("-" in $$source)) { - /** - * StrangeNumber maps to "-" - * @member - * @type {number} - */ - this["-"] = 0; - } - if (!("Embedded3" in $$source)) { - /** - * Embedded3 should appear with key "Embedded3" - * @member - * @type {Embedded3} - */ - this["Embedded3"] = (/** @type {Embedded3} */("")); - } - if (!("StrangerNumber" in $$source)) { - /** - * StrangerNumber is serialized as a string - * @member - * @type {`${number}`} - */ - this["StrangerNumber"] = "0"; - } - if (/** @type {any} */(false)) { - /** - * StrangestString is optional and serialized as a JSON string - * @member - * @type {`"${string}"` | undefined} - */ - this["StrangestString"] = '""'; - } - if (/** @type {any} */(false)) { - /** - * StringStrangest is serialized as a JSON string and optional - * @member - * @type {`"${string}"` | undefined} - */ - this["StringStrangest"] = '""'; - } - if (/** @type {any} */(false)) { - /** - * embedded4 should be optional and appear with key "emb4" - * @member - * @type {embedded4 | undefined} - */ - this["emb4"] = (new embedded4()); - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Person} - */ - static createFrom($$source = {}) { - const $$createField0_0 = $$createType0; - const $$createField1_0 = $$createType1; - const $$createField2_0 = $$createType3; - const $$createField3_0 = $$createType4; - const $$createField11_0 = $$createType5; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Titles" in $$parsedSource) { - $$parsedSource["Titles"] = $$createField0_0($$parsedSource["Titles"]); - } - if ("Names" in $$parsedSource) { - $$parsedSource["Names"] = $$createField1_0($$parsedSource["Names"]); - } - if ("Partner" in $$parsedSource) { - $$parsedSource["Partner"] = $$createField2_0($$parsedSource["Partner"]); - } - if ("Friends" in $$parsedSource) { - $$parsedSource["Friends"] = $$createField3_0($$parsedSource["Friends"]); - } - if ("emb4" in $$parsedSource) { - $$parsedSource["emb4"] = $$createField11_0($$parsedSource["emb4"]); - } - return new Person(/** @type {Partial} */($$parsedSource)); - } -} - -/** - * Title is a title - * @readonly - * @enum {string} - */ -export const Title = { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero: "", - - /** - * Mister is a title - */ - Mister: "Mr", - Miss: "Miss", - Ms: "Ms", - Mrs: "Mrs", - Dr: "Dr", -}; - -export class embedded4 { - /** - * Creates a new embedded4 instance. - * @param {Partial} [$$source = {}] - The source object to create the embedded4. - */ - constructor($$source = {}) { - if (!("NamingThingsIsHard" in $$source)) { - /** - * NamingThingsIsHard is a law of programming - * @member - * @type {`${boolean}`} - */ - this["NamingThingsIsHard"] = "false"; - } - if (!("Friends" in $$source)) { - /** - * Friends should not be shadowed in Person as embedded4 is not embedded - * from encoding/json's point of view; - * however, it should be shadowed in Embedded1 - * @member - * @type {boolean} - */ - this["Friends"] = false; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new embedded4 instance from a string or object. - * @param {any} [$$source = {}] - * @returns {embedded4} - */ - static createFrom($$source = {}) { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new embedded4(/** @type {Partial} */($$parsedSource)); - } -} - -// Private type creation functions -const $$createType0 = $Create.Array($Create.Any); -const $$createType1 = $Create.Array($Create.Any); -const $$createType2 = Person.createFrom; -const $$createType3 = $Create.Nullable($$createType2); -const $$createType4 = $Create.Array($$createType3); -const $$createType5 = embedded4.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.js index f3fc0cdbd..d6da8c762 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.js @@ -2,14 +2,271 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Embedded1, - Person, - Title -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; -import * as $models from "./internal.js"; +export class Embedded1 { + /** + * Creates a new Embedded1 instance. + * @param {Partial} [$$source = {}] - The source object to create the Embedded1. + */ + constructor($$source = {}) { + if (!("Friends" in $$source)) { + /** + * Friends should be shadowed in Person by a field of lesser depth + * @member + * @type {number} + */ + this["Friends"] = 0; + } + if (!("Vanish" in $$source)) { + /** + * Vanish should be omitted from Person because there is another field with same depth and no tag + * @member + * @type {number} + */ + this["Vanish"] = 0; + } + if (!("StillThere" in $$source)) { + /** + * StillThere should be shadowed in Person by other field with same depth and a json tag + * @member + * @type {string} + */ + this["StillThere"] = ""; + } + if (!("NamingThingsIsHard" in $$source)) { + /** + * NamingThingsIsHard is a law of programming + * @member + * @type {`${boolean}`} + */ + this["NamingThingsIsHard"] = "false"; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Embedded1 instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Embedded1} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Embedded1(/** @type {Partial} */($$parsedSource)); + } +} /** - * @typedef {$models.Embedded3} Embedded3 + * @typedef {string} Embedded3 */ + +/** + * Person represents a person + */ +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (/** @type {any} */(false)) { + /** + * Titles is optional in JSON + * @member + * @type {Title[] | undefined} + */ + this["Titles"] = undefined; + } + if (!("Names" in $$source)) { + /** + * Names has a + * multiline comment + * @member + * @type {string[]} + */ + this["Names"] = []; + } + if (!("Partner" in $$source)) { + /** + * Partner has a custom and complex JSON key + * @member + * @type {Person | null} + */ + this["Partner"] = null; + } + if (!("Friends" in $$source)) { + /** + * @member + * @type {(Person | null)[]} + */ + this["Friends"] = []; + } + if (!("NamingThingsIsHard" in $$source)) { + /** + * NamingThingsIsHard is a law of programming + * @member + * @type {`${boolean}`} + */ + this["NamingThingsIsHard"] = "false"; + } + if (!("StillThere" in $$source)) { + /** + * StillThereButRenamed should shadow in Person the other field with same depth and no json tag + * @member + * @type {Embedded3 | null} + */ + this["StillThere"] = null; + } + if (!("-" in $$source)) { + /** + * StrangeNumber maps to "-" + * @member + * @type {number} + */ + this["-"] = 0; + } + if (!("Embedded3" in $$source)) { + /** + * Embedded3 should appear with key "Embedded3" + * @member + * @type {Embedded3} + */ + this["Embedded3"] = ""; + } + if (!("StrangerNumber" in $$source)) { + /** + * StrangerNumber is serialized as a string + * @member + * @type {`${number}`} + */ + this["StrangerNumber"] = "0"; + } + if (/** @type {any} */(false)) { + /** + * StrangestString is optional and serialized as a JSON string + * @member + * @type {`"${string}"` | undefined} + */ + this["StrangestString"] = undefined; + } + if (/** @type {any} */(false)) { + /** + * StringStrangest is serialized as a JSON string and optional + * @member + * @type {`"${string}"` | undefined} + */ + this["StringStrangest"] = undefined; + } + if (/** @type {any} */(false)) { + /** + * embedded4 should be optional and appear with key "emb4" + * @member + * @type {embedded4 | undefined} + */ + this["emb4"] = undefined; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + const $$createField0_0 = $$createType0; + const $$createField1_0 = $$createType1; + const $$createField2_0 = $$createType3; + const $$createField3_0 = $$createType4; + const $$createField11_0 = $$createType5; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Titles" in $$parsedSource) { + $$parsedSource["Titles"] = $$createField0_0($$parsedSource["Titles"]); + } + if ("Names" in $$parsedSource) { + $$parsedSource["Names"] = $$createField1_0($$parsedSource["Names"]); + } + if ("Partner" in $$parsedSource) { + $$parsedSource["Partner"] = $$createField2_0($$parsedSource["Partner"]); + } + if ("Friends" in $$parsedSource) { + $$parsedSource["Friends"] = $$createField3_0($$parsedSource["Friends"]); + } + if ("emb4" in $$parsedSource) { + $$parsedSource["emb4"] = $$createField11_0($$parsedSource["emb4"]); + } + return new Person(/** @type {Partial} */($$parsedSource)); + } +} + +/** + * Title is a title + * @readonly + * @enum {string} + */ +export const Title = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: "", + + /** + * Mister is a title + */ + Mister: "Mr", + Miss: "Miss", + Ms: "Ms", + Mrs: "Mrs", + Dr: "Dr", +}; + +export class embedded4 { + /** + * Creates a new embedded4 instance. + * @param {Partial} [$$source = {}] - The source object to create the embedded4. + */ + constructor($$source = {}) { + if (!("NamingThingsIsHard" in $$source)) { + /** + * NamingThingsIsHard is a law of programming + * @member + * @type {`${boolean}`} + */ + this["NamingThingsIsHard"] = "false"; + } + if (!("Friends" in $$source)) { + /** + * Friends should not be shadowed in Person as embedded4 is not embedded + * from encoding/json's point of view; + * however, it should be shadowed in Embedded1 + * @member + * @type {boolean} + */ + this["Friends"] = false; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new embedded4 instance from a string or object. + * @param {any} [$$source = {}] + * @returns {embedded4} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new embedded4(/** @type {Partial} */($$parsedSource)); + } +} + +// Private type creation functions +const $$createType0 = $Create.Array($Create.Any); +const $$createType1 = $Create.Array($Create.Any); +const $$createType2 = Person.createFrom; +const $$createType3 = $Create.Nullable($$createType2); +const $$createType4 = $Create.Array($$createType3); +const $$createType5 = embedded4.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.js index 52dd85da7..1ea653b33 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.js index 130c30a09..fefe6b6ba 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.js @@ -7,4 +7,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.js index 1cf2e2418..70a01e64c 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.js @@ -2,6 +2,37 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * Person represents a person + */ +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (!("Name" in $$source)) { + /** + * @member + * @type {string} + */ + this["Name"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Person(/** @type {Partial} */($$parsedSource)); + } +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.js index 899b569b8..bee868a52 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Make a cycle. diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.js index 130c30a09..0ad0efb4e 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.js @@ -7,4 +7,8 @@ export { GreetService }; -export * from "./models.js"; +export { + StructA, + StructC, + StructE +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.js deleted file mode 100644 index d101a661f..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.js +++ /dev/null @@ -1,164 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class StructA { - /** - * Creates a new StructA instance. - * @param {Partial} [$$source = {}] - The source object to create the StructA. - */ - constructor($$source = {}) { - if (!("B" in $$source)) { - /** - * @member - * @type {structB | null} - */ - this["B"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new StructA instance from a string or object. - * @param {any} [$$source = {}] - * @returns {StructA} - */ - static createFrom($$source = {}) { - const $$createField0_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("B" in $$parsedSource) { - $$parsedSource["B"] = $$createField0_0($$parsedSource["B"]); - } - return new StructA(/** @type {Partial} */($$parsedSource)); - } -} - -export class StructC { - /** - * Creates a new StructC instance. - * @param {Partial} [$$source = {}] - The source object to create the StructC. - */ - constructor($$source = {}) { - if (!("D" in $$source)) { - /** - * @member - * @type {structD} - */ - this["D"] = (new structD()); - } - - Object.assign(this, $$source); - } - - /** - * Creates a new StructC instance from a string or object. - * @param {any} [$$source = {}] - * @returns {StructC} - */ - static createFrom($$source = {}) { - const $$createField0_0 = $$createType2; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("D" in $$parsedSource) { - $$parsedSource["D"] = $$createField0_0($$parsedSource["D"]); - } - return new StructC(/** @type {Partial} */($$parsedSource)); - } -} - -export class StructE { - /** - * Creates a new StructE instance. - * @param {Partial} [$$source = {}] - The source object to create the StructE. - */ - constructor($$source = {}) { - - Object.assign(this, $$source); - } - - /** - * Creates a new StructE instance from a string or object. - * @param {any} [$$source = {}] - * @returns {StructE} - */ - static createFrom($$source = {}) { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new StructE(/** @type {Partial} */($$parsedSource)); - } -} - -export class structB { - /** - * Creates a new structB instance. - * @param {Partial} [$$source = {}] - The source object to create the structB. - */ - constructor($$source = {}) { - if (!("A" in $$source)) { - /** - * @member - * @type {StructA | null} - */ - this["A"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new structB instance from a string or object. - * @param {any} [$$source = {}] - * @returns {structB} - */ - static createFrom($$source = {}) { - const $$createField0_0 = $$createType4; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("A" in $$parsedSource) { - $$parsedSource["A"] = $$createField0_0($$parsedSource["A"]); - } - return new structB(/** @type {Partial} */($$parsedSource)); - } -} - -export class structD { - /** - * Creates a new structD instance. - * @param {Partial} [$$source = {}] - The source object to create the structD. - */ - constructor($$source = {}) { - if (!("E" in $$source)) { - /** - * @member - * @type {StructE} - */ - this["E"] = (new StructE()); - } - - Object.assign(this, $$source); - } - - /** - * Creates a new structD instance from a string or object. - * @param {any} [$$source = {}] - * @returns {structD} - */ - static createFrom($$source = {}) { - const $$createField0_0 = $$createType5; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("E" in $$parsedSource) { - $$parsedSource["E"] = $$createField0_0($$parsedSource["E"]); - } - return new structD(/** @type {Partial} */($$parsedSource)); - } -} - -// Private type creation functions -const $$createType0 = structB.createFrom; -const $$createType1 = $Create.Nullable($$createType0); -const $$createType2 = structD.createFrom; -const $$createType3 = StructA.createFrom; -const $$createType4 = $Create.Nullable($$createType3); -const $$createType5 = StructE.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.js index 7978fe3d8..d101a661f 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.js @@ -2,8 +2,163 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - StructA, - StructC, - StructE -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class StructA { + /** + * Creates a new StructA instance. + * @param {Partial} [$$source = {}] - The source object to create the StructA. + */ + constructor($$source = {}) { + if (!("B" in $$source)) { + /** + * @member + * @type {structB | null} + */ + this["B"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new StructA instance from a string or object. + * @param {any} [$$source = {}] + * @returns {StructA} + */ + static createFrom($$source = {}) { + const $$createField0_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("B" in $$parsedSource) { + $$parsedSource["B"] = $$createField0_0($$parsedSource["B"]); + } + return new StructA(/** @type {Partial} */($$parsedSource)); + } +} + +export class StructC { + /** + * Creates a new StructC instance. + * @param {Partial} [$$source = {}] - The source object to create the StructC. + */ + constructor($$source = {}) { + if (!("D" in $$source)) { + /** + * @member + * @type {structD} + */ + this["D"] = (new structD()); + } + + Object.assign(this, $$source); + } + + /** + * Creates a new StructC instance from a string or object. + * @param {any} [$$source = {}] + * @returns {StructC} + */ + static createFrom($$source = {}) { + const $$createField0_0 = $$createType2; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("D" in $$parsedSource) { + $$parsedSource["D"] = $$createField0_0($$parsedSource["D"]); + } + return new StructC(/** @type {Partial} */($$parsedSource)); + } +} + +export class StructE { + /** + * Creates a new StructE instance. + * @param {Partial} [$$source = {}] - The source object to create the StructE. + */ + constructor($$source = {}) { + + Object.assign(this, $$source); + } + + /** + * Creates a new StructE instance from a string or object. + * @param {any} [$$source = {}] + * @returns {StructE} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new StructE(/** @type {Partial} */($$parsedSource)); + } +} + +export class structB { + /** + * Creates a new structB instance. + * @param {Partial} [$$source = {}] - The source object to create the structB. + */ + constructor($$source = {}) { + if (!("A" in $$source)) { + /** + * @member + * @type {StructA | null} + */ + this["A"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new structB instance from a string or object. + * @param {any} [$$source = {}] + * @returns {structB} + */ + static createFrom($$source = {}) { + const $$createField0_0 = $$createType4; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("A" in $$parsedSource) { + $$parsedSource["A"] = $$createField0_0($$parsedSource["A"]); + } + return new structB(/** @type {Partial} */($$parsedSource)); + } +} + +export class structD { + /** + * Creates a new structD instance. + * @param {Partial} [$$source = {}] - The source object to create the structD. + */ + constructor($$source = {}) { + if (!("E" in $$source)) { + /** + * @member + * @type {StructE} + */ + this["E"] = (new StructE()); + } + + Object.assign(this, $$source); + } + + /** + * Creates a new structD instance from a string or object. + * @param {any} [$$source = {}] + * @returns {structD} + */ + static createFrom($$source = {}) { + const $$createField0_0 = $$createType5; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("E" in $$parsedSource) { + $$parsedSource["E"] = $$createField0_0($$parsedSource["E"]); + } + return new structD(/** @type {Partial} */($$parsedSource)); + } +} + +// Private type creation functions +const $$createType0 = structB.createFrom; +const $$createType1 = $Create.Nullable($$createType0); +const $$createType2 = structD.createFrom; +const $$createType3 = StructA.createFrom; +const $$createType4 = $Create.Nullable($$createType3); +const $$createType5 = StructE.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.js index a255fb593..1880b7b23 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Make a cycle. diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.js index 130c30a09..9fc31bf7c 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.js @@ -7,4 +7,17 @@ export { GreetService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.Alias} Alias + */ + +/** + * @typedef {$models.Cyclic} Cyclic + */ + +/** + * @template T + * @typedef {$models.GenericCyclic} GenericCyclic + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.js index 1d70efd70..f4a68bd4b 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.js @@ -2,17 +2,19 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; /** - * @typedef {$models.Alias} Alias + * @typedef {Cyclic | null} Alias */ /** - * @typedef {$models.Cyclic} Cyclic + * @typedef {{ [_: string]: Alias }[]} Cyclic */ /** * @template T - * @typedef {$models.GenericCyclic} GenericCyclic + * @typedef {{"X": GenericCyclic | null, "Y": T[]}[]} GenericCyclic */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.js new file mode 100644 index 000000000..972196ce3 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.js @@ -0,0 +1,14 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +console.log("Hello everywhere!"); +console.log("Hello everywhere again!"); +console.log("Hello Classes!"); +console.log("Hello JS!"); +console.log("Hello JS Classes!"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.js new file mode 100644 index 000000000..c2d455ec3 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.js @@ -0,0 +1,25 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * An exported but internal service. + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call, Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +/** + * @param {$models.InternalModel} $0 + * @returns {Promise & { cancel(): void }} + */ +export function Method($0) { + let $resultPromise = /** @type {any} */($Call.ByName("main.InternalService.Method", $0)); + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.js new file mode 100644 index 000000000..fad4870ca --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.js @@ -0,0 +1,69 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * An exported but internal model. + */ +export class InternalModel { + /** + * Creates a new InternalModel instance. + * @param {Partial} [$$source = {}] - The source object to create the InternalModel. + */ + constructor($$source = {}) { + if (!("Field" in $$source)) { + /** + * @member + * @type {string} + */ + this["Field"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new InternalModel instance from a string or object. + * @param {any} [$$source = {}] + * @returns {InternalModel} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new InternalModel(/** @type {Partial} */($$parsedSource)); + } +} + +/** + * An unexported model. + */ +export class unexportedModel { + /** + * Creates a new unexportedModel instance. + * @param {Partial} [$$source = {}] - The source object to create the unexportedModel. + */ + constructor($$source = {}) { + if (!("Field" in $$source)) { + /** + * @member + * @type {string} + */ + this["Field"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new unexportedModel instance from a string or object. + * @param {any} [$$source = {}] + * @returns {unexportedModel} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new unexportedModel(/** @type {Partial} */($$parsedSource)); + } +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.js new file mode 100644 index 000000000..b7e83cfd4 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.js @@ -0,0 +1,7 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export { + Dummy +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.js similarity index 52% rename from v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.js rename to v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.js index 70a01e64c..b38ff6238 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.js @@ -6,33 +6,23 @@ // @ts-ignore: Unused imports import {Create as $Create} from "/wails/runtime.js"; -/** - * Person represents a person - */ -export class Person { +export class Dummy { /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. + * Creates a new Dummy instance. + * @param {Partial} [$$source = {}] - The source object to create the Dummy. */ constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * @member - * @type {string} - */ - this["Name"] = ""; - } Object.assign(this, $$source); } /** - * Creates a new Person instance from a string or object. + * Creates a new Dummy instance from a string or object. * @param {any} [$$source = {}] - * @returns {Person} + * @returns {Dummy} */ static createFrom($$source = {}) { let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Person(/** @type {Partial} */($$parsedSource)); + return new Dummy(/** @type {Partial} */($$parsedSource)); } } diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_j.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_j.js new file mode 100644 index 000000000..2166d33b6 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_j.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "../service.js"; + +CustomMethod("JS"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_jc.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_jc.js new file mode 100644 index 000000000..338898726 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_jc.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "../service.js"; + +CustomMethod("JS Classes"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.js new file mode 100644 index 000000000..44c3fdf12 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.js @@ -0,0 +1,37 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call, Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as otherpackage$0 from "./otherpackage/models.js"; + +/** + * @param {string} $0 + * @returns {Promise & { cancel(): void }} + */ +function InternalMethod($0) { + let $resultPromise = /** @type {any} */($Call.ByName("main.Service.InternalMethod", $0)); + return $resultPromise; +} + +/** + * @param {otherpackage$0.Dummy} $0 + * @returns {Promise & { cancel(): void }} + */ +export function VisibleMethod($0) { + let $resultPromise = /** @type {any} */($Call.ByName("main.Service.VisibleMethod", $0)); + return $resultPromise; +} + +/** + * @param {string} arg + * @returns {Promise} + */ +export async function CustomMethod(arg) { + await InternalMethod("Hello " + arg + "!"); +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js new file mode 100644 index 000000000..138385f53 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("everywhere"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js new file mode 100644 index 000000000..19d5c2f42 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("everywhere again"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_c.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_c.js new file mode 100644 index 000000000..724e79e12 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_c.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("Classes"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_j.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_j.js new file mode 100644 index 000000000..b2f9c5edb --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_j.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("JS"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_jc.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_jc.js new file mode 100644 index 000000000..ddf4920e5 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_jc.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("JS Classes"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.js new file mode 100644 index 000000000..a12a0137d --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.js @@ -0,0 +1,25 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * An unexported service. + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call, Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +/** + * @param {$models.unexportedModel} $0 + * @returns {Promise & { cancel(): void }} + */ +export function Method($0) { + let $resultPromise = /** @type {any} */($Call.ByName("main.unexportedService.Method", $0)); + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.js index f1d753078..47ca987a9 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.js index 130c30a09..d5d66d4cb 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.js @@ -7,4 +7,8 @@ export { GreetService }; -export * from "./models.js"; +export { + Age, + Person, + Title +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.js deleted file mode 100644 index 1ddcaf0e0..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.js +++ /dev/null @@ -1,66 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -/** - * Person represents a person - */ -export class Person { - /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. - */ - constructor($$source = {}) { - if (!("Title" in $$source)) { - /** - * @member - * @type {Title} - */ - this["Title"] = (/** @type {Title} */("")); - } - if (!("Name" in $$source)) { - /** - * @member - * @type {string} - */ - this["Name"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Person} - */ - static createFrom($$source = {}) { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Person(/** @type {Partial} */($$parsedSource)); - } -} - -/** - * Title is a title - * @readonly - * @enum {string} - */ -export const Title = { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero: "", - - /** - * Mister is a title - */ - Mister: "Mr", - Miss: "Miss", - Ms: "Ms", - Mrs: "Mrs", - Dr: "Dr", -}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.js index 25b4a5f65..cad356265 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.js @@ -2,7 +2,97 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person, - Title -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * Age is an integer with some predefined values + * @typedef {number} Age + */ + +/** + * Predefined constants for type Age. + * @namespace + */ +export const Age = { + NewBorn: 0, + Teenager: 12, + YoungAdult: 18, + + /** + * Oh no, some grey hair! + */ + MiddleAged: 50, + + /** + * Unbelievable! + */ + Mathusalem: 1000, +}; + +/** + * Person represents a person + */ +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (!("Title" in $$source)) { + /** + * @member + * @type {Title} + */ + this["Title"] = Title.$zero; + } + if (!("Name" in $$source)) { + /** + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("Age" in $$source)) { + /** + * @member + * @type {Age} + */ + this["Age"] = 0; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Person(/** @type {Partial} */($$parsedSource)); + } +} + +/** + * Title is a title + * @readonly + * @enum {string} + */ +export const Title = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: "", + + /** + * Mister is a title + */ + Mister: "Mr", + Miss: "Miss", + Ms: "Ms", + Mrs: "Mrs", + Dr: "Dr", +}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.js index 580fb67af..089a8b685 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.js @@ -2,4 +2,6 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export * from "./models.js"; +export { + Title +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.js deleted file mode 100644 index 0e7acabe2..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.js +++ /dev/null @@ -1,27 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -/** - * @readonly - * @enum {string} - */ -export const Title = { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero: "", - - /** - * Mister is a title - */ - Mister: "Mr", - Miss: "Miss", - Ms: "Ms", - Mrs: "Mrs", - Dr: "Dr", -}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.js index 389f670e2..0e7acabe2 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.js @@ -2,6 +2,26 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Title -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * @readonly + * @enum {string} + */ +export const Title = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: "", + + /** + * Mister is a title + */ + Mister: "Mr", + Miss: "Miss", + Ms: "Ms", + Mrs: "Mrs", + Dr: "Dr", +}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.js index 970e10385..0ed0e3660 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.js index 130c30a09..fefe6b6ba 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.js @@ -7,4 +7,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.js deleted file mode 100644 index 860939563..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.js +++ /dev/null @@ -1,57 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -/** - * Person is a person - */ -export class Person { - /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. - */ - constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * @member - * @type {string} - */ - this["Name"] = ""; - } - if (!("Address" in $$source)) { - /** - * @member - * @type {services$0.Address | null} - */ - this["Address"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Person} - */ - static createFrom($$source = {}) { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Address" in $$parsedSource) { - $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); - } - return new Person(/** @type {Partial} */($$parsedSource)); - } -} - -// Private type creation functions -const $$createType0 = services$0.Address.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.js index 1cf2e2418..860939563 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.js @@ -2,6 +2,56 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; + +/** + * Person is a person + */ +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (!("Name" in $$source)) { + /** + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("Address" in $$source)) { + /** + * @member + * @type {services$0.Address | null} + */ + this["Address"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Address" in $$parsedSource) { + $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); + } + return new Person(/** @type {Partial} */($$parsedSource)); + } +} + +// Private type creation functions +const $$createType0 = services$0.Address.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.js index bac48bb49..ed65b6d15 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.js @@ -7,4 +7,6 @@ export { OtherService }; -export * from "./models.js"; +export { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.js deleted file mode 100644 index fb1176dee..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.js +++ /dev/null @@ -1,49 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Address { - /** - * Creates a new Address instance. - * @param {Partial
} [$$source = {}] - The source object to create the Address. - */ - constructor($$source = {}) { - if (!("Street" in $$source)) { - /** - * @member - * @type {string} - */ - this["Street"] = ""; - } - if (!("State" in $$source)) { - /** - * @member - * @type {string} - */ - this["State"] = ""; - } - if (!("Country" in $$source)) { - /** - * @member - * @type {string} - */ - this["Country"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Address instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Address} - */ - static createFrom($$source = {}) { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Address(/** @type {Partial
} */($$parsedSource)); - } -} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.js index 6820003a0..fb1176dee 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.js @@ -2,6 +2,48 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Address -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Address { + /** + * Creates a new Address instance. + * @param {Partial
} [$$source = {}] - The source object to create the Address. + */ + constructor($$source = {}) { + if (!("Street" in $$source)) { + /** + * @member + * @type {string} + */ + this["Street"] = ""; + } + if (!("State" in $$source)) { + /** + * @member + * @type {string} + */ + this["State"] = ""; + } + if (!("Country" in $$source)) { + /** + * @member + * @type {string} + */ + this["Country"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Address instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Address} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Address(/** @type {Partial
} */($$parsedSource)); + } +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.js index 0b08f6e20..7426508f7 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.js @@ -14,7 +14,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.js index 970e10385..0ed0e3660 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.js index 130c30a09..fefe6b6ba 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.js @@ -7,4 +7,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.js deleted file mode 100644 index 5b28ee2f6..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.js +++ /dev/null @@ -1,54 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as other$0 from "./services/other/models.js"; - -export class Person { - /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. - */ - constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * @member - * @type {string} - */ - this["Name"] = ""; - } - if (!("Address" in $$source)) { - /** - * @member - * @type {other$0.Address | null} - */ - this["Address"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Person} - */ - static createFrom($$source = {}) { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Address" in $$parsedSource) { - $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); - } - return new Person(/** @type {Partial} */($$parsedSource)); - } -} - -// Private type creation functions -const $$createType0 = other$0.Address.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.js index 1cf2e2418..5b28ee2f6 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.js @@ -2,6 +2,53 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as other$0 from "./services/other/models.js"; + +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (!("Name" in $$source)) { + /** + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("Address" in $$source)) { + /** + * @member + * @type {other$0.Address | null} + */ + this["Address"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Address" in $$parsedSource) { + $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); + } + return new Person(/** @type {Partial} */($$parsedSource)); + } +} + +// Private type creation functions +const $$createType0 = other$0.Address.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.js index bac48bb49..ed65b6d15 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.js @@ -7,4 +7,6 @@ export { OtherService }; -export * from "./models.js"; +export { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.js deleted file mode 100644 index fb1176dee..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.js +++ /dev/null @@ -1,49 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Address { - /** - * Creates a new Address instance. - * @param {Partial
} [$$source = {}] - The source object to create the Address. - */ - constructor($$source = {}) { - if (!("Street" in $$source)) { - /** - * @member - * @type {string} - */ - this["Street"] = ""; - } - if (!("State" in $$source)) { - /** - * @member - * @type {string} - */ - this["State"] = ""; - } - if (!("Country" in $$source)) { - /** - * @member - * @type {string} - */ - this["Country"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Address instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Address} - */ - static createFrom($$source = {}) { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Address(/** @type {Partial
} */($$parsedSource)); - } -} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.js index 6820003a0..fb1176dee 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.js @@ -2,6 +2,48 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Address -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Address { + /** + * Creates a new Address instance. + * @param {Partial
} [$$source = {}] - The source object to create the Address. + */ + constructor($$source = {}) { + if (!("Street" in $$source)) { + /** + * @member + * @type {string} + */ + this["Street"] = ""; + } + if (!("State" in $$source)) { + /** + * @member + * @type {string} + */ + this["State"] = ""; + } + if (!("Country" in $$source)) { + /** + * @member + * @type {string} + */ + this["Country"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Address instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Address} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Address(/** @type {Partial
} */($$parsedSource)); + } +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.js index 8e1edb971..d01fa13f6 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.js @@ -14,7 +14,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.js new file mode 100644 index 000000000..3c20ebc43 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.js @@ -0,0 +1,62 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +export { + Maps +} from "./models.js"; + +import * as $models from "./models.js"; + +/** + * @typedef {$models.EmbeddedCustomInterface} EmbeddedCustomInterface + */ + +/** + * @typedef {$models.EmbeddedOriginalInterface} EmbeddedOriginalInterface + */ + +/** + * @typedef {$models.EmbeddedPointer} EmbeddedPointer + */ + +/** + * @typedef {$models.EmbeddedPointerPtr} EmbeddedPointerPtr + */ + +/** + * @typedef {$models.EmbeddedValue} EmbeddedValue + */ + +/** + * @typedef {$models.EmbeddedValuePtr} EmbeddedValuePtr + */ + +/** + * @typedef {$models.PointerAlias} PointerAlias + */ + +/** + * @typedef {$models.PointerTextMarshaler} PointerTextMarshaler + */ + +/** + * @typedef {$models.StringAlias} StringAlias + */ + +/** + * @typedef {$models.StringType} StringType + */ + +/** + * @typedef {$models.ValueAlias} ValueAlias + */ + +/** + * @typedef {$models.ValueTextMarshaler} ValueTextMarshaler + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.js new file mode 100644 index 000000000..c715dd484 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.js @@ -0,0 +1,1239 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * @typedef {string} EmbeddedCustomInterface + */ + +/** + * @typedef {string} EmbeddedOriginalInterface + */ + +/** + * @typedef {string} EmbeddedPointer + */ + +/** + * @typedef {string} EmbeddedPointerPtr + */ + +/** + * @typedef {string} EmbeddedValue + */ + +/** + * @typedef {string} EmbeddedValuePtr + */ + +/** + * @template R,S,T,U,V,W,X,Y,Z + */ +export class Maps { + /** + * Creates a new Maps instance. + * @param {Partial>} [$$source = {}] - The source object to create the Maps. + */ + constructor($$source = {}) { + if (!("Bool" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["Bool"] = {}; + } + if (!("Int" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: `${number}`]: number }} + */ + this["Int"] = {}; + } + if (!("Uint" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: `${number}`]: number }} + */ + this["Uint"] = {}; + } + if (!("Float" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["Float"] = {}; + } + if (!("Complex" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["Complex"] = {}; + } + if (!("Byte" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: `${number}`]: number }} + */ + this["Byte"] = {}; + } + if (!("Rune" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: `${number}`]: number }} + */ + this["Rune"] = {}; + } + if (!("String" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: string]: number }} + */ + this["String"] = {}; + } + if (!("IntPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["IntPtr"] = {}; + } + if (!("UintPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["UintPtr"] = {}; + } + if (!("FloatPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["FloatPtr"] = {}; + } + if (!("ComplexPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["ComplexPtr"] = {}; + } + if (!("StringPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["StringPtr"] = {}; + } + if (!("NTM" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["NTM"] = {}; + } + if (!("NTMPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["NTMPtr"] = {}; + } + if (!("VTM" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: ValueTextMarshaler]: number }} + */ + this["VTM"] = {}; + } + if (!("VTMPtr" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: ValueTextMarshaler]: number }} + */ + this["VTMPtr"] = {}; + } + if (!("PTM" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["PTM"] = {}; + } + if (!("PTMPtr" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: PointerTextMarshaler]: number }} + */ + this["PTMPtr"] = {}; + } + if (!("JTM" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["JTM"] = {}; + } + if (!("JTMPtr" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["JTMPtr"] = {}; + } + if (!("A" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["A"] = {}; + } + if (!("APtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["APtr"] = {}; + } + if (!("TM" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["TM"] = {}; + } + if (!("TMPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["TMPtr"] = {}; + } + if (!("CI" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["CI"] = {}; + } + if (!("CIPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["CIPtr"] = {}; + } + if (!("EI" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["EI"] = {}; + } + if (!("EIPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["EIPtr"] = {}; + } + if (!("EV" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: EmbeddedValue]: number }} + */ + this["EV"] = {}; + } + if (!("EVPtr" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: EmbeddedValue]: number }} + */ + this["EVPtr"] = {}; + } + if (!("EVP" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: EmbeddedValuePtr]: number }} + */ + this["EVP"] = {}; + } + if (!("EVPPtr" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: EmbeddedValuePtr]: number }} + */ + this["EVPPtr"] = {}; + } + if (!("EP" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["EP"] = {}; + } + if (!("EPPtr" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: EmbeddedPointer]: number }} + */ + this["EPPtr"] = {}; + } + if (!("EPP" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: EmbeddedPointerPtr]: number }} + */ + this["EPP"] = {}; + } + if (!("EPPPtr" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: EmbeddedPointerPtr]: number }} + */ + this["EPPPtr"] = {}; + } + if (!("ECI" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: EmbeddedCustomInterface]: number }} + */ + this["ECI"] = {}; + } + if (!("ECIPtr" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: EmbeddedCustomInterface]: number }} + */ + this["ECIPtr"] = {}; + } + if (!("EOI" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: EmbeddedOriginalInterface]: number }} + */ + this["EOI"] = {}; + } + if (!("EOIPtr" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: EmbeddedOriginalInterface]: number }} + */ + this["EOIPtr"] = {}; + } + if (!("WT" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["WT"] = {}; + } + if (!("WA" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["WA"] = {}; + } + if (!("ST" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: StringType]: number }} + */ + this["ST"] = {}; + } + if (!("SA" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: StringAlias]: number }} + */ + this["SA"] = {}; + } + if (!("IntT" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: `${number}`]: number }} + */ + this["IntT"] = {}; + } + if (!("IntA" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: `${number}`]: number }} + */ + this["IntA"] = {}; + } + if (!("VT" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["VT"] = {}; + } + if (!("VTPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["VTPtr"] = {}; + } + if (!("VPT" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["VPT"] = {}; + } + if (!("VPTPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["VPTPtr"] = {}; + } + if (!("VA" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: ValueAlias]: number }} + */ + this["VA"] = {}; + } + if (!("VAPtr" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: ValueAlias]: number }} + */ + this["VAPtr"] = {}; + } + if (!("VPA" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["VPA"] = {}; + } + if (!("VPAPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["VPAPtr"] = {}; + } + if (!("PT" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["PT"] = {}; + } + if (!("PTPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["PTPtr"] = {}; + } + if (!("PPT" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["PPT"] = {}; + } + if (!("PPTPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["PPTPtr"] = {}; + } + if (!("PA" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["PA"] = {}; + } + if (!("PAPtr" in $$source)) { + /** + * Accept + * @member + * @type {{ [_: PointerAlias]: number }} + */ + this["PAPtr"] = {}; + } + if (!("PPA" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["PPA"] = {}; + } + if (!("PPAPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["PPAPtr"] = {}; + } + if (!("IT" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["IT"] = {}; + } + if (!("ITPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["ITPtr"] = {}; + } + if (!("IPT" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["IPT"] = {}; + } + if (!("IPTPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["IPTPtr"] = {}; + } + if (!("IA" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["IA"] = {}; + } + if (!("IAPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["IAPtr"] = {}; + } + if (!("IPA" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["IPA"] = {}; + } + if (!("IPAPtr" in $$source)) { + /** + * Reject + * @member + * @type {{ [_: string]: number }} + */ + this["IPAPtr"] = {}; + } + if (!("TPR" in $$source)) { + /** + * Soft reject + * @member + * @type {{ [_: string]: number }} + */ + this["TPR"] = {}; + } + if (!("TPRPtr" in $$source)) { + /** + * Soft reject + * @member + * @type {{ [_: string]: number }} + */ + this["TPRPtr"] = {}; + } + if (!("TPS" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["TPS"] = {}; + } + if (!("TPSPtr" in $$source)) { + /** + * Soft reject + * @member + * @type {{ [_: string]: number }} + */ + this["TPSPtr"] = {}; + } + if (!("TPT" in $$source)) { + /** + * Soft reject + * @member + * @type {{ [_: string]: number }} + */ + this["TPT"] = {}; + } + if (!("TPTPtr" in $$source)) { + /** + * Soft reject + * @member + * @type {{ [_: string]: number }} + */ + this["TPTPtr"] = {}; + } + if (!("TPU" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["TPU"] = {}; + } + if (!("TPUPtr" in $$source)) { + /** + * Soft reject + * @member + * @type {{ [_: string]: number }} + */ + this["TPUPtr"] = {}; + } + if (!("TPV" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["TPV"] = {}; + } + if (!("TPVPtr" in $$source)) { + /** + * Soft reject + * @member + * @type {{ [_: string]: number }} + */ + this["TPVPtr"] = {}; + } + if (!("TPW" in $$source)) { + /** + * Soft reject + * @member + * @type {{ [_: string]: number }} + */ + this["TPW"] = {}; + } + if (!("TPWPtr" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["TPWPtr"] = {}; + } + if (!("TPX" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["TPX"] = {}; + } + if (!("TPXPtr" in $$source)) { + /** + * Soft reject + * @member + * @type {{ [_: string]: number }} + */ + this["TPXPtr"] = {}; + } + if (!("TPY" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["TPY"] = {}; + } + if (!("TPYPtr" in $$source)) { + /** + * Soft reject + * @member + * @type {{ [_: string]: number }} + */ + this["TPYPtr"] = {}; + } + if (!("TPZ" in $$source)) { + /** + * Accept, hide + * @member + * @type {{ [_: string]: number }} + */ + this["TPZ"] = {}; + } + if (!("TPZPtr" in $$source)) { + /** + * Soft reject + * @member + * @type {{ [_: string]: number }} + */ + this["TPZPtr"] = {}; + } + + Object.assign(this, $$source); + } + + /** + * Given creation functions for each type parameter, + * returns a creation function for a concrete instance + * of the generic class Maps. + * @template R,S,T,U,V,W,X,Y,Z + * @param {(source: any) => R} $$createParamR + * @param {(source: any) => S} $$createParamS + * @param {(source: any) => T} $$createParamT + * @param {(source: any) => U} $$createParamU + * @param {(source: any) => V} $$createParamV + * @param {(source: any) => W} $$createParamW + * @param {(source: any) => X} $$createParamX + * @param {(source: any) => Y} $$createParamY + * @param {(source: any) => Z} $$createParamZ + * @returns {($$source?: any) => Maps} + */ + static createFrom($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) { + const $$createField0_0 = $$createType0; + const $$createField1_0 = $$createType1; + const $$createField2_0 = $$createType2; + const $$createField3_0 = $$createType3; + const $$createField4_0 = $$createType4; + const $$createField5_0 = $$createType5; + const $$createField6_0 = $$createType6; + const $$createField7_0 = $$createType7; + const $$createField8_0 = $$createType8; + const $$createField9_0 = $$createType9; + const $$createField10_0 = $$createType10; + const $$createField11_0 = $$createType11; + const $$createField12_0 = $$createType12; + const $$createField13_0 = $$createType13; + const $$createField14_0 = $$createType14; + const $$createField15_0 = $$createType15; + const $$createField16_0 = $$createType16; + const $$createField17_0 = $$createType17; + const $$createField18_0 = $$createType18; + const $$createField19_0 = $$createType19; + const $$createField20_0 = $$createType20; + const $$createField21_0 = $$createType21; + const $$createField22_0 = $$createType22; + const $$createField23_0 = $$createType23; + const $$createField24_0 = $$createType24; + const $$createField25_0 = $$createType25; + const $$createField26_0 = $$createType26; + const $$createField27_0 = $$createType27; + const $$createField28_0 = $$createType28; + const $$createField29_0 = $$createType29; + const $$createField30_0 = $$createType30; + const $$createField31_0 = $$createType31; + const $$createField32_0 = $$createType32; + const $$createField33_0 = $$createType33; + const $$createField34_0 = $$createType34; + const $$createField35_0 = $$createType35; + const $$createField36_0 = $$createType36; + const $$createField37_0 = $$createType37; + const $$createField38_0 = $$createType38; + const $$createField39_0 = $$createType39; + const $$createField40_0 = $$createType40; + const $$createField41_0 = $$createType41; + const $$createField42_0 = $$createType0; + const $$createField43_0 = $$createType42; + const $$createField44_0 = $$createType7; + const $$createField45_0 = $$createType43; + const $$createField46_0 = $$createType1; + const $$createField47_0 = $$createType44; + const $$createField48_0 = $$createType45; + const $$createField49_0 = $$createType46; + const $$createField50_0 = $$createType47; + const $$createField51_0 = $$createType15; + const $$createField52_0 = $$createType16; + const $$createField53_0 = $$createType16; + const $$createField54_0 = $$createType48; + const $$createField55_0 = $$createType49; + const $$createField56_0 = $$createType50; + const $$createField57_0 = $$createType51; + const $$createField58_0 = $$createType52; + const $$createField59_0 = $$createType17; + const $$createField60_0 = $$createType18; + const $$createField61_0 = $$createType18; + const $$createField62_0 = $$createType53; + const $$createField63_0 = $$createType54; + const $$createField64_0 = $$createType55; + const $$createField65_0 = $$createType56; + const $$createField66_0 = $$createType57; + const $$createField67_0 = $$createType23; + const $$createField68_0 = $$createType24; + const $$createField69_0 = $$createType24; + const $$createField70_0 = $$createType58; + const $$createField71_0 = $$createType59($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField72_0 = $$createType60($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField73_0 = $$createType61($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField74_0 = $$createType62($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField75_0 = $$createType63($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField76_0 = $$createType64($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField77_0 = $$createType65($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField78_0 = $$createType66($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField79_0 = $$createType67($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField80_0 = $$createType68($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField81_0 = $$createType69($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField82_0 = $$createType70($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField83_0 = $$createType71($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField84_0 = $$createType72($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField85_0 = $$createType73($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField86_0 = $$createType74($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField87_0 = $$createType75($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField88_0 = $$createType76($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + return ($$source = {}) => { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Bool" in $$parsedSource) { + $$parsedSource["Bool"] = $$createField0_0($$parsedSource["Bool"]); + } + if ("Int" in $$parsedSource) { + $$parsedSource["Int"] = $$createField1_0($$parsedSource["Int"]); + } + if ("Uint" in $$parsedSource) { + $$parsedSource["Uint"] = $$createField2_0($$parsedSource["Uint"]); + } + if ("Float" in $$parsedSource) { + $$parsedSource["Float"] = $$createField3_0($$parsedSource["Float"]); + } + if ("Complex" in $$parsedSource) { + $$parsedSource["Complex"] = $$createField4_0($$parsedSource["Complex"]); + } + if ("Byte" in $$parsedSource) { + $$parsedSource["Byte"] = $$createField5_0($$parsedSource["Byte"]); + } + if ("Rune" in $$parsedSource) { + $$parsedSource["Rune"] = $$createField6_0($$parsedSource["Rune"]); + } + if ("String" in $$parsedSource) { + $$parsedSource["String"] = $$createField7_0($$parsedSource["String"]); + } + if ("IntPtr" in $$parsedSource) { + $$parsedSource["IntPtr"] = $$createField8_0($$parsedSource["IntPtr"]); + } + if ("UintPtr" in $$parsedSource) { + $$parsedSource["UintPtr"] = $$createField9_0($$parsedSource["UintPtr"]); + } + if ("FloatPtr" in $$parsedSource) { + $$parsedSource["FloatPtr"] = $$createField10_0($$parsedSource["FloatPtr"]); + } + if ("ComplexPtr" in $$parsedSource) { + $$parsedSource["ComplexPtr"] = $$createField11_0($$parsedSource["ComplexPtr"]); + } + if ("StringPtr" in $$parsedSource) { + $$parsedSource["StringPtr"] = $$createField12_0($$parsedSource["StringPtr"]); + } + if ("NTM" in $$parsedSource) { + $$parsedSource["NTM"] = $$createField13_0($$parsedSource["NTM"]); + } + if ("NTMPtr" in $$parsedSource) { + $$parsedSource["NTMPtr"] = $$createField14_0($$parsedSource["NTMPtr"]); + } + if ("VTM" in $$parsedSource) { + $$parsedSource["VTM"] = $$createField15_0($$parsedSource["VTM"]); + } + if ("VTMPtr" in $$parsedSource) { + $$parsedSource["VTMPtr"] = $$createField16_0($$parsedSource["VTMPtr"]); + } + if ("PTM" in $$parsedSource) { + $$parsedSource["PTM"] = $$createField17_0($$parsedSource["PTM"]); + } + if ("PTMPtr" in $$parsedSource) { + $$parsedSource["PTMPtr"] = $$createField18_0($$parsedSource["PTMPtr"]); + } + if ("JTM" in $$parsedSource) { + $$parsedSource["JTM"] = $$createField19_0($$parsedSource["JTM"]); + } + if ("JTMPtr" in $$parsedSource) { + $$parsedSource["JTMPtr"] = $$createField20_0($$parsedSource["JTMPtr"]); + } + if ("A" in $$parsedSource) { + $$parsedSource["A"] = $$createField21_0($$parsedSource["A"]); + } + if ("APtr" in $$parsedSource) { + $$parsedSource["APtr"] = $$createField22_0($$parsedSource["APtr"]); + } + if ("TM" in $$parsedSource) { + $$parsedSource["TM"] = $$createField23_0($$parsedSource["TM"]); + } + if ("TMPtr" in $$parsedSource) { + $$parsedSource["TMPtr"] = $$createField24_0($$parsedSource["TMPtr"]); + } + if ("CI" in $$parsedSource) { + $$parsedSource["CI"] = $$createField25_0($$parsedSource["CI"]); + } + if ("CIPtr" in $$parsedSource) { + $$parsedSource["CIPtr"] = $$createField26_0($$parsedSource["CIPtr"]); + } + if ("EI" in $$parsedSource) { + $$parsedSource["EI"] = $$createField27_0($$parsedSource["EI"]); + } + if ("EIPtr" in $$parsedSource) { + $$parsedSource["EIPtr"] = $$createField28_0($$parsedSource["EIPtr"]); + } + if ("EV" in $$parsedSource) { + $$parsedSource["EV"] = $$createField29_0($$parsedSource["EV"]); + } + if ("EVPtr" in $$parsedSource) { + $$parsedSource["EVPtr"] = $$createField30_0($$parsedSource["EVPtr"]); + } + if ("EVP" in $$parsedSource) { + $$parsedSource["EVP"] = $$createField31_0($$parsedSource["EVP"]); + } + if ("EVPPtr" in $$parsedSource) { + $$parsedSource["EVPPtr"] = $$createField32_0($$parsedSource["EVPPtr"]); + } + if ("EP" in $$parsedSource) { + $$parsedSource["EP"] = $$createField33_0($$parsedSource["EP"]); + } + if ("EPPtr" in $$parsedSource) { + $$parsedSource["EPPtr"] = $$createField34_0($$parsedSource["EPPtr"]); + } + if ("EPP" in $$parsedSource) { + $$parsedSource["EPP"] = $$createField35_0($$parsedSource["EPP"]); + } + if ("EPPPtr" in $$parsedSource) { + $$parsedSource["EPPPtr"] = $$createField36_0($$parsedSource["EPPPtr"]); + } + if ("ECI" in $$parsedSource) { + $$parsedSource["ECI"] = $$createField37_0($$parsedSource["ECI"]); + } + if ("ECIPtr" in $$parsedSource) { + $$parsedSource["ECIPtr"] = $$createField38_0($$parsedSource["ECIPtr"]); + } + if ("EOI" in $$parsedSource) { + $$parsedSource["EOI"] = $$createField39_0($$parsedSource["EOI"]); + } + if ("EOIPtr" in $$parsedSource) { + $$parsedSource["EOIPtr"] = $$createField40_0($$parsedSource["EOIPtr"]); + } + if ("WT" in $$parsedSource) { + $$parsedSource["WT"] = $$createField41_0($$parsedSource["WT"]); + } + if ("WA" in $$parsedSource) { + $$parsedSource["WA"] = $$createField42_0($$parsedSource["WA"]); + } + if ("ST" in $$parsedSource) { + $$parsedSource["ST"] = $$createField43_0($$parsedSource["ST"]); + } + if ("SA" in $$parsedSource) { + $$parsedSource["SA"] = $$createField44_0($$parsedSource["SA"]); + } + if ("IntT" in $$parsedSource) { + $$parsedSource["IntT"] = $$createField45_0($$parsedSource["IntT"]); + } + if ("IntA" in $$parsedSource) { + $$parsedSource["IntA"] = $$createField46_0($$parsedSource["IntA"]); + } + if ("VT" in $$parsedSource) { + $$parsedSource["VT"] = $$createField47_0($$parsedSource["VT"]); + } + if ("VTPtr" in $$parsedSource) { + $$parsedSource["VTPtr"] = $$createField48_0($$parsedSource["VTPtr"]); + } + if ("VPT" in $$parsedSource) { + $$parsedSource["VPT"] = $$createField49_0($$parsedSource["VPT"]); + } + if ("VPTPtr" in $$parsedSource) { + $$parsedSource["VPTPtr"] = $$createField50_0($$parsedSource["VPTPtr"]); + } + if ("VA" in $$parsedSource) { + $$parsedSource["VA"] = $$createField51_0($$parsedSource["VA"]); + } + if ("VAPtr" in $$parsedSource) { + $$parsedSource["VAPtr"] = $$createField52_0($$parsedSource["VAPtr"]); + } + if ("VPA" in $$parsedSource) { + $$parsedSource["VPA"] = $$createField53_0($$parsedSource["VPA"]); + } + if ("VPAPtr" in $$parsedSource) { + $$parsedSource["VPAPtr"] = $$createField54_0($$parsedSource["VPAPtr"]); + } + if ("PT" in $$parsedSource) { + $$parsedSource["PT"] = $$createField55_0($$parsedSource["PT"]); + } + if ("PTPtr" in $$parsedSource) { + $$parsedSource["PTPtr"] = $$createField56_0($$parsedSource["PTPtr"]); + } + if ("PPT" in $$parsedSource) { + $$parsedSource["PPT"] = $$createField57_0($$parsedSource["PPT"]); + } + if ("PPTPtr" in $$parsedSource) { + $$parsedSource["PPTPtr"] = $$createField58_0($$parsedSource["PPTPtr"]); + } + if ("PA" in $$parsedSource) { + $$parsedSource["PA"] = $$createField59_0($$parsedSource["PA"]); + } + if ("PAPtr" in $$parsedSource) { + $$parsedSource["PAPtr"] = $$createField60_0($$parsedSource["PAPtr"]); + } + if ("PPA" in $$parsedSource) { + $$parsedSource["PPA"] = $$createField61_0($$parsedSource["PPA"]); + } + if ("PPAPtr" in $$parsedSource) { + $$parsedSource["PPAPtr"] = $$createField62_0($$parsedSource["PPAPtr"]); + } + if ("IT" in $$parsedSource) { + $$parsedSource["IT"] = $$createField63_0($$parsedSource["IT"]); + } + if ("ITPtr" in $$parsedSource) { + $$parsedSource["ITPtr"] = $$createField64_0($$parsedSource["ITPtr"]); + } + if ("IPT" in $$parsedSource) { + $$parsedSource["IPT"] = $$createField65_0($$parsedSource["IPT"]); + } + if ("IPTPtr" in $$parsedSource) { + $$parsedSource["IPTPtr"] = $$createField66_0($$parsedSource["IPTPtr"]); + } + if ("IA" in $$parsedSource) { + $$parsedSource["IA"] = $$createField67_0($$parsedSource["IA"]); + } + if ("IAPtr" in $$parsedSource) { + $$parsedSource["IAPtr"] = $$createField68_0($$parsedSource["IAPtr"]); + } + if ("IPA" in $$parsedSource) { + $$parsedSource["IPA"] = $$createField69_0($$parsedSource["IPA"]); + } + if ("IPAPtr" in $$parsedSource) { + $$parsedSource["IPAPtr"] = $$createField70_0($$parsedSource["IPAPtr"]); + } + if ("TPR" in $$parsedSource) { + $$parsedSource["TPR"] = $$createField71_0($$parsedSource["TPR"]); + } + if ("TPRPtr" in $$parsedSource) { + $$parsedSource["TPRPtr"] = $$createField72_0($$parsedSource["TPRPtr"]); + } + if ("TPS" in $$parsedSource) { + $$parsedSource["TPS"] = $$createField73_0($$parsedSource["TPS"]); + } + if ("TPSPtr" in $$parsedSource) { + $$parsedSource["TPSPtr"] = $$createField74_0($$parsedSource["TPSPtr"]); + } + if ("TPT" in $$parsedSource) { + $$parsedSource["TPT"] = $$createField75_0($$parsedSource["TPT"]); + } + if ("TPTPtr" in $$parsedSource) { + $$parsedSource["TPTPtr"] = $$createField76_0($$parsedSource["TPTPtr"]); + } + if ("TPU" in $$parsedSource) { + $$parsedSource["TPU"] = $$createField77_0($$parsedSource["TPU"]); + } + if ("TPUPtr" in $$parsedSource) { + $$parsedSource["TPUPtr"] = $$createField78_0($$parsedSource["TPUPtr"]); + } + if ("TPV" in $$parsedSource) { + $$parsedSource["TPV"] = $$createField79_0($$parsedSource["TPV"]); + } + if ("TPVPtr" in $$parsedSource) { + $$parsedSource["TPVPtr"] = $$createField80_0($$parsedSource["TPVPtr"]); + } + if ("TPW" in $$parsedSource) { + $$parsedSource["TPW"] = $$createField81_0($$parsedSource["TPW"]); + } + if ("TPWPtr" in $$parsedSource) { + $$parsedSource["TPWPtr"] = $$createField82_0($$parsedSource["TPWPtr"]); + } + if ("TPX" in $$parsedSource) { + $$parsedSource["TPX"] = $$createField83_0($$parsedSource["TPX"]); + } + if ("TPXPtr" in $$parsedSource) { + $$parsedSource["TPXPtr"] = $$createField84_0($$parsedSource["TPXPtr"]); + } + if ("TPY" in $$parsedSource) { + $$parsedSource["TPY"] = $$createField85_0($$parsedSource["TPY"]); + } + if ("TPYPtr" in $$parsedSource) { + $$parsedSource["TPYPtr"] = $$createField86_0($$parsedSource["TPYPtr"]); + } + if ("TPZ" in $$parsedSource) { + $$parsedSource["TPZ"] = $$createField87_0($$parsedSource["TPZ"]); + } + if ("TPZPtr" in $$parsedSource) { + $$parsedSource["TPZPtr"] = $$createField88_0($$parsedSource["TPZPtr"]); + } + return new Maps(/** @type {Partial>} */($$parsedSource)); + }; + } +} + +/** + * @typedef {PointerTextMarshaler} PointerAlias + */ + +/** + * @typedef {string} PointerTextMarshaler + */ + +/** + * @typedef {string} StringAlias + */ + +/** + * @typedef {string} StringType + */ + +/** + * @typedef {ValueTextMarshaler} ValueAlias + */ + +/** + * @typedef {string} ValueTextMarshaler + */ + +// Private type creation functions +const $$createType0 = $Create.Map($Create.Any, $Create.Any); +const $$createType1 = $Create.Map($Create.Any, $Create.Any); +const $$createType2 = $Create.Map($Create.Any, $Create.Any); +const $$createType3 = $Create.Map($Create.Any, $Create.Any); +const $$createType4 = $Create.Map($Create.Any, $Create.Any); +const $$createType5 = $Create.Map($Create.Any, $Create.Any); +const $$createType6 = $Create.Map($Create.Any, $Create.Any); +const $$createType7 = $Create.Map($Create.Any, $Create.Any); +const $$createType8 = $Create.Map($Create.Any, $Create.Any); +const $$createType9 = $Create.Map($Create.Any, $Create.Any); +const $$createType10 = $Create.Map($Create.Any, $Create.Any); +const $$createType11 = $Create.Map($Create.Any, $Create.Any); +const $$createType12 = $Create.Map($Create.Any, $Create.Any); +const $$createType13 = $Create.Map($Create.Any, $Create.Any); +const $$createType14 = $Create.Map($Create.Any, $Create.Any); +const $$createType15 = $Create.Map($Create.Any, $Create.Any); +const $$createType16 = $Create.Map($Create.Any, $Create.Any); +const $$createType17 = $Create.Map($Create.Any, $Create.Any); +const $$createType18 = $Create.Map($Create.Any, $Create.Any); +const $$createType19 = $Create.Map($Create.Any, $Create.Any); +const $$createType20 = $Create.Map($Create.Any, $Create.Any); +const $$createType21 = $Create.Map($Create.Any, $Create.Any); +const $$createType22 = $Create.Map($Create.Any, $Create.Any); +const $$createType23 = $Create.Map($Create.Any, $Create.Any); +const $$createType24 = $Create.Map($Create.Any, $Create.Any); +const $$createType25 = $Create.Map($Create.Any, $Create.Any); +const $$createType26 = $Create.Map($Create.Any, $Create.Any); +const $$createType27 = $Create.Map($Create.Any, $Create.Any); +const $$createType28 = $Create.Map($Create.Any, $Create.Any); +const $$createType29 = $Create.Map($Create.Any, $Create.Any); +const $$createType30 = $Create.Map($Create.Any, $Create.Any); +const $$createType31 = $Create.Map($Create.Any, $Create.Any); +const $$createType32 = $Create.Map($Create.Any, $Create.Any); +const $$createType33 = $Create.Map($Create.Any, $Create.Any); +const $$createType34 = $Create.Map($Create.Any, $Create.Any); +const $$createType35 = $Create.Map($Create.Any, $Create.Any); +const $$createType36 = $Create.Map($Create.Any, $Create.Any); +const $$createType37 = $Create.Map($Create.Any, $Create.Any); +const $$createType38 = $Create.Map($Create.Any, $Create.Any); +const $$createType39 = $Create.Map($Create.Any, $Create.Any); +const $$createType40 = $Create.Map($Create.Any, $Create.Any); +const $$createType41 = $Create.Map($Create.Any, $Create.Any); +const $$createType42 = $Create.Map($Create.Any, $Create.Any); +const $$createType43 = $Create.Map($Create.Any, $Create.Any); +const $$createType44 = $Create.Map($Create.Any, $Create.Any); +const $$createType45 = $Create.Map($Create.Any, $Create.Any); +const $$createType46 = $Create.Map($Create.Any, $Create.Any); +const $$createType47 = $Create.Map($Create.Any, $Create.Any); +const $$createType48 = $Create.Map($Create.Any, $Create.Any); +const $$createType49 = $Create.Map($Create.Any, $Create.Any); +const $$createType50 = $Create.Map($Create.Any, $Create.Any); +const $$createType51 = $Create.Map($Create.Any, $Create.Any); +const $$createType52 = $Create.Map($Create.Any, $Create.Any); +const $$createType53 = $Create.Map($Create.Any, $Create.Any); +const $$createType54 = $Create.Map($Create.Any, $Create.Any); +const $$createType55 = $Create.Map($Create.Any, $Create.Any); +const $$createType56 = $Create.Map($Create.Any, $Create.Any); +const $$createType57 = $Create.Map($Create.Any, $Create.Any); +const $$createType58 = $Create.Map($Create.Any, $Create.Any); +const $$createType59 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType60 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType61 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType62 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType63 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType64 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType65 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType66 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType67 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType68 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType69 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType70 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType71 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType72 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType73 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType74 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType75 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType76 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.js new file mode 100644 index 000000000..b7af4dba5 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.js @@ -0,0 +1,26 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call, Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +/** + * @returns {Promise<$models.Maps<$models.PointerTextMarshaler, number, number, $models.ValueTextMarshaler, $models.PointerTextMarshaler | null, $models.ValueTextMarshaler, $models.StringType, $models.ValueTextMarshaler, $models.PointerTextMarshaler | null>> & { cancel(): void }} + */ +export function Method() { + let $resultPromise = /** @type {any} */($Call.ByName("main.Service.Method")); + let $typingPromise = /** @type {any} */($resultPromise.then(($result) => { + return $$createType0($result); + })); + $typingPromise.cancel = $resultPromise.cancel.bind($resultPromise); + return $typingPromise; +} + +// Private type creation functions +const $$createType0 = $models.Maps.createFrom($Create.Any, $Create.Any, $Create.Any, $Create.Any, $Create.Any, $Create.Any, $Create.Any, $Create.Any, $Create.Any); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.js new file mode 100644 index 000000000..8f525252e --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.js @@ -0,0 +1,116 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +export { + Data, + ImplicitNonMarshaler, + NonMarshaler +} from "./models.js"; + +import * as $models from "./models.js"; + +/** + * any + * @typedef {$models.AliasJsonMarshaler} AliasJsonMarshaler + */ + +/** + * any + * @typedef {$models.AliasMarshaler} AliasMarshaler + */ + +/** + * struct{} + * @typedef {$models.AliasNonMarshaler} AliasNonMarshaler + */ + +/** + * string + * @typedef {$models.AliasTextMarshaler} AliasTextMarshaler + */ + +/** + * any + * @typedef {$models.ImplicitJsonButText} ImplicitJsonButText + */ + +/** + * any + * @typedef {$models.ImplicitJsonMarshaler} ImplicitJsonMarshaler + */ + +/** + * any + * @typedef {$models.ImplicitMarshaler} ImplicitMarshaler + */ + +/** + * string + * @typedef {$models.ImplicitNonJson} ImplicitNonJson + */ + +/** + * any + * @typedef {$models.ImplicitNonText} ImplicitNonText + */ + +/** + * any + * @typedef {$models.ImplicitTextButJson} ImplicitTextButJson + */ + +/** + * string + * @typedef {$models.ImplicitTextMarshaler} ImplicitTextMarshaler + */ + +/** + * any + * @typedef {$models.PointerJsonMarshaler} PointerJsonMarshaler + */ + +/** + * any + * @typedef {$models.PointerMarshaler} PointerMarshaler + */ + +/** + * string + * @typedef {$models.PointerTextMarshaler} PointerTextMarshaler + */ + +/** + * any + * @typedef {$models.UnderlyingJsonMarshaler} UnderlyingJsonMarshaler + */ + +/** + * any + * @typedef {$models.UnderlyingMarshaler} UnderlyingMarshaler + */ + +/** + * string + * @typedef {$models.UnderlyingTextMarshaler} UnderlyingTextMarshaler + */ + +/** + * any + * @typedef {$models.ValueJsonMarshaler} ValueJsonMarshaler + */ + +/** + * any + * @typedef {$models.ValueMarshaler} ValueMarshaler + */ + +/** + * string + * @typedef {$models.ValueTextMarshaler} ValueTextMarshaler + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.js new file mode 100644 index 000000000..1871e9492 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.js @@ -0,0 +1,630 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as encoding$0 from "../../../../../../../../encoding/models.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as json$0 from "../../../../../../../../encoding/json/models.js"; + +/** + * any + * @typedef {any} AliasJsonMarshaler + */ + +/** + * any + * @typedef {any} AliasMarshaler + */ + +/** + * struct{} + * @typedef { { + * } } AliasNonMarshaler + */ + +/** + * string + * @typedef {string} AliasTextMarshaler + */ + +export class Data { + /** + * Creates a new Data instance. + * @param {Partial} [$$source = {}] - The source object to create the Data. + */ + constructor($$source = {}) { + if (!("NM" in $$source)) { + /** + * @member + * @type {NonMarshaler} + */ + this["NM"] = (new NonMarshaler()); + } + if (!("NMPtr" in $$source)) { + /** + * NonMarshaler | null + * @member + * @type {NonMarshaler | null} + */ + this["NMPtr"] = null; + } + if (!("VJM" in $$source)) { + /** + * @member + * @type {ValueJsonMarshaler} + */ + this["VJM"] = null; + } + if (!("VJMPtr" in $$source)) { + /** + * ValueJsonMarshaler | null + * @member + * @type {ValueJsonMarshaler | null} + */ + this["VJMPtr"] = null; + } + if (!("PJM" in $$source)) { + /** + * @member + * @type {PointerJsonMarshaler} + */ + this["PJM"] = null; + } + if (!("PJMPtr" in $$source)) { + /** + * PointerJsonMarshaler | null + * @member + * @type {PointerJsonMarshaler | null} + */ + this["PJMPtr"] = null; + } + if (!("VTM" in $$source)) { + /** + * @member + * @type {ValueTextMarshaler} + */ + this["VTM"] = ""; + } + if (!("VTMPtr" in $$source)) { + /** + * ValueTextMarshaler | null + * @member + * @type {ValueTextMarshaler | null} + */ + this["VTMPtr"] = null; + } + if (!("PTM" in $$source)) { + /** + * @member + * @type {PointerTextMarshaler} + */ + this["PTM"] = ""; + } + if (!("PTMPtr" in $$source)) { + /** + * PointerTextMarshaler | null + * @member + * @type {PointerTextMarshaler | null} + */ + this["PTMPtr"] = null; + } + if (!("VM" in $$source)) { + /** + * @member + * @type {ValueMarshaler} + */ + this["VM"] = null; + } + if (!("VMPtr" in $$source)) { + /** + * ValueMarshaler | null + * @member + * @type {ValueMarshaler | null} + */ + this["VMPtr"] = null; + } + if (!("PM" in $$source)) { + /** + * @member + * @type {PointerMarshaler} + */ + this["PM"] = null; + } + if (!("PMPtr" in $$source)) { + /** + * PointerMarshaler | null + * @member + * @type {PointerMarshaler | null} + */ + this["PMPtr"] = null; + } + if (!("UJM" in $$source)) { + /** + * @member + * @type {UnderlyingJsonMarshaler} + */ + this["UJM"] = null; + } + if (!("UJMPtr" in $$source)) { + /** + * UnderlyingJsonMarshaler | null + * @member + * @type {UnderlyingJsonMarshaler | null} + */ + this["UJMPtr"] = null; + } + if (!("UTM" in $$source)) { + /** + * @member + * @type {UnderlyingTextMarshaler} + */ + this["UTM"] = ""; + } + if (!("UTMPtr" in $$source)) { + /** + * UnderlyingTextMarshaler | null + * @member + * @type {UnderlyingTextMarshaler | null} + */ + this["UTMPtr"] = null; + } + if (!("UM" in $$source)) { + /** + * @member + * @type {UnderlyingMarshaler} + */ + this["UM"] = null; + } + if (!("UMPtr" in $$source)) { + /** + * UnderlyingMarshaler | null + * @member + * @type {UnderlyingMarshaler | null} + */ + this["UMPtr"] = null; + } + if (!("JM" in $$source)) { + /** + * any + * @member + * @type {any} + */ + this["JM"] = null; + } + if (!("JMPtr" in $$source)) { + /** + * any | null + * @member + * @type {any | null} + */ + this["JMPtr"] = null; + } + if (!("TM" in $$source)) { + /** + * string + * @member + * @type {string} + */ + this["TM"] = ""; + } + if (!("TMPtr" in $$source)) { + /** + * string | null + * @member + * @type {string | null} + */ + this["TMPtr"] = null; + } + if (!("CJM" in $$source)) { + /** + * any + * @member + * @type {any} + */ + this["CJM"] = null; + } + if (!("CJMPtr" in $$source)) { + /** + * any | null + * @member + * @type {any | null} + */ + this["CJMPtr"] = null; + } + if (!("CTM" in $$source)) { + /** + * string + * @member + * @type {string} + */ + this["CTM"] = ""; + } + if (!("CTMPtr" in $$source)) { + /** + * string | null + * @member + * @type {string | null} + */ + this["CTMPtr"] = null; + } + if (!("CM" in $$source)) { + /** + * any + * @member + * @type {any} + */ + this["CM"] = null; + } + if (!("CMPtr" in $$source)) { + /** + * any | null + * @member + * @type {any | null} + */ + this["CMPtr"] = null; + } + if (!("ANM" in $$source)) { + /** + * @member + * @type {AliasNonMarshaler} + */ + this["ANM"] = {}; + } + if (!("ANMPtr" in $$source)) { + /** + * AliasNonMarshaler | null + * @member + * @type {AliasNonMarshaler | null} + */ + this["ANMPtr"] = null; + } + if (!("AJM" in $$source)) { + /** + * @member + * @type {AliasJsonMarshaler} + */ + this["AJM"] = null; + } + if (!("AJMPtr" in $$source)) { + /** + * AliasJsonMarshaler | null + * @member + * @type {AliasJsonMarshaler | null} + */ + this["AJMPtr"] = null; + } + if (!("ATM" in $$source)) { + /** + * @member + * @type {AliasTextMarshaler} + */ + this["ATM"] = ""; + } + if (!("ATMPtr" in $$source)) { + /** + * AliasTextMarshaler | null + * @member + * @type {AliasTextMarshaler | null} + */ + this["ATMPtr"] = null; + } + if (!("AM" in $$source)) { + /** + * @member + * @type {AliasMarshaler} + */ + this["AM"] = null; + } + if (!("AMPtr" in $$source)) { + /** + * AliasMarshaler | null + * @member + * @type {AliasMarshaler | null} + */ + this["AMPtr"] = null; + } + if (!("ImJM" in $$source)) { + /** + * @member + * @type {ImplicitJsonMarshaler} + */ + this["ImJM"] = null; + } + if (!("ImJMPtr" in $$source)) { + /** + * ImplicitJsonMarshaler | null + * @member + * @type {ImplicitJsonMarshaler | null} + */ + this["ImJMPtr"] = null; + } + if (!("ImTM" in $$source)) { + /** + * @member + * @type {ImplicitTextMarshaler} + */ + this["ImTM"] = ""; + } + if (!("ImTMPtr" in $$source)) { + /** + * ImplicitTextMarshaler | null + * @member + * @type {ImplicitTextMarshaler | null} + */ + this["ImTMPtr"] = null; + } + if (!("ImM" in $$source)) { + /** + * @member + * @type {ImplicitMarshaler} + */ + this["ImM"] = null; + } + if (!("ImMPtr" in $$source)) { + /** + * ImplicitMarshaler | null + * @member + * @type {ImplicitMarshaler | null} + */ + this["ImMPtr"] = null; + } + if (!("ImNJ" in $$source)) { + /** + * @member + * @type {ImplicitNonJson} + */ + this["ImNJ"] = ""; + } + if (!("ImNJPtr" in $$source)) { + /** + * ImplicitNonJson | null + * @member + * @type {ImplicitNonJson | null} + */ + this["ImNJPtr"] = null; + } + if (!("ImNT" in $$source)) { + /** + * @member + * @type {ImplicitNonText} + */ + this["ImNT"] = null; + } + if (!("ImNTPtr" in $$source)) { + /** + * ImplicitNonText | null + * @member + * @type {ImplicitNonText | null} + */ + this["ImNTPtr"] = null; + } + if (!("ImNM" in $$source)) { + /** + * @member + * @type {ImplicitNonMarshaler} + */ + this["ImNM"] = (new ImplicitNonMarshaler()); + } + if (!("ImNMPtr" in $$source)) { + /** + * ImplicitNonMarshaler | null + * @member + * @type {ImplicitNonMarshaler | null} + */ + this["ImNMPtr"] = null; + } + if (!("ImJbT" in $$source)) { + /** + * @member + * @type {ImplicitJsonButText} + */ + this["ImJbT"] = null; + } + if (!("ImJbTPtr" in $$source)) { + /** + * ImplicitJsonButText | null + * @member + * @type {ImplicitJsonButText | null} + */ + this["ImJbTPtr"] = null; + } + if (!("ImTbJ" in $$source)) { + /** + * @member + * @type {ImplicitTextButJson} + */ + this["ImTbJ"] = null; + } + if (!("ImTbJPtr" in $$source)) { + /** + * ImplicitTextButJson | null + * @member + * @type {ImplicitTextButJson | null} + */ + this["ImTbJPtr"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Data instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Data} + */ + static createFrom($$source = {}) { + const $$createField0_0 = $$createType0; + const $$createField1_0 = $$createType1; + const $$createField48_0 = $$createType2; + const $$createField49_0 = $$createType3; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("NM" in $$parsedSource) { + $$parsedSource["NM"] = $$createField0_0($$parsedSource["NM"]); + } + if ("NMPtr" in $$parsedSource) { + $$parsedSource["NMPtr"] = $$createField1_0($$parsedSource["NMPtr"]); + } + if ("ImNM" in $$parsedSource) { + $$parsedSource["ImNM"] = $$createField48_0($$parsedSource["ImNM"]); + } + if ("ImNMPtr" in $$parsedSource) { + $$parsedSource["ImNMPtr"] = $$createField49_0($$parsedSource["ImNMPtr"]); + } + return new Data(/** @type {Partial} */($$parsedSource)); + } +} + +/** + * any + * @typedef {any} ImplicitJsonButText + */ + +/** + * any + * @typedef {any} ImplicitJsonMarshaler + */ + +/** + * any + * @typedef {any} ImplicitMarshaler + */ + +/** + * string + * @typedef {string} ImplicitNonJson + */ + +/** + * class{ Marshaler, TextMarshaler } + */ +export class ImplicitNonMarshaler { + /** + * Creates a new ImplicitNonMarshaler instance. + * @param {Partial} [$$source = {}] - The source object to create the ImplicitNonMarshaler. + */ + constructor($$source = {}) { + if (!("Marshaler" in $$source)) { + /** + * @member + * @type {json$0.Marshaler} + */ + this["Marshaler"] = null; + } + if (!("TextMarshaler" in $$source)) { + /** + * @member + * @type {encoding$0.TextMarshaler} + */ + this["TextMarshaler"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new ImplicitNonMarshaler instance from a string or object. + * @param {any} [$$source = {}] + * @returns {ImplicitNonMarshaler} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new ImplicitNonMarshaler(/** @type {Partial} */($$parsedSource)); + } +} + +/** + * any + * @typedef {any} ImplicitNonText + */ + +/** + * any + * @typedef {any} ImplicitTextButJson + */ + +/** + * string + * @typedef {string} ImplicitTextMarshaler + */ + +/** + * class {} + */ +export class NonMarshaler { + /** + * Creates a new NonMarshaler instance. + * @param {Partial} [$$source = {}] - The source object to create the NonMarshaler. + */ + constructor($$source = {}) { + + Object.assign(this, $$source); + } + + /** + * Creates a new NonMarshaler instance from a string or object. + * @param {any} [$$source = {}] + * @returns {NonMarshaler} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new NonMarshaler(/** @type {Partial} */($$parsedSource)); + } +} + +/** + * any + * @typedef {any} PointerJsonMarshaler + */ + +/** + * any + * @typedef {any} PointerMarshaler + */ + +/** + * string + * @typedef {string} PointerTextMarshaler + */ + +/** + * any + * @typedef {any} UnderlyingJsonMarshaler + */ + +/** + * any + * @typedef {any} UnderlyingMarshaler + */ + +/** + * string + * @typedef {string} UnderlyingTextMarshaler + */ + +/** + * any + * @typedef {any} ValueJsonMarshaler + */ + +/** + * any + * @typedef {any} ValueMarshaler + */ + +/** + * string + * @typedef {string} ValueTextMarshaler + */ + +// Private type creation functions +const $$createType0 = NonMarshaler.createFrom; +const $$createType1 = $Create.Nullable($$createType0); +const $$createType2 = ImplicitNonMarshaler.createFrom; +const $$createType3 = $Create.Nullable($$createType2); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.js new file mode 100644 index 000000000..52950fdbd --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.js @@ -0,0 +1,26 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call, Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +/** + * @returns {Promise<$models.Data> & { cancel(): void }} + */ +export function Method() { + let $resultPromise = /** @type {any} */($Call.ByName("main.Service.Method")); + let $typingPromise = /** @type {any} */($resultPromise.then(($result) => { + return $$createType0($result); + })); + $typingPromise.cancel = $resultPromise.cancel.bind($resultPromise); + return $typingPromise; +} + +// Private type creation functions +const $$createType0 = $models.Data.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.js index 79394cd22..9be766c03 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.js @@ -7,4 +7,9 @@ export { SomeMethods }; -export * from "./models.js"; +export { + HowDifferent, + Impersonator, + Person, + PrivatePerson +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.js deleted file mode 100644 index d09e0de6a..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.js +++ /dev/null @@ -1,181 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as other$0 from "./other/models.js"; - -/** - * HowDifferent is a curious kind of person - * that lets other people decide how they are different. - * @template How - */ -export class HowDifferent { - /** - * Creates a new HowDifferent instance. - * @param {Partial>} [$$source = {}] - The source object to create the HowDifferent. - */ - constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * They have a name as well. - * @member - * @type {string} - */ - this["Name"] = ""; - } - if (!("Differences" in $$source)) { - /** - * But they may have many differences. - * @member - * @type {{ [_: string]: How | null }[]} - */ - this["Differences"] = []; - } - - Object.assign(this, $$source); - } - - /** - * Given creation functions for each type parameter, - * returns a creation function for a concrete instance - * of the generic class HowDifferent. - * @template How - * @param {(source: any) => How} $$createParamHow - * @returns {($$source?: any) => HowDifferent} - */ - static createFrom($$createParamHow) { - const $$createField1_0 = $$createType1($$createParamHow); - return ($$source = {}) => { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Differences" in $$parsedSource) { - $$parsedSource["Differences"] = $$createField1_0($$parsedSource["Differences"]); - } - return new HowDifferent(/** @type {Partial>} */($$parsedSource)); - }; - } -} - -/** - * Impersonator gets their fields from other people. - */ -export const Impersonator = other$0.OtherPerson; - -/** - * Impersonator gets their fields from other people. - * @typedef {other$0.OtherPerson} Impersonator - */ - -/** - * Person is not a number. - */ -export class Person { - /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. - */ - constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * They have a name. - * @member - * @type {string} - */ - this["Name"] = ""; - } - if (!("Friends" in $$source)) { - /** - * Exactly 4 sketchy friends. - * @member - * @type {Impersonator[]} - */ - this["Friends"] = Array.from({ length: 4 }, () => (new Impersonator())); - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Person} - */ - static createFrom($$source = {}) { - const $$createField1_0 = $$createType3; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Friends" in $$parsedSource) { - $$parsedSource["Friends"] = $$createField1_0($$parsedSource["Friends"]); - } - return new Person(/** @type {Partial} */($$parsedSource)); - } -} - -export class personImpl { - /** - * Creates a new personImpl instance. - * @param {Partial} [$$source = {}] - The source object to create the personImpl. - */ - constructor($$source = {}) { - if (!("Nickname" in $$source)) { - /** - * Nickname conceals a person's identity. - * @member - * @type {string} - */ - this["Nickname"] = ""; - } - if (!("Name" in $$source)) { - /** - * They have a name. - * @member - * @type {string} - */ - this["Name"] = ""; - } - if (!("Friends" in $$source)) { - /** - * Exactly 4 sketchy friends. - * @member - * @type {Impersonator[]} - */ - this["Friends"] = Array.from({ length: 4 }, () => (new Impersonator())); - } - - Object.assign(this, $$source); - } - - /** - * Creates a new personImpl instance from a string or object. - * @param {any} [$$source = {}] - * @returns {personImpl} - */ - static createFrom($$source = {}) { - const $$createField2_0 = $$createType3; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Friends" in $$parsedSource) { - $$parsedSource["Friends"] = $$createField2_0($$parsedSource["Friends"]); - } - return new personImpl(/** @type {Partial} */($$parsedSource)); - } -} - -/** - * PrivatePerson gets their fields from hidden sources. - */ -export const PrivatePerson = personImpl; - -/** - * PrivatePerson gets their fields from hidden sources. - * @typedef {personImpl} PrivatePerson - */ - -// Private type creation functions -const $$createType0 = ($$createParamHow) => $Create.Map($Create.Any, $$createParamHow); -const $$createType1 = ($$createParamHow) => $Create.Array($$createType0($$createParamHow)); -const $$createType2 = Impersonator.createFrom; -const $$createType3 = $Create.Array($$createType2); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.js index 1515d48ea..f88aa955a 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.js @@ -2,9 +2,180 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - HowDifferent, - Impersonator, - Person, - PrivatePerson -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as other$0 from "./other/models.js"; + +/** + * HowDifferent is a curious kind of person + * that lets other people decide how they are different. + * @template How + */ +export class HowDifferent { + /** + * Creates a new HowDifferent instance. + * @param {Partial>} [$$source = {}] - The source object to create the HowDifferent. + */ + constructor($$source = {}) { + if (!("Name" in $$source)) { + /** + * They have a name as well. + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("Differences" in $$source)) { + /** + * But they may have many differences. + * @member + * @type {{ [_: string]: How }[]} + */ + this["Differences"] = []; + } + + Object.assign(this, $$source); + } + + /** + * Given creation functions for each type parameter, + * returns a creation function for a concrete instance + * of the generic class HowDifferent. + * @template How + * @param {(source: any) => How} $$createParamHow + * @returns {($$source?: any) => HowDifferent} + */ + static createFrom($$createParamHow) { + const $$createField1_0 = $$createType1($$createParamHow); + return ($$source = {}) => { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Differences" in $$parsedSource) { + $$parsedSource["Differences"] = $$createField1_0($$parsedSource["Differences"]); + } + return new HowDifferent(/** @type {Partial>} */($$parsedSource)); + }; + } +} + +/** + * Impersonator gets their fields from other people. + */ +export const Impersonator = other$0.OtherPerson; + +/** + * Impersonator gets their fields from other people. + * @typedef {other$0.OtherPerson} Impersonator + */ + +/** + * Person is not a number. + */ +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (!("Name" in $$source)) { + /** + * They have a name. + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("Friends" in $$source)) { + /** + * Exactly 4 sketchy friends. + * @member + * @type {Impersonator[]} + */ + this["Friends"] = Array.from({ length: 4 }, () => (new Impersonator())); + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + const $$createField1_0 = $$createType3; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Friends" in $$parsedSource) { + $$parsedSource["Friends"] = $$createField1_0($$parsedSource["Friends"]); + } + return new Person(/** @type {Partial} */($$parsedSource)); + } +} + +export class personImpl { + /** + * Creates a new personImpl instance. + * @param {Partial} [$$source = {}] - The source object to create the personImpl. + */ + constructor($$source = {}) { + if (!("Nickname" in $$source)) { + /** + * Nickname conceals a person's identity. + * @member + * @type {string} + */ + this["Nickname"] = ""; + } + if (!("Name" in $$source)) { + /** + * They have a name. + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("Friends" in $$source)) { + /** + * Exactly 4 sketchy friends. + * @member + * @type {Impersonator[]} + */ + this["Friends"] = Array.from({ length: 4 }, () => (new Impersonator())); + } + + Object.assign(this, $$source); + } + + /** + * Creates a new personImpl instance from a string or object. + * @param {any} [$$source = {}] + * @returns {personImpl} + */ + static createFrom($$source = {}) { + const $$createField2_0 = $$createType3; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Friends" in $$parsedSource) { + $$parsedSource["Friends"] = $$createField2_0($$parsedSource["Friends"]); + } + return new personImpl(/** @type {Partial} */($$parsedSource)); + } +} + +/** + * PrivatePerson gets their fields from hidden sources. + */ +export const PrivatePerson = personImpl; + +/** + * PrivatePerson gets their fields from hidden sources. + * @typedef {personImpl} PrivatePerson + */ + +// Private type creation functions +const $$createType0 = ($$createParamHow) => $Create.Map($Create.Any, $$createParamHow); +const $$createType1 = ($$createParamHow) => $Create.Array($$createType0($$createParamHow)); +const $$createType2 = other$0.OtherPerson.createFrom($Create.Any); +const $$createType3 = $Create.Array($$createType2); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.js index 9ac8ae8c2..db4e64147 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.js @@ -7,4 +7,6 @@ export { OtherMethods }; -export * from "./models.js"; +export { + OtherPerson +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.js deleted file mode 100644 index 455e369fc..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.js +++ /dev/null @@ -1,60 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -/** - * OtherPerson is like a person, but different. - * @template T - */ -export class OtherPerson { - /** - * Creates a new OtherPerson instance. - * @param {Partial>} [$$source = {}] - The source object to create the OtherPerson. - */ - constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * They have a name as well. - * @member - * @type {string} - */ - this["Name"] = ""; - } - if (!("Differences" in $$source)) { - /** - * But they may have many differences. - * @member - * @type {(T | null)[]} - */ - this["Differences"] = []; - } - - Object.assign(this, $$source); - } - - /** - * Given creation functions for each type parameter, - * returns a creation function for a concrete instance - * of the generic class OtherPerson. - * @template T - * @param {(source: any) => T} $$createParamT - * @returns {($$source?: any) => OtherPerson} - */ - static createFrom($$createParamT) { - const $$createField1_0 = $$createType0($$createParamT); - return ($$source = {}) => { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Differences" in $$parsedSource) { - $$parsedSource["Differences"] = $$createField1_0($$parsedSource["Differences"]); - } - return new OtherPerson(/** @type {Partial>} */($$parsedSource)); - }; - } -} - -// Private type creation functions -const $$createType0 = ($$createParamT) => $Create.Array($$createParamT); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.js index 30bb60b19..c10d33908 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.js @@ -2,6 +2,59 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - OtherPerson -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * OtherPerson is like a person, but different. + * @template T + */ +export class OtherPerson { + /** + * Creates a new OtherPerson instance. + * @param {Partial>} [$$source = {}] - The source object to create the OtherPerson. + */ + constructor($$source = {}) { + if (!("Name" in $$source)) { + /** + * They have a name as well. + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("Differences" in $$source)) { + /** + * But they may have many differences. + * @member + * @type {T[]} + */ + this["Differences"] = []; + } + + Object.assign(this, $$source); + } + + /** + * Given creation functions for each type parameter, + * returns a creation function for a concrete instance + * of the generic class OtherPerson. + * @template T + * @param {(source: any) => T} $$createParamT + * @returns {($$source?: any) => OtherPerson} + */ + static createFrom($$createParamT) { + const $$createField1_0 = $$createType0($$createParamT); + return ($$source = {}) => { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Differences" in $$parsedSource) { + $$parsedSource["Differences"] = $$createField1_0($$parsedSource["Differences"]); + } + return new OtherPerson(/** @type {Partial>} */($$parsedSource)); + }; + } +} + +// Private type creation functions +const $$createType0 = ($$createParamT) => $Create.Array($$createParamT); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.js index 36c192f78..300f5807b 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * LikeThisOne is an example method that does nothing. @@ -43,4 +43,4 @@ export function LikeThisOtherOne() { // Private type creation functions const $$createType0 = $models.Person.createFrom; const $$createType1 = $models.HowDifferent.createFrom($Create.Any); -const $$createType2 = $models.PrivatePerson.createFrom; +const $$createType2 = $models.personImpl.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/out_of_tree/embedservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/out_of_tree/embedservice.js index e33c3c86d..458575bd1 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/out_of_tree/embedservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/out_of_tree/embedservice.js @@ -43,4 +43,4 @@ export function LikeThisOtherOne() { // Private type creation functions const $$createType0 = nobindingshere$0.Person.createFrom; const $$createType1 = nobindingshere$0.HowDifferent.createFrom($Create.Any); -const $$createType2 = nobindingshere$0.PrivatePerson.createFrom; +const $$createType2 = nobindingshere$0.personImpl.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.js index 970e10385..0ed0e3660 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.js index 130c30a09..fefe6b6ba 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.js @@ -7,4 +7,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.js deleted file mode 100644 index e187cce22..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.js +++ /dev/null @@ -1,54 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -export class Person { - /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. - */ - constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * @member - * @type {string} - */ - this["Name"] = ""; - } - if (!("Address" in $$source)) { - /** - * @member - * @type {services$0.Address | null} - */ - this["Address"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Person} - */ - static createFrom($$source = {}) { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Address" in $$parsedSource) { - $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); - } - return new Person(/** @type {Partial} */($$parsedSource)); - } -} - -// Private type creation functions -const $$createType0 = services$0.Address.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.js index 1cf2e2418..e187cce22 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.js @@ -2,6 +2,53 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; + +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (!("Name" in $$source)) { + /** + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("Address" in $$source)) { + /** + * @member + * @type {services$0.Address | null} + */ + this["Address"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Address" in $$parsedSource) { + $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); + } + return new Person(/** @type {Partial} */($$parsedSource)); + } +} + +// Private type creation functions +const $$createType0 = services$0.Address.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.js index bac48bb49..ed65b6d15 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.js @@ -7,4 +7,6 @@ export { OtherService }; -export * from "./models.js"; +export { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.js deleted file mode 100644 index fb1176dee..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.js +++ /dev/null @@ -1,49 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Address { - /** - * Creates a new Address instance. - * @param {Partial
} [$$source = {}] - The source object to create the Address. - */ - constructor($$source = {}) { - if (!("Street" in $$source)) { - /** - * @member - * @type {string} - */ - this["Street"] = ""; - } - if (!("State" in $$source)) { - /** - * @member - * @type {string} - */ - this["State"] = ""; - } - if (!("Country" in $$source)) { - /** - * @member - * @type {string} - */ - this["Country"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Address instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Address} - */ - static createFrom($$source = {}) { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Address(/** @type {Partial
} */($$parsedSource)); - } -} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.js index 6820003a0..fb1176dee 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.js @@ -2,6 +2,48 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Address -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Address { + /** + * Creates a new Address instance. + * @param {Partial
} [$$source = {}] - The source object to create the Address. + */ + constructor($$source = {}) { + if (!("Street" in $$source)) { + /** + * @member + * @type {string} + */ + this["Street"] = ""; + } + if (!("State" in $$source)) { + /** + * @member + * @type {string} + */ + this["State"] = ""; + } + if (!("Country" in $$source)) { + /** + * @member + * @type {string} + */ + this["Country"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Address instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Address} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Address(/** @type {Partial
} */($$parsedSource)); + } +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.js index 633e8136c..105fc3ea8 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.js @@ -14,7 +14,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.js index 199f35a35..eb69383fb 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * @param {number[]} $in @@ -170,11 +170,11 @@ export function MapIntInt($in) { } /** - * @param {{ [_: string]: number }} $in + * @param {{ [_: `${number}`]: number | null }} $in * @returns {Promise & { cancel(): void }} */ -export function MapIntPointerInt($in) { - let $resultPromise = /** @type {any} */($Call.ByName("main.GreetService.MapIntPointerInt", $in)); +export function MapIntIntPointer($in) { + let $resultPromise = /** @type {any} */($Call.ByName("main.GreetService.MapIntIntPointer", $in)); return $resultPromise; } diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.js index 130c30a09..fefe6b6ba 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.js @@ -7,4 +7,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.js deleted file mode 100644 index 660f38b29..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.js +++ /dev/null @@ -1,57 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Person { - /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. - */ - constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * @member - * @type {string} - */ - this["Name"] = ""; - } - if (!("Parent" in $$source)) { - /** - * @member - * @type {Person | null} - */ - this["Parent"] = null; - } - if (!("Details" in $$source)) { - /** - * @member - * @type {{"Age": number, "Address": {"Street": string}}} - */ - this["Details"] = {"Age": 0, "Address": {"Street": ""}}; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Person} - */ - static createFrom($$source = {}) { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Parent" in $$parsedSource) { - $$parsedSource["Parent"] = $$createField1_0($$parsedSource["Parent"]); - } - return new Person(/** @type {Partial} */($$parsedSource)); - } -} - -// Private type creation functions -const $$createType0 = Person.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.js index 1cf2e2418..660f38b29 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.js @@ -2,6 +2,56 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (!("Name" in $$source)) { + /** + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("Parent" in $$source)) { + /** + * @member + * @type {Person | null} + */ + this["Parent"] = null; + } + if (!("Details" in $$source)) { + /** + * @member + * @type {{"Age": number, "Address": {"Street": string}}} + */ + this["Details"] = {"Age": 0, "Address": {"Street": ""}}; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Parent" in $$parsedSource) { + $$parsedSource["Parent"] = $$createField1_0($$parsedSource["Parent"]); + } + return new Person(/** @type {Partial} */($$parsedSource)); + } +} + +// Private type creation functions +const $$createType0 = Person.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.js index 199f35a35..eb69383fb 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * @param {number[]} $in @@ -170,11 +170,11 @@ export function MapIntInt($in) { } /** - * @param {{ [_: string]: number }} $in + * @param {{ [_: `${number}`]: number | null }} $in * @returns {Promise & { cancel(): void }} */ -export function MapIntPointerInt($in) { - let $resultPromise = /** @type {any} */($Call.ByName("main.GreetService.MapIntPointerInt", $in)); +export function MapIntIntPointer($in) { + let $resultPromise = /** @type {any} */($Call.ByName("main.GreetService.MapIntIntPointer", $in)); return $resultPromise; } diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.js index 130c30a09..fefe6b6ba 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.js @@ -7,4 +7,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.js deleted file mode 100644 index 660f38b29..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.js +++ /dev/null @@ -1,57 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Person { - /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. - */ - constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * @member - * @type {string} - */ - this["Name"] = ""; - } - if (!("Parent" in $$source)) { - /** - * @member - * @type {Person | null} - */ - this["Parent"] = null; - } - if (!("Details" in $$source)) { - /** - * @member - * @type {{"Age": number, "Address": {"Street": string}}} - */ - this["Details"] = {"Age": 0, "Address": {"Street": ""}}; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Person} - */ - static createFrom($$source = {}) { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Parent" in $$parsedSource) { - $$parsedSource["Parent"] = $$createField1_0($$parsedSource["Parent"]); - } - return new Person(/** @type {Partial} */($$parsedSource)); - } -} - -// Private type creation functions -const $$createType0 = Person.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.js index 1cf2e2418..660f38b29 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.js @@ -2,6 +2,56 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (!("Name" in $$source)) { + /** + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("Parent" in $$source)) { + /** + * @member + * @type {Person | null} + */ + this["Parent"] = null; + } + if (!("Details" in $$source)) { + /** + * @member + * @type {{"Age": number, "Address": {"Street": string}}} + */ + this["Details"] = {"Age": 0, "Address": {"Street": ""}}; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Parent" in $$parsedSource) { + $$parsedSource["Parent"] = $$createField1_0($$parsedSource["Parent"]); + } + return new Person(/** @type {Partial} */($$parsedSource)); + } +} + +// Private type creation functions +const $$createType0 = Person.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.js index 970e10385..0ed0e3660 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.js index 130c30a09..fefe6b6ba 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.js @@ -7,4 +7,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.js deleted file mode 100644 index 0daca427b..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.js +++ /dev/null @@ -1,58 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -/** - * Person is a person! - * They have a name and an address - */ -export class Person { - /** - * Creates a new Person instance. - * @param {Partial} [$$source = {}] - The source object to create the Person. - */ - constructor($$source = {}) { - if (!("Name" in $$source)) { - /** - * @member - * @type {string} - */ - this["Name"] = ""; - } - if (!("Address" in $$source)) { - /** - * @member - * @type {services$0.Address | null} - */ - this["Address"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Person} - */ - static createFrom($$source = {}) { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Address" in $$parsedSource) { - $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); - } - return new Person(/** @type {Partial} */($$parsedSource)); - } -} - -// Private type creation functions -const $$createType0 = services$0.Address.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.js index 1cf2e2418..0daca427b 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.js @@ -2,6 +2,57 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; + +/** + * Person is a person! + * They have a name and an address + */ +export class Person { + /** + * Creates a new Person instance. + * @param {Partial} [$$source = {}] - The source object to create the Person. + */ + constructor($$source = {}) { + if (!("Name" in $$source)) { + /** + * @member + * @type {string} + */ + this["Name"] = ""; + } + if (!("Address" in $$source)) { + /** + * @member + * @type {services$0.Address | null} + */ + this["Address"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Person} + */ + static createFrom($$source = {}) { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Address" in $$parsedSource) { + $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); + } + return new Person(/** @type {Partial} */($$parsedSource)); + } +} + +// Private type creation functions +const $$createType0 = services$0.Address.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.js index bac48bb49..ed65b6d15 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.js @@ -7,4 +7,6 @@ export { OtherService }; -export * from "./models.js"; +export { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.js deleted file mode 100644 index fb1176dee..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.js +++ /dev/null @@ -1,49 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Address { - /** - * Creates a new Address instance. - * @param {Partial
} [$$source = {}] - The source object to create the Address. - */ - constructor($$source = {}) { - if (!("Street" in $$source)) { - /** - * @member - * @type {string} - */ - this["Street"] = ""; - } - if (!("State" in $$source)) { - /** - * @member - * @type {string} - */ - this["State"] = ""; - } - if (!("Country" in $$source)) { - /** - * @member - * @type {string} - */ - this["Country"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Address instance from a string or object. - * @param {any} [$$source = {}] - * @returns {Address} - */ - static createFrom($$source = {}) { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Address(/** @type {Partial
} */($$parsedSource)); - } -} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.js index 6820003a0..fb1176dee 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.js @@ -2,6 +2,48 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Address -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Address { + /** + * Creates a new Address instance. + * @param {Partial
} [$$source = {}] - The source object to create the Address. + */ + constructor($$source = {}) { + if (!("Street" in $$source)) { + /** + * @member + * @type {string} + */ + this["Street"] = ""; + } + if (!("State" in $$source)) { + /** + * @member + * @type {string} + */ + this["State"] = ""; + } + if (!("Country" in $$source)) { + /** + * @member + * @type {string} + */ + this["Country"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Address instance from a string or object. + * @param {any} [$$source = {}] + * @returns {Address} + */ + static createFrom($$source = {}) { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Address(/** @type {Partial
} */($$parsedSource)); + } +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.js index 21bbc7aa0..47ce5c70a 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.js @@ -14,7 +14,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/warnings.log b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/warnings.log new file mode 100644 index 000000000..dbefd8749 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/warnings.log @@ -0,0 +1,47 @@ +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *R is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *S is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *T is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *U is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *V is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *X is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *Y is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *Z is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *any is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *complex64 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *encoding.TextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *float32 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.CustomInterface is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.EmbeddedInterface is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfaceAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfaceType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.NonTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValueType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *int is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *string is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *uint is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type R is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type T is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type W is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type any is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type bool is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type complex64 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type float32 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.EmbeddedPointer is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.NonTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValueType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.WrongAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.WrongType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/encoding/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/encoding/index.js new file mode 100644 index 000000000..cf48d86db --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/encoding/index.js @@ -0,0 +1,13 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as $models from "./models.js"; + +/** + * TextMarshaler is the interface implemented by an object that can + * marshal itself into a textual form. + * + * MarshalText encodes the receiver into UTF-8-encoded text and returns the result. + * @typedef {$models.TextMarshaler} TextMarshaler + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/encoding/json/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/encoding/json/index.js new file mode 100644 index 000000000..22f1fd904 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/encoding/json/index.js @@ -0,0 +1,11 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as $models from "./models.js"; + +/** + * Marshaler is the interface implemented by types that + * can marshal themselves into valid JSON. + * @typedef {$models.Marshaler} Marshaler + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/encoding/json/models.js similarity index 69% rename from v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.js rename to v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/encoding/json/models.js index c04e3b10b..5dce4eea6 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/encoding/json/models.js @@ -3,10 +3,9 @@ // This file is automatically generated. DO NOT EDIT /** - * @typedef {Object} Address - * @property {string} Street - * @property {string} State - * @property {string} Country + * Marshaler is the interface implemented by types that + * can marshal themselves into valid JSON. + * @typedef {any} Marshaler */ // In interface mode, this file is likely to contain just comments. diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/encoding/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/encoding/models.js new file mode 100644 index 000000000..db89bafbc --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/encoding/models.js @@ -0,0 +1,15 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * TextMarshaler is the interface implemented by an object that can + * marshal itself into a textual form. + * + * MarshalText encodes the receiver into UTF-8-encoded text and returns the result. + * @typedef {any} TextMarshaler + */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.js index 89ab39fad..bb83e6cd3 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.js @@ -13,7 +13,11 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as nobindingshere$0 from "../no_bindings_here/models.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; /** * Get someone. @@ -44,6 +48,14 @@ export function GetButDifferent() { return $resultPromise; } +/** + * @returns {Promise & { cancel(): void }} + */ +export function GetButForeignPrivateAlias() { + let $resultPromise = /** @type {any} */($Call.ByID(643456960)); + return $resultPromise; +} + /** * Greet a lot of unusual things. * @param {$models.EmptyAliasStruct} $0 diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.js index 130c30a09..25e37feb0 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.js @@ -7,4 +7,51 @@ export { GreetService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * A nice type Alias. + * @typedef {$models.Alias} Alias + */ + +/** + * A struct alias. + * This should be rendered as a typedef or interface in every mode. + * @typedef {$models.AliasStruct} AliasStruct + */ + +/** + * A class alias. + * @typedef {$models.AliasedPerson} AliasedPerson + */ + +/** + * An empty struct alias. + * @typedef {$models.EmptyAliasStruct} EmptyAliasStruct + */ + +/** + * An empty struct. + * @typedef {$models.EmptyStruct} EmptyStruct + */ + +/** + * A generic struct containing an alias. + * @template T + * @typedef {$models.GenericPerson} GenericPerson + */ + +/** + * Another struct alias. + * @typedef {$models.OtherAliasStruct} OtherAliasStruct + */ + +/** + * A non-generic struct containing an alias. + * @typedef {$models.Person} Person + */ + +/** + * Another class alias, but ordered after its aliased class. + * @typedef {$models.StrangelyAliasedPerson} StrangelyAliasedPerson + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.js deleted file mode 100644 index 756c523b0..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.js +++ /dev/null @@ -1,65 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * A nice type Alias. - * @typedef {number} Alias - */ - -/** - * A struct alias. - * This should be rendered as a typedef or interface in every mode. - * @typedef {Object} AliasStruct - * @property {number[] | null} Foo - A field with a comment. - * @property {string} [Bar] - Definitely not Foo. - * @property {string} [Baz] - Definitely not Foo. - * @property {OtherAliasStruct} Other - A nested alias struct. - */ - -/** - * A class alias. - * @typedef {Person} AliasedPerson - */ - -/** - * An empty struct alias. - * @typedef { { - * } } EmptyAliasStruct - */ - -/** - * An empty struct. - * @typedef { { - * } } EmptyStruct - */ - -/** - * A generic struct containing an alias. - * @template T - * @typedef {Object} GenericPerson - * @property {T | null} Name - * @property {Alias} AliasedField - */ - -/** - * Another struct alias. - * @typedef {Object} OtherAliasStruct - * @property {number[] | null} NoMoreIdeas - */ - -/** - * A non-generic struct containing an alias. - * @typedef {Object} Person - * @property {string} Name - The Person's name. - * @property {Alias} AliasedField - A random alias field. - */ - -/** - * Another class alias, but ordered after its aliased class. - * @typedef {Person} StrangelyAliasedPerson - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.js index bfecf2d1a..4f343cb4a 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.js @@ -2,51 +2,64 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; - /** * A nice type Alias. - * @typedef {$models.Alias} Alias + * @typedef {number} Alias */ /** * A struct alias. * This should be rendered as a typedef or interface in every mode. - * @typedef {$models.AliasStruct} AliasStruct + * @typedef {Object} AliasStruct + * @property {number[] | null} Foo - A field with a comment. + * @property {string} [Bar] - Definitely not Foo. + * @property {string} [Baz] - Definitely not Foo. + * @property {OtherAliasStruct} Other - A nested alias struct. */ /** * A class alias. - * @typedef {$models.AliasedPerson} AliasedPerson + * @typedef {Person} AliasedPerson */ /** * An empty struct alias. - * @typedef {$models.EmptyAliasStruct} EmptyAliasStruct + * @typedef { { + * } } EmptyAliasStruct */ /** * An empty struct. - * @typedef {$models.EmptyStruct} EmptyStruct + * @typedef { { + * } } EmptyStruct */ /** * A generic struct containing an alias. * @template T - * @typedef {$models.GenericPerson} GenericPerson + * @typedef {Object} GenericPerson + * @property {T} Name + * @property {Alias} AliasedField */ /** * Another struct alias. - * @typedef {$models.OtherAliasStruct} OtherAliasStruct + * @typedef {Object} OtherAliasStruct + * @property {number[] | null} NoMoreIdeas */ /** * A non-generic struct containing an alias. - * @typedef {$models.Person} Person + * @typedef {Object} Person + * @property {string} Name - The Person's name. + * @property {Alias} AliasedField - A random alias field. */ /** * Another class alias, but ordered after its aliased class. - * @typedef {$models.StrangelyAliasedPerson} StrangelyAliasedPerson + * @typedef {Person} StrangelyAliasedPerson */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.js index 859df0310..c8cf7d8a4 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.js index 130c30a09..f21130b86 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.js @@ -7,4 +7,21 @@ export { GreetService }; -export * from "./models.js"; +export { + Title +} from "./models.js"; + +import * as $models from "./models.js"; + +/** + * @typedef {$models.Embedded1} Embedded1 + */ + +/** + * @typedef {$models.Embedded3} Embedded3 + */ + +/** + * Person represents a person + * @typedef {$models.Person} Person + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.js deleted file mode 100644 index b30630777..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.js +++ /dev/null @@ -1,64 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * @typedef {Object} Embedded1 - * @property {number} Friends - Friends should be shadowed in Person by a field of lesser depth - * @property {number} Vanish - Vanish should be omitted from Person because there is another field with same depth and no tag - * @property {string} StillThere - StillThere should be shadowed in Person by other field with same depth and a json tag - * @property {`${boolean}`} NamingThingsIsHard - NamingThingsIsHard is a law of programming - */ - -/** - * @typedef {string} Embedded3 - */ - -/** - * Person represents a person - * @typedef { { - * "Titles"?: Title[] | null, - * "Names": string[] | null, - * "Partner": Person | null, - * "Friends": (Person | null)[] | null, - * "NamingThingsIsHard": `${boolean}`, - * "StillThere": Embedded3 | null, - * "-": number, - * "Embedded3": Embedded3, - * "StrangerNumber": `${number}`, - * "StrangestString"?: `"${string}"`, - * "StringStrangest"?: `"${string}"`, - * "emb4"?: embedded4, - * } } Person - */ - -/** - * Title is a title - * @readonly - * @enum {string} - */ -export const Title = { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero: "", - - /** - * Mister is a title - */ - Mister: "Mr", - Miss: "Miss", - Ms: "Ms", - Mrs: "Mrs", - Dr: "Dr", -}; - -/** - * @typedef {Object} embedded4 - * @property {`${boolean}`} NamingThingsIsHard - NamingThingsIsHard is a law of programming - * @property {boolean} Friends - Friends should not be shadowed in Person as embedded4 is not embedded from encoding/json's point of view; however, it should be shadowed in Embedded1 - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.js index f4c863a35..b30630777 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.js @@ -2,21 +2,63 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Title -} from "./internal.js"; - -import * as $models from "./internal.js"; - /** - * @typedef {$models.Embedded1} Embedded1 + * @typedef {Object} Embedded1 + * @property {number} Friends - Friends should be shadowed in Person by a field of lesser depth + * @property {number} Vanish - Vanish should be omitted from Person because there is another field with same depth and no tag + * @property {string} StillThere - StillThere should be shadowed in Person by other field with same depth and a json tag + * @property {`${boolean}`} NamingThingsIsHard - NamingThingsIsHard is a law of programming */ /** - * @typedef {$models.Embedded3} Embedded3 + * @typedef {string} Embedded3 */ /** * Person represents a person - * @typedef {$models.Person} Person + * @typedef { { + * "Titles"?: Title[] | null, + * "Names": string[] | null, + * "Partner": Person | null, + * "Friends": (Person | null)[] | null, + * "NamingThingsIsHard": `${boolean}`, + * "StillThere": Embedded3 | null, + * "-": number, + * "Embedded3": Embedded3, + * "StrangerNumber": `${number}`, + * "StrangestString"?: `"${string}"`, + * "StringStrangest"?: `"${string}"`, + * "emb4"?: embedded4, + * } } Person */ + +/** + * Title is a title + * @readonly + * @enum {string} + */ +export const Title = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: "", + + /** + * Mister is a title + */ + Mister: "Mr", + Miss: "Miss", + Ms: "Ms", + Mrs: "Mrs", + Dr: "Dr", +}; + +/** + * @typedef {Object} embedded4 + * @property {`${boolean}`} NamingThingsIsHard - NamingThingsIsHard is a law of programming + * @property {boolean} Friends - Friends should not be shadowed in Person as embedded4 is not embedded from encoding/json's point of view; however, it should be shadowed in Embedded1 + */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.js index 3de04dbbe..dd0ac2d2c 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.js index 130c30a09..88af1203b 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.js @@ -7,4 +7,9 @@ export { GreetService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * Person represents a person + * @typedef {$models.Person} Person + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.js index a1cc75bff..035bc0792 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.js @@ -2,9 +2,12 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; - /** * Person represents a person - * @typedef {$models.Person} Person + * @typedef {Object} Person + * @property {string} Name */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.js index b6788af43..7bb0caa65 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Make a cycle. diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.js index 130c30a09..9b49a9172 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.js @@ -7,4 +7,16 @@ export { GreetService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.StructA} StructA + */ + +/** + * @typedef {$models.StructC} StructC + */ + +/** + * @typedef {$models.StructE} StructE + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.js deleted file mode 100644 index 50e0d0fc0..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.js +++ /dev/null @@ -1,32 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * @typedef {Object} StructA - * @property {structB | null} B - */ - -/** - * @typedef {Object} StructC - * @property {structD} D - */ - -/** - * @typedef { { - * } } StructE - */ - -/** - * @typedef {Object} structB - * @property {StructA | null} A - */ - -/** - * @typedef {Object} structD - * @property {StructE} E - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.js index f078dafd2..50e0d0fc0 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.js @@ -2,16 +2,31 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; - /** - * @typedef {$models.StructA} StructA + * @typedef {Object} StructA + * @property {structB | null} B */ /** - * @typedef {$models.StructC} StructC + * @typedef {Object} StructC + * @property {structD} D */ /** - * @typedef {$models.StructE} StructE + * @typedef { { + * } } StructE */ + +/** + * @typedef {Object} structB + * @property {StructA | null} A + */ + +/** + * @typedef {Object} structD + * @property {StructE} E + */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.js index 4d97ddc65..dede5e3da 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Make a cycle. diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.js index 130c30a09..9fc31bf7c 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.js @@ -7,4 +7,17 @@ export { GreetService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.Alias} Alias + */ + +/** + * @typedef {$models.Cyclic} Cyclic + */ + +/** + * @template T + * @typedef {$models.GenericCyclic} GenericCyclic + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.js deleted file mode 100644 index b9f0d91a5..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.js +++ /dev/null @@ -1,20 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * @typedef {Cyclic | null} Alias - */ - -/** - * @typedef {({ [_: string]: Alias } | null)[] | null} Cyclic - */ - -/** - * @template T - * @typedef {{"X": GenericCyclic | null, "Y": (T | null)[] | null}[] | null} GenericCyclic - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.js index 1d70efd70..2413995ac 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.js @@ -2,17 +2,19 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; - /** - * @typedef {$models.Alias} Alias + * @typedef {Cyclic | null} Alias */ /** - * @typedef {$models.Cyclic} Cyclic + * @typedef {({ [_: string]: Alias } | null)[] | null} Cyclic */ /** * @template T - * @typedef {$models.GenericCyclic} GenericCyclic + * @typedef {{"X": GenericCyclic | null, "Y": T[] | null}[] | null} GenericCyclic */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.js new file mode 100644 index 000000000..40d68bf85 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.js @@ -0,0 +1,14 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +console.log("Hello everywhere!"); +console.log("Hello everywhere again!"); +console.log("Hello Interfaces!"); +console.log("Hello JS!"); +console.log("Hello JS Interfaces!"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.js new file mode 100644 index 000000000..1f5b27968 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.js @@ -0,0 +1,25 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * An exported but internal service. + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +/** + * @param {$models.InternalModel} $0 + * @returns {Promise & { cancel(): void }} + */ +export function Method($0) { + let $resultPromise = /** @type {any} */($Call.ByID(538079117, $0)); + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.js similarity index 60% rename from v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.js rename to v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.js index c04e3b10b..a4c233c8c 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.js @@ -3,10 +3,15 @@ // This file is automatically generated. DO NOT EDIT /** - * @typedef {Object} Address - * @property {string} Street - * @property {string} State - * @property {string} Country + * An exported but internal model. + * @typedef {Object} InternalModel + * @property {string} Field + */ + +/** + * An unexported model. + * @typedef {Object} unexportedModel + * @property {string} Field */ // In interface mode, this file is likely to contain just comments. diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.ts b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.js similarity index 58% rename from v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.ts rename to v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.js index 6691fb86c..c93da8f05 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.ts +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.js @@ -1,9 +1,9 @@ +// @ts-check // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT +import * as $models from "./models.js"; + /** - * Person represents a person + * @typedef {$models.Dummy} Dummy */ -export interface Person { - "Name": string; -} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.js similarity index 77% rename from v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.js rename to v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.js index 035bc0792..6b6f5401f 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.js @@ -3,9 +3,8 @@ // This file is automatically generated. DO NOT EDIT /** - * Person represents a person - * @typedef {Object} Person - * @property {string} Name + * @typedef { { + * } } Dummy */ // In interface mode, this file is likely to contain just comments. diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.js new file mode 100644 index 000000000..c6fa4555b --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.js @@ -0,0 +1,37 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as otherpackage$0 from "./otherpackage/models.js"; + +/** + * @param {string} $0 + * @returns {Promise & { cancel(): void }} + */ +function InternalMethod($0) { + let $resultPromise = /** @type {any} */($Call.ByID(3518775569, $0)); + return $resultPromise; +} + +/** + * @param {otherpackage$0.Dummy} $0 + * @returns {Promise & { cancel(): void }} + */ +export function VisibleMethod($0) { + let $resultPromise = /** @type {any} */($Call.ByID(474018228, $0)); + return $resultPromise; +} + +/** + * @param {string} arg + * @returns {Promise} + */ +export async function CustomMethod(arg) { + await InternalMethod("Hello " + arg + "!"); +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js new file mode 100644 index 000000000..138385f53 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("everywhere"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js new file mode 100644 index 000000000..19d5c2f42 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("everywhere again"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_i.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_i.js new file mode 100644 index 000000000..442f20472 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_i.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("Interfaces"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_j.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_j.js new file mode 100644 index 000000000..b2f9c5edb --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_j.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("JS"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_ji.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_ji.js new file mode 100644 index 000000000..36e28f09b --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_ji.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("JS Interfaces"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.js new file mode 100644 index 000000000..b29fdb615 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.js @@ -0,0 +1,25 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * An unexported service. + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +/** + * @param {$models.unexportedModel} $0 + * @returns {Promise & { cancel(): void }} + */ +export function Method($0) { + let $resultPromise = /** @type {any} */($Call.ByID(37626172, $0)); + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.js index e29ab6695..8596b37d8 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.js index 130c30a09..649d8d016 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.js @@ -7,4 +7,14 @@ export { GreetService }; -export * from "./models.js"; +export { + Age, + Title +} from "./models.js"; + +import * as $models from "./models.js"; + +/** + * Person represents a person + * @typedef {$models.Person} Person + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.js deleted file mode 100644 index 2284fe5ab..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.js +++ /dev/null @@ -1,35 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * Person represents a person - * @typedef {Object} Person - * @property {Title} Title - * @property {string} Name - */ - -/** - * Title is a title - * @readonly - * @enum {string} - */ -export const Title = { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero: "", - - /** - * Mister is a title - */ - Mister: "Mr", - Miss: "Miss", - Ms: "Ms", - Mrs: "Mrs", - Dr: "Dr", -}; - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.js index c72d9628b..e7c70729c 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.js @@ -2,13 +2,60 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Title -} from "./internal.js"; +/** + * Age is an integer with some predefined values + * @typedef {number} Age + */ -import * as $models from "./internal.js"; +/** + * Predefined constants for type Age. + * @namespace + */ +export const Age = { + NewBorn: 0, + Teenager: 12, + YoungAdult: 18, + + /** + * Oh no, some grey hair! + */ + MiddleAged: 50, + + /** + * Unbelievable! + */ + Mathusalem: 1000, +}; /** * Person represents a person - * @typedef {$models.Person} Person + * @typedef {Object} Person + * @property {Title} Title + * @property {string} Name + * @property {Age} Age */ + +/** + * Title is a title + * @readonly + * @enum {string} + */ +export const Title = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: "", + + /** + * Mister is a title + */ + Mister: "Mr", + Miss: "Miss", + Ms: "Ms", + Mrs: "Mrs", + Dr: "Dr", +}; + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.js index 580fb67af..089a8b685 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.js @@ -2,4 +2,6 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export * from "./models.js"; +export { + Title +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.js deleted file mode 100644 index e0e2d3014..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.js +++ /dev/null @@ -1,27 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * @readonly - * @enum {string} - */ -export const Title = { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero: "", - - /** - * Mister is a title - */ - Mister: "Mr", - Miss: "Miss", - Ms: "Ms", - Mrs: "Mrs", - Dr: "Dr", -}; - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.js index 389f670e2..e0e2d3014 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.js @@ -2,6 +2,26 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Title -} from "./internal.js"; +/** + * @readonly + * @enum {string} + */ +export const Title = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: "", + + /** + * Mister is a title + */ + Mister: "Mr", + Miss: "Miss", + Ms: "Ms", + Mrs: "Mrs", + Dr: "Dr", +}; + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.js index e30ba609d..4e1a41312 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.js index 130c30a09..26922b7eb 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.js @@ -7,4 +7,9 @@ export { GreetService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * Person is a person + * @typedef {$models.Person} Person + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.js deleted file mode 100644 index 5743a9055..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.js +++ /dev/null @@ -1,18 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -/** - * Person is a person - * @typedef {Object} Person - * @property {string} Name - * @property {services$0.Address | null} Address - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.js index 011bbfe7b..5743a9055 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.js @@ -2,9 +2,17 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; /** * Person is a person - * @typedef {$models.Person} Person + * @typedef {Object} Person + * @property {string} Name + * @property {services$0.Address | null} Address */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.js index bac48bb49..588ef7ca7 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.js @@ -7,4 +7,8 @@ export { OtherService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.Address} Address + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.js index df9ca0eef..c04e3b10b 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.js @@ -2,8 +2,13 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; - /** - * @typedef {$models.Address} Address + * @typedef {Object} Address + * @property {string} Street + * @property {string} State + * @property {string} Country */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.js index 961fe45d2..96dc85e8f 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.js @@ -14,7 +14,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.js index e30ba609d..4e1a41312 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.js index 130c30a09..cb2979a7a 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.js @@ -7,4 +7,8 @@ export { GreetService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.Person} Person + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.js deleted file mode 100644 index 8a9890617..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.js +++ /dev/null @@ -1,17 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as other$0 from "./services/other/models.js"; - -/** - * @typedef {Object} Person - * @property {string} Name - * @property {other$0.Address | null} Address - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.js index 0776019c7..8a9890617 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.js @@ -2,8 +2,16 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as other$0 from "./services/other/models.js"; /** - * @typedef {$models.Person} Person + * @typedef {Object} Person + * @property {string} Name + * @property {other$0.Address | null} Address */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.js index bac48bb49..588ef7ca7 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.js @@ -7,4 +7,8 @@ export { OtherService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.Address} Address + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.js index df9ca0eef..c04e3b10b 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.js @@ -2,8 +2,13 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; - /** - * @typedef {$models.Address} Address + * @typedef {Object} Address + * @property {string} Street + * @property {string} State + * @property {string} Country */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.js index c76ecbec2..acc6a59de 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.js @@ -14,7 +14,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.js new file mode 100644 index 000000000..f9c0ff658 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.js @@ -0,0 +1,63 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +import * as $models from "./models.js"; + +/** + * @typedef {$models.EmbeddedCustomInterface} EmbeddedCustomInterface + */ + +/** + * @typedef {$models.EmbeddedOriginalInterface} EmbeddedOriginalInterface + */ + +/** + * @typedef {$models.EmbeddedPointer} EmbeddedPointer + */ + +/** + * @typedef {$models.EmbeddedPointerPtr} EmbeddedPointerPtr + */ + +/** + * @typedef {$models.EmbeddedValue} EmbeddedValue + */ + +/** + * @typedef {$models.EmbeddedValuePtr} EmbeddedValuePtr + */ + +/** + * @template R,S,T,U,V,W,X,Y,Z + * @typedef {$models.Maps} Maps + */ + +/** + * @typedef {$models.PointerAlias} PointerAlias + */ + +/** + * @typedef {$models.PointerTextMarshaler} PointerTextMarshaler + */ + +/** + * @typedef {$models.StringAlias} StringAlias + */ + +/** + * @typedef {$models.StringType} StringType + */ + +/** + * @typedef {$models.ValueAlias} ValueAlias + */ + +/** + * @typedef {$models.ValueTextMarshaler} ValueTextMarshaler + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.js new file mode 100644 index 000000000..c9ea922a3 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.js @@ -0,0 +1,149 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * @typedef {string} EmbeddedCustomInterface + */ + +/** + * @typedef {string} EmbeddedOriginalInterface + */ + +/** + * @typedef {string} EmbeddedPointer + */ + +/** + * @typedef {string} EmbeddedPointerPtr + */ + +/** + * @typedef {string} EmbeddedValue + */ + +/** + * @typedef {string} EmbeddedValuePtr + */ + +/** + * @template R,S,T,U,V,W,X,Y,Z + * @typedef {Object} Maps + * @property {{ [_: string]: number } | null} Bool - Reject + * @property {{ [_: `${number}`]: number } | null} Int - Accept + * @property {{ [_: `${number}`]: number } | null} Uint - Accept + * @property {{ [_: string]: number } | null} Float - Reject + * @property {{ [_: string]: number } | null} Complex - Reject + * @property {{ [_: `${number}`]: number } | null} Byte - Accept + * @property {{ [_: `${number}`]: number } | null} Rune - Accept + * @property {{ [_: string]: number } | null} String - Accept + * @property {{ [_: string]: number } | null} IntPtr - Reject + * @property {{ [_: string]: number } | null} UintPtr - Reject + * @property {{ [_: string]: number } | null} FloatPtr - Reject + * @property {{ [_: string]: number } | null} ComplexPtr - Reject + * @property {{ [_: string]: number } | null} StringPtr - Reject + * @property {{ [_: string]: number } | null} NTM - Reject + * @property {{ [_: string]: number } | null} NTMPtr - Reject + * @property {{ [_: ValueTextMarshaler]: number } | null} VTM - Accept + * @property {{ [_: ValueTextMarshaler]: number } | null} VTMPtr - Accept + * @property {{ [_: string]: number } | null} PTM - Reject + * @property {{ [_: PointerTextMarshaler]: number } | null} PTMPtr - Accept + * @property {{ [_: string]: number } | null} JTM - Accept, hide + * @property {{ [_: string]: number } | null} JTMPtr - Accept, hide + * @property {{ [_: string]: number } | null} A - Reject + * @property {{ [_: string]: number } | null} APtr - Reject + * @property {{ [_: string]: number } | null} TM - Accept, hide + * @property {{ [_: string]: number } | null} TMPtr - Reject + * @property {{ [_: string]: number } | null} CI - Accept, hide + * @property {{ [_: string]: number } | null} CIPtr - Reject + * @property {{ [_: string]: number } | null} EI - Accept, hide + * @property {{ [_: string]: number } | null} EIPtr - Reject + * @property {{ [_: EmbeddedValue]: number } | null} EV - Accept + * @property {{ [_: EmbeddedValue]: number } | null} EVPtr - Accept + * @property {{ [_: EmbeddedValuePtr]: number } | null} EVP - Accept + * @property {{ [_: EmbeddedValuePtr]: number } | null} EVPPtr - Accept + * @property {{ [_: string]: number } | null} EP - Reject + * @property {{ [_: EmbeddedPointer]: number } | null} EPPtr - Accept + * @property {{ [_: EmbeddedPointerPtr]: number } | null} EPP - Accept + * @property {{ [_: EmbeddedPointerPtr]: number } | null} EPPPtr - Accept + * @property {{ [_: EmbeddedCustomInterface]: number } | null} ECI - Accept + * @property {{ [_: EmbeddedCustomInterface]: number } | null} ECIPtr - Accept + * @property {{ [_: EmbeddedOriginalInterface]: number } | null} EOI - Accept + * @property {{ [_: EmbeddedOriginalInterface]: number } | null} EOIPtr - Accept + * @property {{ [_: string]: number } | null} WT - Reject + * @property {{ [_: string]: number } | null} WA - Reject + * @property {{ [_: StringType]: number } | null} ST - Accept + * @property {{ [_: StringAlias]: number } | null} SA - Accept + * @property {{ [_: `${number}`]: number } | null} IntT - Accept + * @property {{ [_: `${number}`]: number } | null} IntA - Accept + * @property {{ [_: string]: number } | null} VT - Reject + * @property {{ [_: string]: number } | null} VTPtr - Reject + * @property {{ [_: string]: number } | null} VPT - Reject + * @property {{ [_: string]: number } | null} VPTPtr - Reject + * @property {{ [_: ValueAlias]: number } | null} VA - Accept + * @property {{ [_: ValueAlias]: number } | null} VAPtr - Accept + * @property {{ [_: string]: number } | null} VPA - Accept, hide + * @property {{ [_: string]: number } | null} VPAPtr - Reject + * @property {{ [_: string]: number } | null} PT - Reject + * @property {{ [_: string]: number } | null} PTPtr - Reject + * @property {{ [_: string]: number } | null} PPT - Reject + * @property {{ [_: string]: number } | null} PPTPtr - Reject + * @property {{ [_: string]: number } | null} PA - Reject + * @property {{ [_: PointerAlias]: number } | null} PAPtr - Accept + * @property {{ [_: string]: number } | null} PPA - Accept, hide + * @property {{ [_: string]: number } | null} PPAPtr - Reject + * @property {{ [_: string]: number } | null} IT - Accept, hide + * @property {{ [_: string]: number } | null} ITPtr - Reject + * @property {{ [_: string]: number } | null} IPT - Reject + * @property {{ [_: string]: number } | null} IPTPtr - Reject + * @property {{ [_: string]: number } | null} IA - Accept, hide + * @property {{ [_: string]: number } | null} IAPtr - Reject + * @property {{ [_: string]: number } | null} IPA - Reject + * @property {{ [_: string]: number } | null} IPAPtr - Reject + * @property {{ [_: string]: number } | null} TPR - Soft reject + * @property {{ [_: string]: number } | null} TPRPtr - Soft reject + * @property {{ [_: string]: number } | null} TPS - Accept, hide + * @property {{ [_: string]: number } | null} TPSPtr - Soft reject + * @property {{ [_: string]: number } | null} TPT - Soft reject + * @property {{ [_: string]: number } | null} TPTPtr - Soft reject + * @property {{ [_: string]: number } | null} TPU - Accept, hide + * @property {{ [_: string]: number } | null} TPUPtr - Soft reject + * @property {{ [_: string]: number } | null} TPV - Accept, hide + * @property {{ [_: string]: number } | null} TPVPtr - Soft reject + * @property {{ [_: string]: number } | null} TPW - Soft reject + * @property {{ [_: string]: number } | null} TPWPtr - Accept, hide + * @property {{ [_: string]: number } | null} TPX - Accept, hide + * @property {{ [_: string]: number } | null} TPXPtr - Soft reject + * @property {{ [_: string]: number } | null} TPY - Accept, hide + * @property {{ [_: string]: number } | null} TPYPtr - Soft reject + * @property {{ [_: string]: number } | null} TPZ - Accept, hide + * @property {{ [_: string]: number } | null} TPZPtr - Soft reject + */ + +/** + * @typedef {PointerTextMarshaler} PointerAlias + */ + +/** + * @typedef {string} PointerTextMarshaler + */ + +/** + * @typedef {string} StringAlias + */ + +/** + * @typedef {string} StringType + */ + +/** + * @typedef {ValueTextMarshaler} ValueAlias + */ + +/** + * @typedef {string} ValueTextMarshaler + */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.js new file mode 100644 index 000000000..3e9005230 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.js @@ -0,0 +1,19 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +/** + * @returns {Promise<$models.Maps<$models.PointerTextMarshaler, number, number, $models.ValueTextMarshaler, $models.PointerTextMarshaler | null, $models.ValueTextMarshaler, $models.StringType, $models.ValueTextMarshaler, $models.PointerTextMarshaler | null>> & { cancel(): void }} + */ +export function Method() { + let $resultPromise = /** @type {any} */($Call.ByID(4021345184)); + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.js new file mode 100644 index 000000000..0f2edd9c7 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.js @@ -0,0 +1,124 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +import * as $models from "./models.js"; + +/** + * any + * @typedef {$models.AliasJsonMarshaler} AliasJsonMarshaler + */ + +/** + * any + * @typedef {$models.AliasMarshaler} AliasMarshaler + */ + +/** + * struct{} + * @typedef {$models.AliasNonMarshaler} AliasNonMarshaler + */ + +/** + * string + * @typedef {$models.AliasTextMarshaler} AliasTextMarshaler + */ + +/** + * @typedef {$models.Data} Data + */ + +/** + * any + * @typedef {$models.ImplicitJsonButText} ImplicitJsonButText + */ + +/** + * any + * @typedef {$models.ImplicitJsonMarshaler} ImplicitJsonMarshaler + */ + +/** + * any + * @typedef {$models.ImplicitMarshaler} ImplicitMarshaler + */ + +/** + * string + * @typedef {$models.ImplicitNonJson} ImplicitNonJson + */ + +/** + * class{ Marshaler, TextMarshaler } + * @typedef {$models.ImplicitNonMarshaler} ImplicitNonMarshaler + */ + +/** + * any + * @typedef {$models.ImplicitNonText} ImplicitNonText + */ + +/** + * any + * @typedef {$models.ImplicitTextButJson} ImplicitTextButJson + */ + +/** + * string + * @typedef {$models.ImplicitTextMarshaler} ImplicitTextMarshaler + */ + +/** + * class {} + * @typedef {$models.NonMarshaler} NonMarshaler + */ + +/** + * any + * @typedef {$models.PointerJsonMarshaler} PointerJsonMarshaler + */ + +/** + * any + * @typedef {$models.PointerMarshaler} PointerMarshaler + */ + +/** + * string + * @typedef {$models.PointerTextMarshaler} PointerTextMarshaler + */ + +/** + * any + * @typedef {$models.UnderlyingJsonMarshaler} UnderlyingJsonMarshaler + */ + +/** + * any + * @typedef {$models.UnderlyingMarshaler} UnderlyingMarshaler + */ + +/** + * string + * @typedef {$models.UnderlyingTextMarshaler} UnderlyingTextMarshaler + */ + +/** + * any + * @typedef {$models.ValueJsonMarshaler} ValueJsonMarshaler + */ + +/** + * any + * @typedef {$models.ValueMarshaler} ValueMarshaler + */ + +/** + * string + * @typedef {$models.ValueTextMarshaler} ValueTextMarshaler + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.js new file mode 100644 index 000000000..a956da60f --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.js @@ -0,0 +1,186 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as encoding$0 from "../../../../../../../../encoding/models.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as json$0 from "../../../../../../../../encoding/json/models.js"; + +/** + * any + * @typedef {any} AliasJsonMarshaler + */ + +/** + * any + * @typedef {any} AliasMarshaler + */ + +/** + * struct{} + * @typedef { { + * } } AliasNonMarshaler + */ + +/** + * string + * @typedef {string} AliasTextMarshaler + */ + +/** + * @typedef {Object} Data + * @property {NonMarshaler} NM + * @property {NonMarshaler | null} NMPtr - NonMarshaler | null + * @property {ValueJsonMarshaler} VJM + * @property {ValueJsonMarshaler | null} VJMPtr - ValueJsonMarshaler | null + * @property {PointerJsonMarshaler} PJM + * @property {PointerJsonMarshaler | null} PJMPtr - PointerJsonMarshaler | null + * @property {ValueTextMarshaler} VTM + * @property {ValueTextMarshaler | null} VTMPtr - ValueTextMarshaler | null + * @property {PointerTextMarshaler} PTM + * @property {PointerTextMarshaler | null} PTMPtr - PointerTextMarshaler | null + * @property {ValueMarshaler} VM + * @property {ValueMarshaler | null} VMPtr - ValueMarshaler | null + * @property {PointerMarshaler} PM + * @property {PointerMarshaler | null} PMPtr - PointerMarshaler | null + * @property {UnderlyingJsonMarshaler} UJM + * @property {UnderlyingJsonMarshaler | null} UJMPtr - UnderlyingJsonMarshaler | null + * @property {UnderlyingTextMarshaler} UTM + * @property {UnderlyingTextMarshaler | null} UTMPtr - UnderlyingTextMarshaler | null + * @property {UnderlyingMarshaler} UM + * @property {UnderlyingMarshaler | null} UMPtr - UnderlyingMarshaler | null + * @property {any} JM - any + * @property {any | null} JMPtr - any | null + * @property {string} TM - string + * @property {string | null} TMPtr - string | null + * @property {any} CJM - any + * @property {any | null} CJMPtr - any | null + * @property {string} CTM - string + * @property {string | null} CTMPtr - string | null + * @property {any} CM - any + * @property {any | null} CMPtr - any | null + * @property {AliasNonMarshaler} ANM + * @property {AliasNonMarshaler | null} ANMPtr - AliasNonMarshaler | null + * @property {AliasJsonMarshaler} AJM + * @property {AliasJsonMarshaler | null} AJMPtr - AliasJsonMarshaler | null + * @property {AliasTextMarshaler} ATM + * @property {AliasTextMarshaler | null} ATMPtr - AliasTextMarshaler | null + * @property {AliasMarshaler} AM + * @property {AliasMarshaler | null} AMPtr - AliasMarshaler | null + * @property {ImplicitJsonMarshaler} ImJM + * @property {ImplicitJsonMarshaler | null} ImJMPtr - ImplicitJsonMarshaler | null + * @property {ImplicitTextMarshaler} ImTM + * @property {ImplicitTextMarshaler | null} ImTMPtr - ImplicitTextMarshaler | null + * @property {ImplicitMarshaler} ImM + * @property {ImplicitMarshaler | null} ImMPtr - ImplicitMarshaler | null + * @property {ImplicitNonJson} ImNJ + * @property {ImplicitNonJson | null} ImNJPtr - ImplicitNonJson | null + * @property {ImplicitNonText} ImNT + * @property {ImplicitNonText | null} ImNTPtr - ImplicitNonText | null + * @property {ImplicitNonMarshaler} ImNM + * @property {ImplicitNonMarshaler | null} ImNMPtr - ImplicitNonMarshaler | null + * @property {ImplicitJsonButText} ImJbT + * @property {ImplicitJsonButText | null} ImJbTPtr - ImplicitJsonButText | null + * @property {ImplicitTextButJson} ImTbJ + * @property {ImplicitTextButJson | null} ImTbJPtr - ImplicitTextButJson | null + */ + +/** + * any + * @typedef {any} ImplicitJsonButText + */ + +/** + * any + * @typedef {any} ImplicitJsonMarshaler + */ + +/** + * any + * @typedef {any} ImplicitMarshaler + */ + +/** + * string + * @typedef {string} ImplicitNonJson + */ + +/** + * class{ Marshaler, TextMarshaler } + * @typedef {Object} ImplicitNonMarshaler + * @property {json$0.Marshaler} Marshaler + * @property {encoding$0.TextMarshaler} TextMarshaler + */ + +/** + * any + * @typedef {any} ImplicitNonText + */ + +/** + * any + * @typedef {any} ImplicitTextButJson + */ + +/** + * string + * @typedef {string} ImplicitTextMarshaler + */ + +/** + * class {} + * @typedef { { + * } } NonMarshaler + */ + +/** + * any + * @typedef {any} PointerJsonMarshaler + */ + +/** + * any + * @typedef {any} PointerMarshaler + */ + +/** + * string + * @typedef {string} PointerTextMarshaler + */ + +/** + * any + * @typedef {any} UnderlyingJsonMarshaler + */ + +/** + * any + * @typedef {any} UnderlyingMarshaler + */ + +/** + * string + * @typedef {string} UnderlyingTextMarshaler + */ + +/** + * any + * @typedef {any} ValueJsonMarshaler + */ + +/** + * any + * @typedef {any} ValueMarshaler + */ + +/** + * string + * @typedef {string} ValueTextMarshaler + */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.js new file mode 100644 index 000000000..a376469fb --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.js @@ -0,0 +1,19 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +/** + * @returns {Promise<$models.Data> & { cancel(): void }} + */ +export function Method() { + let $resultPromise = /** @type {any} */($Call.ByID(4021345184)); + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.js index 79394cd22..0b7f42650 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.js @@ -7,4 +7,26 @@ export { SomeMethods }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * HowDifferent is a curious kind of person + * that lets other people decide how they are different. + * @template How + * @typedef {$models.HowDifferent} HowDifferent + */ + +/** + * Impersonator gets their fields from other people. + * @typedef {$models.Impersonator} Impersonator + */ + +/** + * Person is not a number. + * @typedef {$models.Person} Person + */ + +/** + * PrivatePerson gets their fields from hidden sources. + * @typedef {$models.PrivatePerson} PrivatePerson + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.js deleted file mode 100644 index 775b36431..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.js +++ /dev/null @@ -1,42 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as other$0 from "./other/models.js"; - -/** - * HowDifferent is a curious kind of person - * that lets other people decide how they are different. - * @template How - * @typedef {other$0.OtherPerson<{ [_: string]: How | null } | null>} HowDifferent - */ - -/** - * Impersonator gets their fields from other people. - * @typedef {other$0.OtherPerson} Impersonator - */ - -/** - * Person is not a number. - * @typedef {Object} Person - * @property {string} Name - They have a name. - * @property {Impersonator[]} Friends - Exactly 4 sketchy friends. - */ - -/** - * PrivatePerson gets their fields from hidden sources. - * @typedef {personImpl} PrivatePerson - */ - -/** - * @typedef {Object} personImpl - * @property {string} Nickname - Nickname conceals a person's identity. - * @property {string} Name - They have a name. - * @property {Impersonator[]} Friends - Exactly 4 sketchy friends. - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.js index df7871953..36f231303 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.js @@ -2,26 +2,43 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as other$0 from "./other/models.js"; /** * HowDifferent is a curious kind of person * that lets other people decide how they are different. * @template How - * @typedef {$models.HowDifferent} HowDifferent + * @typedef {Object} HowDifferent + * @property {string} Name - They have a name as well. + * @property {({ [_: string]: How } | null)[] | null} Differences - But they may have many differences. */ /** * Impersonator gets their fields from other people. - * @typedef {$models.Impersonator} Impersonator + * @typedef {other$0.OtherPerson} Impersonator */ /** * Person is not a number. - * @typedef {$models.Person} Person + * @typedef {Object} Person + * @property {string} Name - They have a name. + * @property {Impersonator[]} Friends - Exactly 4 sketchy friends. */ /** * PrivatePerson gets their fields from hidden sources. - * @typedef {$models.PrivatePerson} PrivatePerson + * @typedef {personImpl} PrivatePerson */ + +/** + * @typedef {Object} personImpl + * @property {string} Nickname - Nickname conceals a person's identity. + * @property {string} Name - They have a name. + * @property {Impersonator[]} Friends - Exactly 4 sketchy friends. + */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.js index 9ac8ae8c2..33246d35e 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.js @@ -7,4 +7,10 @@ export { OtherMethods }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * OtherPerson is like a person, but different. + * @template T + * @typedef {$models.OtherPerson} OtherPerson + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.js deleted file mode 100644 index da57b768f..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.js +++ /dev/null @@ -1,15 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * OtherPerson is like a person, but different. - * @template T - * @typedef {Object} OtherPerson - * @property {string} Name - They have a name as well. - * @property {(T | null)[] | null} Differences - But they may have many differences. - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.js index ccd91bda8..63a2ee722 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.js @@ -2,10 +2,14 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; - /** * OtherPerson is like a person, but different. * @template T - * @typedef {$models.OtherPerson} OtherPerson + * @typedef {Object} OtherPerson + * @property {string} Name - They have a name as well. + * @property {T[] | null} Differences - But they may have many differences. */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.js index 876275f05..fb7703b90 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * LikeThisOne is an example method that does nothing. diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.js index e30ba609d..4e1a41312 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.js index 130c30a09..cb2979a7a 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.js @@ -7,4 +7,8 @@ export { GreetService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.Person} Person + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.js deleted file mode 100644 index 41b452f57..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.js +++ /dev/null @@ -1,17 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -/** - * @typedef {Object} Person - * @property {string} Name - * @property {services$0.Address | null} Address - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.js index 0776019c7..41b452f57 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.js @@ -2,8 +2,16 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; /** - * @typedef {$models.Person} Person + * @typedef {Object} Person + * @property {string} Name + * @property {services$0.Address | null} Address */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.js index bac48bb49..588ef7ca7 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.js @@ -7,4 +7,8 @@ export { OtherService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.Address} Address + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.js index df9ca0eef..c04e3b10b 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.js @@ -2,8 +2,13 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; - /** - * @typedef {$models.Address} Address + * @typedef {Object} Address + * @property {string} Street + * @property {string} State + * @property {string} Country */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.js index cba8a9892..5f91bf18c 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.js @@ -14,7 +14,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.js index d38d4add7..a8b648ed1 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * @param {number[]} $in @@ -170,11 +170,11 @@ export function MapIntInt($in) { } /** - * @param {{ [_: string]: number } | null} $in + * @param {{ [_: `${number}`]: number | null } | null} $in * @returns {Promise & { cancel(): void }} */ -export function MapIntPointerInt($in) { - let $resultPromise = /** @type {any} */($Call.ByID(550413585, $in)); +export function MapIntIntPointer($in) { + let $resultPromise = /** @type {any} */($Call.ByID(2163571325, $in)); return $resultPromise; } diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.js index 130c30a09..cb2979a7a 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.js @@ -7,4 +7,8 @@ export { GreetService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.Person} Person + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.js deleted file mode 100644 index ec6136e27..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.js +++ /dev/null @@ -1,14 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * @typedef {Object} Person - * @property {string} Name - * @property {Person | null} Parent - * @property {{"Age": number, "Address": {"Street": string}}} Details - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.js index 0776019c7..ec6136e27 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.js @@ -2,8 +2,13 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; - /** - * @typedef {$models.Person} Person + * @typedef {Object} Person + * @property {string} Name + * @property {Person | null} Parent + * @property {{"Age": number, "Address": {"Street": string}}} Details */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.js index d38d4add7..a8b648ed1 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * @param {number[]} $in @@ -170,11 +170,11 @@ export function MapIntInt($in) { } /** - * @param {{ [_: string]: number } | null} $in + * @param {{ [_: `${number}`]: number | null } | null} $in * @returns {Promise & { cancel(): void }} */ -export function MapIntPointerInt($in) { - let $resultPromise = /** @type {any} */($Call.ByID(550413585, $in)); +export function MapIntIntPointer($in) { + let $resultPromise = /** @type {any} */($Call.ByID(2163571325, $in)); return $resultPromise; } diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.js index 130c30a09..cb2979a7a 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.js @@ -7,4 +7,8 @@ export { GreetService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.Person} Person + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.js deleted file mode 100644 index ec6136e27..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.js +++ /dev/null @@ -1,14 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * @typedef {Object} Person - * @property {string} Name - * @property {Person | null} Parent - * @property {{"Age": number, "Address": {"Street": string}}} Details - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.js index 0776019c7..ec6136e27 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.js @@ -2,8 +2,13 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; - /** - * @typedef {$models.Person} Person + * @typedef {Object} Person + * @property {string} Name + * @property {Person | null} Parent + * @property {{"Age": number, "Address": {"Street": string}}} Details */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.js index e30ba609d..4e1a41312 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.js index 130c30a09..977600693 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.js @@ -7,4 +7,10 @@ export { GreetService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * Person is a person! + * They have a name and an address + * @typedef {$models.Person} Person + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.js deleted file mode 100644 index ab5cea255..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.js +++ /dev/null @@ -1,19 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -/** - * Person is a person! - * They have a name and an address - * @typedef {Object} Person - * @property {string} Name - * @property {services$0.Address | null} Address - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.js index bb05b1c00..ab5cea255 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.js @@ -2,10 +2,18 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; /** * Person is a person! * They have a name and an address - * @typedef {$models.Person} Person + * @typedef {Object} Person + * @property {string} Name + * @property {services$0.Address | null} Address */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.js index bac48bb49..588ef7ca7 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.js @@ -7,4 +7,8 @@ export { OtherService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.Address} Address + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.js deleted file mode 100644 index c04e3b10b..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.js +++ /dev/null @@ -1,14 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * @typedef {Object} Address - * @property {string} Street - * @property {string} State - * @property {string} Country - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.js index df9ca0eef..c04e3b10b 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.js @@ -2,8 +2,13 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; - /** - * @typedef {$models.Address} Address + * @typedef {Object} Address + * @property {string} Street + * @property {string} State + * @property {string} Country */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.js index d7f43fcdf..fba063a2b 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.js @@ -14,7 +14,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/warnings.log b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/warnings.log new file mode 100644 index 000000000..dbefd8749 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/warnings.log @@ -0,0 +1,47 @@ +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *R is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *S is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *T is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *U is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *V is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *X is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *Y is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *Z is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *any is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *complex64 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *encoding.TextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *float32 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.CustomInterface is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.EmbeddedInterface is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfaceAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfaceType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.NonTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValueType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *int is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *string is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *uint is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type R is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type T is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type W is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type any is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type bool is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type complex64 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type float32 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.EmbeddedPointer is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.NonTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValueType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.WrongAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.WrongType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/encoding/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/encoding/index.js new file mode 100644 index 000000000..cf48d86db --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/encoding/index.js @@ -0,0 +1,13 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as $models from "./models.js"; + +/** + * TextMarshaler is the interface implemented by an object that can + * marshal itself into a textual form. + * + * MarshalText encodes the receiver into UTF-8-encoded text and returns the result. + * @typedef {$models.TextMarshaler} TextMarshaler + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/encoding/json/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/encoding/json/index.js new file mode 100644 index 000000000..22f1fd904 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/encoding/json/index.js @@ -0,0 +1,11 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as $models from "./models.js"; + +/** + * Marshaler is the interface implemented by types that + * can marshal themselves into valid JSON. + * @typedef {$models.Marshaler} Marshaler + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/encoding/json/models.js similarity index 69% rename from v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.js rename to v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/encoding/json/models.js index c04e3b10b..5dce4eea6 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/encoding/json/models.js @@ -3,10 +3,9 @@ // This file is automatically generated. DO NOT EDIT /** - * @typedef {Object} Address - * @property {string} Street - * @property {string} State - * @property {string} Country + * Marshaler is the interface implemented by types that + * can marshal themselves into valid JSON. + * @typedef {any} Marshaler */ // In interface mode, this file is likely to contain just comments. diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/encoding/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/encoding/models.js new file mode 100644 index 000000000..db89bafbc --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/encoding/models.js @@ -0,0 +1,15 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * TextMarshaler is the interface implemented by an object that can + * marshal itself into a textual form. + * + * MarshalText encodes the receiver into UTF-8-encoded text and returns the result. + * @typedef {any} TextMarshaler + */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.js index 9f375a95b..791d85e39 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.js @@ -13,7 +13,11 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as nobindingshere$0 from "../no_bindings_here/models.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; /** * Get someone. @@ -44,6 +48,14 @@ export function GetButDifferent() { return $resultPromise; } +/** + * @returns {Promise & { cancel(): void }} + */ +export function GetButForeignPrivateAlias() { + let $resultPromise = /** @type {any} */($Call.ByName("main.GreetService.GetButForeignPrivateAlias")); + return $resultPromise; +} + /** * Greet a lot of unusual things. * @param {$models.EmptyAliasStruct} $0 diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.js index 130c30a09..25e37feb0 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.js @@ -7,4 +7,51 @@ export { GreetService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * A nice type Alias. + * @typedef {$models.Alias} Alias + */ + +/** + * A struct alias. + * This should be rendered as a typedef or interface in every mode. + * @typedef {$models.AliasStruct} AliasStruct + */ + +/** + * A class alias. + * @typedef {$models.AliasedPerson} AliasedPerson + */ + +/** + * An empty struct alias. + * @typedef {$models.EmptyAliasStruct} EmptyAliasStruct + */ + +/** + * An empty struct. + * @typedef {$models.EmptyStruct} EmptyStruct + */ + +/** + * A generic struct containing an alias. + * @template T + * @typedef {$models.GenericPerson} GenericPerson + */ + +/** + * Another struct alias. + * @typedef {$models.OtherAliasStruct} OtherAliasStruct + */ + +/** + * A non-generic struct containing an alias. + * @typedef {$models.Person} Person + */ + +/** + * Another class alias, but ordered after its aliased class. + * @typedef {$models.StrangelyAliasedPerson} StrangelyAliasedPerson + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.js deleted file mode 100644 index 756c523b0..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.js +++ /dev/null @@ -1,65 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * A nice type Alias. - * @typedef {number} Alias - */ - -/** - * A struct alias. - * This should be rendered as a typedef or interface in every mode. - * @typedef {Object} AliasStruct - * @property {number[] | null} Foo - A field with a comment. - * @property {string} [Bar] - Definitely not Foo. - * @property {string} [Baz] - Definitely not Foo. - * @property {OtherAliasStruct} Other - A nested alias struct. - */ - -/** - * A class alias. - * @typedef {Person} AliasedPerson - */ - -/** - * An empty struct alias. - * @typedef { { - * } } EmptyAliasStruct - */ - -/** - * An empty struct. - * @typedef { { - * } } EmptyStruct - */ - -/** - * A generic struct containing an alias. - * @template T - * @typedef {Object} GenericPerson - * @property {T | null} Name - * @property {Alias} AliasedField - */ - -/** - * Another struct alias. - * @typedef {Object} OtherAliasStruct - * @property {number[] | null} NoMoreIdeas - */ - -/** - * A non-generic struct containing an alias. - * @typedef {Object} Person - * @property {string} Name - The Person's name. - * @property {Alias} AliasedField - A random alias field. - */ - -/** - * Another class alias, but ordered after its aliased class. - * @typedef {Person} StrangelyAliasedPerson - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.js index bfecf2d1a..4f343cb4a 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.js @@ -2,51 +2,64 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; - /** * A nice type Alias. - * @typedef {$models.Alias} Alias + * @typedef {number} Alias */ /** * A struct alias. * This should be rendered as a typedef or interface in every mode. - * @typedef {$models.AliasStruct} AliasStruct + * @typedef {Object} AliasStruct + * @property {number[] | null} Foo - A field with a comment. + * @property {string} [Bar] - Definitely not Foo. + * @property {string} [Baz] - Definitely not Foo. + * @property {OtherAliasStruct} Other - A nested alias struct. */ /** * A class alias. - * @typedef {$models.AliasedPerson} AliasedPerson + * @typedef {Person} AliasedPerson */ /** * An empty struct alias. - * @typedef {$models.EmptyAliasStruct} EmptyAliasStruct + * @typedef { { + * } } EmptyAliasStruct */ /** * An empty struct. - * @typedef {$models.EmptyStruct} EmptyStruct + * @typedef { { + * } } EmptyStruct */ /** * A generic struct containing an alias. * @template T - * @typedef {$models.GenericPerson} GenericPerson + * @typedef {Object} GenericPerson + * @property {T} Name + * @property {Alias} AliasedField */ /** * Another struct alias. - * @typedef {$models.OtherAliasStruct} OtherAliasStruct + * @typedef {Object} OtherAliasStruct + * @property {number[] | null} NoMoreIdeas */ /** * A non-generic struct containing an alias. - * @typedef {$models.Person} Person + * @typedef {Object} Person + * @property {string} Name - The Person's name. + * @property {Alias} AliasedField - A random alias field. */ /** * Another class alias, but ordered after its aliased class. - * @typedef {$models.StrangelyAliasedPerson} StrangelyAliasedPerson + * @typedef {Person} StrangelyAliasedPerson */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.js index 70d826c0b..dad26c793 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.js index 130c30a09..f21130b86 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.js @@ -7,4 +7,21 @@ export { GreetService }; -export * from "./models.js"; +export { + Title +} from "./models.js"; + +import * as $models from "./models.js"; + +/** + * @typedef {$models.Embedded1} Embedded1 + */ + +/** + * @typedef {$models.Embedded3} Embedded3 + */ + +/** + * Person represents a person + * @typedef {$models.Person} Person + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.js deleted file mode 100644 index b30630777..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.js +++ /dev/null @@ -1,64 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * @typedef {Object} Embedded1 - * @property {number} Friends - Friends should be shadowed in Person by a field of lesser depth - * @property {number} Vanish - Vanish should be omitted from Person because there is another field with same depth and no tag - * @property {string} StillThere - StillThere should be shadowed in Person by other field with same depth and a json tag - * @property {`${boolean}`} NamingThingsIsHard - NamingThingsIsHard is a law of programming - */ - -/** - * @typedef {string} Embedded3 - */ - -/** - * Person represents a person - * @typedef { { - * "Titles"?: Title[] | null, - * "Names": string[] | null, - * "Partner": Person | null, - * "Friends": (Person | null)[] | null, - * "NamingThingsIsHard": `${boolean}`, - * "StillThere": Embedded3 | null, - * "-": number, - * "Embedded3": Embedded3, - * "StrangerNumber": `${number}`, - * "StrangestString"?: `"${string}"`, - * "StringStrangest"?: `"${string}"`, - * "emb4"?: embedded4, - * } } Person - */ - -/** - * Title is a title - * @readonly - * @enum {string} - */ -export const Title = { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero: "", - - /** - * Mister is a title - */ - Mister: "Mr", - Miss: "Miss", - Ms: "Ms", - Mrs: "Mrs", - Dr: "Dr", -}; - -/** - * @typedef {Object} embedded4 - * @property {`${boolean}`} NamingThingsIsHard - NamingThingsIsHard is a law of programming - * @property {boolean} Friends - Friends should not be shadowed in Person as embedded4 is not embedded from encoding/json's point of view; however, it should be shadowed in Embedded1 - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.js index f4c863a35..b30630777 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.js @@ -2,21 +2,63 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Title -} from "./internal.js"; - -import * as $models from "./internal.js"; - /** - * @typedef {$models.Embedded1} Embedded1 + * @typedef {Object} Embedded1 + * @property {number} Friends - Friends should be shadowed in Person by a field of lesser depth + * @property {number} Vanish - Vanish should be omitted from Person because there is another field with same depth and no tag + * @property {string} StillThere - StillThere should be shadowed in Person by other field with same depth and a json tag + * @property {`${boolean}`} NamingThingsIsHard - NamingThingsIsHard is a law of programming */ /** - * @typedef {$models.Embedded3} Embedded3 + * @typedef {string} Embedded3 */ /** * Person represents a person - * @typedef {$models.Person} Person + * @typedef { { + * "Titles"?: Title[] | null, + * "Names": string[] | null, + * "Partner": Person | null, + * "Friends": (Person | null)[] | null, + * "NamingThingsIsHard": `${boolean}`, + * "StillThere": Embedded3 | null, + * "-": number, + * "Embedded3": Embedded3, + * "StrangerNumber": `${number}`, + * "StrangestString"?: `"${string}"`, + * "StringStrangest"?: `"${string}"`, + * "emb4"?: embedded4, + * } } Person */ + +/** + * Title is a title + * @readonly + * @enum {string} + */ +export const Title = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: "", + + /** + * Mister is a title + */ + Mister: "Mr", + Miss: "Miss", + Ms: "Ms", + Mrs: "Mrs", + Dr: "Dr", +}; + +/** + * @typedef {Object} embedded4 + * @property {`${boolean}`} NamingThingsIsHard - NamingThingsIsHard is a law of programming + * @property {boolean} Friends - Friends should not be shadowed in Person as embedded4 is not embedded from encoding/json's point of view; however, it should be shadowed in Embedded1 + */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.js index df49512d1..0569e8802 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.js index 130c30a09..88af1203b 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.js @@ -7,4 +7,9 @@ export { GreetService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * Person represents a person + * @typedef {$models.Person} Person + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.js index a1cc75bff..035bc0792 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.js @@ -2,9 +2,12 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; - /** * Person represents a person - * @typedef {$models.Person} Person + * @typedef {Object} Person + * @property {string} Name */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.js index b817bd695..78783fcd6 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Make a cycle. diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.js index 130c30a09..9b49a9172 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.js @@ -7,4 +7,16 @@ export { GreetService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.StructA} StructA + */ + +/** + * @typedef {$models.StructC} StructC + */ + +/** + * @typedef {$models.StructE} StructE + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.js deleted file mode 100644 index 50e0d0fc0..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.js +++ /dev/null @@ -1,32 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * @typedef {Object} StructA - * @property {structB | null} B - */ - -/** - * @typedef {Object} StructC - * @property {structD} D - */ - -/** - * @typedef { { - * } } StructE - */ - -/** - * @typedef {Object} structB - * @property {StructA | null} A - */ - -/** - * @typedef {Object} structD - * @property {StructE} E - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.js index f078dafd2..50e0d0fc0 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.js @@ -2,16 +2,31 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; - /** - * @typedef {$models.StructA} StructA + * @typedef {Object} StructA + * @property {structB | null} B */ /** - * @typedef {$models.StructC} StructC + * @typedef {Object} StructC + * @property {structD} D */ /** - * @typedef {$models.StructE} StructE + * @typedef { { + * } } StructE */ + +/** + * @typedef {Object} structB + * @property {StructA | null} A + */ + +/** + * @typedef {Object} structD + * @property {StructE} E + */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.js index dc14e9592..5ae511419 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Make a cycle. diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.js index 130c30a09..9fc31bf7c 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.js @@ -7,4 +7,17 @@ export { GreetService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.Alias} Alias + */ + +/** + * @typedef {$models.Cyclic} Cyclic + */ + +/** + * @template T + * @typedef {$models.GenericCyclic} GenericCyclic + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.js deleted file mode 100644 index b9f0d91a5..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.js +++ /dev/null @@ -1,20 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * @typedef {Cyclic | null} Alias - */ - -/** - * @typedef {({ [_: string]: Alias } | null)[] | null} Cyclic - */ - -/** - * @template T - * @typedef {{"X": GenericCyclic | null, "Y": (T | null)[] | null}[] | null} GenericCyclic - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.js index 1d70efd70..2413995ac 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.js @@ -2,17 +2,19 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; - /** - * @typedef {$models.Alias} Alias + * @typedef {Cyclic | null} Alias */ /** - * @typedef {$models.Cyclic} Cyclic + * @typedef {({ [_: string]: Alias } | null)[] | null} Cyclic */ /** * @template T - * @typedef {$models.GenericCyclic} GenericCyclic + * @typedef {{"X": GenericCyclic | null, "Y": T[] | null}[] | null} GenericCyclic */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.js new file mode 100644 index 000000000..40d68bf85 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.js @@ -0,0 +1,14 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +console.log("Hello everywhere!"); +console.log("Hello everywhere again!"); +console.log("Hello Interfaces!"); +console.log("Hello JS!"); +console.log("Hello JS Interfaces!"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.js new file mode 100644 index 000000000..4f75ec8b3 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.js @@ -0,0 +1,25 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * An exported but internal service. + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +/** + * @param {$models.InternalModel} $0 + * @returns {Promise & { cancel(): void }} + */ +export function Method($0) { + let $resultPromise = /** @type {any} */($Call.ByName("main.InternalService.Method", $0)); + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.js new file mode 100644 index 000000000..a4c233c8c --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.js @@ -0,0 +1,19 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * An exported but internal model. + * @typedef {Object} InternalModel + * @property {string} Field + */ + +/** + * An unexported model. + * @typedef {Object} unexportedModel + * @property {string} Field + */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.ts b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.js similarity index 58% rename from v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.ts rename to v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.js index 6691fb86c..c93da8f05 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.ts +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.js @@ -1,9 +1,9 @@ +// @ts-check // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT +import * as $models from "./models.js"; + /** - * Person represents a person + * @typedef {$models.Dummy} Dummy */ -export interface Person { - "Name": string; -} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.js similarity index 77% rename from v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.js rename to v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.js index 035bc0792..6b6f5401f 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.js @@ -3,9 +3,8 @@ // This file is automatically generated. DO NOT EDIT /** - * Person represents a person - * @typedef {Object} Person - * @property {string} Name + * @typedef { { + * } } Dummy */ // In interface mode, this file is likely to contain just comments. diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.js new file mode 100644 index 000000000..ffc0d244c --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.js @@ -0,0 +1,37 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as otherpackage$0 from "./otherpackage/models.js"; + +/** + * @param {string} $0 + * @returns {Promise & { cancel(): void }} + */ +function InternalMethod($0) { + let $resultPromise = /** @type {any} */($Call.ByName("main.Service.InternalMethod", $0)); + return $resultPromise; +} + +/** + * @param {otherpackage$0.Dummy} $0 + * @returns {Promise & { cancel(): void }} + */ +export function VisibleMethod($0) { + let $resultPromise = /** @type {any} */($Call.ByName("main.Service.VisibleMethod", $0)); + return $resultPromise; +} + +/** + * @param {string} arg + * @returns {Promise} + */ +export async function CustomMethod(arg) { + await InternalMethod("Hello " + arg + "!"); +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js new file mode 100644 index 000000000..138385f53 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("everywhere"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js new file mode 100644 index 000000000..19d5c2f42 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("everywhere again"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_i.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_i.js new file mode 100644 index 000000000..442f20472 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_i.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("Interfaces"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_j.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_j.js new file mode 100644 index 000000000..b2f9c5edb --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_j.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("JS"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_ji.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_ji.js new file mode 100644 index 000000000..36e28f09b --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_ji.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("JS Interfaces"); diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.js new file mode 100644 index 000000000..52f0a8c34 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.js @@ -0,0 +1,25 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * An unexported service. + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +/** + * @param {$models.unexportedModel} $0 + * @returns {Promise & { cancel(): void }} + */ +export function Method($0) { + let $resultPromise = /** @type {any} */($Call.ByName("main.unexportedService.Method", $0)); + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.js index b2dc598fc..6d764269c 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.js index 130c30a09..649d8d016 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.js @@ -7,4 +7,14 @@ export { GreetService }; -export * from "./models.js"; +export { + Age, + Title +} from "./models.js"; + +import * as $models from "./models.js"; + +/** + * Person represents a person + * @typedef {$models.Person} Person + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.js deleted file mode 100644 index 2284fe5ab..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.js +++ /dev/null @@ -1,35 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * Person represents a person - * @typedef {Object} Person - * @property {Title} Title - * @property {string} Name - */ - -/** - * Title is a title - * @readonly - * @enum {string} - */ -export const Title = { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero: "", - - /** - * Mister is a title - */ - Mister: "Mr", - Miss: "Miss", - Ms: "Ms", - Mrs: "Mrs", - Dr: "Dr", -}; - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.js index c72d9628b..e7c70729c 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.js @@ -2,13 +2,60 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Title -} from "./internal.js"; +/** + * Age is an integer with some predefined values + * @typedef {number} Age + */ -import * as $models from "./internal.js"; +/** + * Predefined constants for type Age. + * @namespace + */ +export const Age = { + NewBorn: 0, + Teenager: 12, + YoungAdult: 18, + + /** + * Oh no, some grey hair! + */ + MiddleAged: 50, + + /** + * Unbelievable! + */ + Mathusalem: 1000, +}; /** * Person represents a person - * @typedef {$models.Person} Person + * @typedef {Object} Person + * @property {Title} Title + * @property {string} Name + * @property {Age} Age */ + +/** + * Title is a title + * @readonly + * @enum {string} + */ +export const Title = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: "", + + /** + * Mister is a title + */ + Mister: "Mr", + Miss: "Miss", + Ms: "Ms", + Mrs: "Mrs", + Dr: "Dr", +}; + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.js index 580fb67af..089a8b685 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.js @@ -2,4 +2,6 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export * from "./models.js"; +export { + Title +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.js deleted file mode 100644 index e0e2d3014..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.js +++ /dev/null @@ -1,27 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * @readonly - * @enum {string} - */ -export const Title = { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero: "", - - /** - * Mister is a title - */ - Mister: "Mr", - Miss: "Miss", - Ms: "Ms", - Mrs: "Mrs", - Dr: "Dr", -}; - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.js index 389f670e2..e0e2d3014 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.js @@ -2,6 +2,26 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Title -} from "./internal.js"; +/** + * @readonly + * @enum {string} + */ +export const Title = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: "", + + /** + * Mister is a title + */ + Mister: "Mr", + Miss: "Miss", + Ms: "Ms", + Mrs: "Mrs", + Dr: "Dr", +}; + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.js index 2a19fe849..0896a296d 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.js index 130c30a09..26922b7eb 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.js @@ -7,4 +7,9 @@ export { GreetService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * Person is a person + * @typedef {$models.Person} Person + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.js deleted file mode 100644 index 5743a9055..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.js +++ /dev/null @@ -1,18 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -/** - * Person is a person - * @typedef {Object} Person - * @property {string} Name - * @property {services$0.Address | null} Address - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.js index 011bbfe7b..5743a9055 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.js @@ -2,9 +2,17 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; /** * Person is a person - * @typedef {$models.Person} Person + * @typedef {Object} Person + * @property {string} Name + * @property {services$0.Address | null} Address */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.js index bac48bb49..588ef7ca7 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.js @@ -7,4 +7,8 @@ export { OtherService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.Address} Address + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.js deleted file mode 100644 index c04e3b10b..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.js +++ /dev/null @@ -1,14 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * @typedef {Object} Address - * @property {string} Street - * @property {string} State - * @property {string} Country - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.js index df9ca0eef..c04e3b10b 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.js @@ -2,8 +2,13 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; - /** - * @typedef {$models.Address} Address + * @typedef {Object} Address + * @property {string} Street + * @property {string} State + * @property {string} Country */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.js index 91ea47db8..61a94621e 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.js @@ -14,7 +14,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.js index 2a19fe849..0896a296d 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.js index 130c30a09..cb2979a7a 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.js @@ -7,4 +7,8 @@ export { GreetService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.Person} Person + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.js deleted file mode 100644 index 8a9890617..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.js +++ /dev/null @@ -1,17 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as other$0 from "./services/other/models.js"; - -/** - * @typedef {Object} Person - * @property {string} Name - * @property {other$0.Address | null} Address - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.js index 0776019c7..8a9890617 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.js @@ -2,8 +2,16 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as other$0 from "./services/other/models.js"; /** - * @typedef {$models.Person} Person + * @typedef {Object} Person + * @property {string} Name + * @property {other$0.Address | null} Address */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.js index bac48bb49..588ef7ca7 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.js @@ -7,4 +7,8 @@ export { OtherService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.Address} Address + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.js deleted file mode 100644 index c04e3b10b..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.js +++ /dev/null @@ -1,14 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * @typedef {Object} Address - * @property {string} Street - * @property {string} State - * @property {string} Country - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.js index df9ca0eef..c04e3b10b 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.js @@ -2,8 +2,13 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; - /** - * @typedef {$models.Address} Address + * @typedef {Object} Address + * @property {string} Street + * @property {string} State + * @property {string} Country */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.js index 858686c9a..abc8c9adc 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.js @@ -14,7 +14,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.js new file mode 100644 index 000000000..f9c0ff658 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.js @@ -0,0 +1,63 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +import * as $models from "./models.js"; + +/** + * @typedef {$models.EmbeddedCustomInterface} EmbeddedCustomInterface + */ + +/** + * @typedef {$models.EmbeddedOriginalInterface} EmbeddedOriginalInterface + */ + +/** + * @typedef {$models.EmbeddedPointer} EmbeddedPointer + */ + +/** + * @typedef {$models.EmbeddedPointerPtr} EmbeddedPointerPtr + */ + +/** + * @typedef {$models.EmbeddedValue} EmbeddedValue + */ + +/** + * @typedef {$models.EmbeddedValuePtr} EmbeddedValuePtr + */ + +/** + * @template R,S,T,U,V,W,X,Y,Z + * @typedef {$models.Maps} Maps + */ + +/** + * @typedef {$models.PointerAlias} PointerAlias + */ + +/** + * @typedef {$models.PointerTextMarshaler} PointerTextMarshaler + */ + +/** + * @typedef {$models.StringAlias} StringAlias + */ + +/** + * @typedef {$models.StringType} StringType + */ + +/** + * @typedef {$models.ValueAlias} ValueAlias + */ + +/** + * @typedef {$models.ValueTextMarshaler} ValueTextMarshaler + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.js new file mode 100644 index 000000000..c9ea922a3 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.js @@ -0,0 +1,149 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * @typedef {string} EmbeddedCustomInterface + */ + +/** + * @typedef {string} EmbeddedOriginalInterface + */ + +/** + * @typedef {string} EmbeddedPointer + */ + +/** + * @typedef {string} EmbeddedPointerPtr + */ + +/** + * @typedef {string} EmbeddedValue + */ + +/** + * @typedef {string} EmbeddedValuePtr + */ + +/** + * @template R,S,T,U,V,W,X,Y,Z + * @typedef {Object} Maps + * @property {{ [_: string]: number } | null} Bool - Reject + * @property {{ [_: `${number}`]: number } | null} Int - Accept + * @property {{ [_: `${number}`]: number } | null} Uint - Accept + * @property {{ [_: string]: number } | null} Float - Reject + * @property {{ [_: string]: number } | null} Complex - Reject + * @property {{ [_: `${number}`]: number } | null} Byte - Accept + * @property {{ [_: `${number}`]: number } | null} Rune - Accept + * @property {{ [_: string]: number } | null} String - Accept + * @property {{ [_: string]: number } | null} IntPtr - Reject + * @property {{ [_: string]: number } | null} UintPtr - Reject + * @property {{ [_: string]: number } | null} FloatPtr - Reject + * @property {{ [_: string]: number } | null} ComplexPtr - Reject + * @property {{ [_: string]: number } | null} StringPtr - Reject + * @property {{ [_: string]: number } | null} NTM - Reject + * @property {{ [_: string]: number } | null} NTMPtr - Reject + * @property {{ [_: ValueTextMarshaler]: number } | null} VTM - Accept + * @property {{ [_: ValueTextMarshaler]: number } | null} VTMPtr - Accept + * @property {{ [_: string]: number } | null} PTM - Reject + * @property {{ [_: PointerTextMarshaler]: number } | null} PTMPtr - Accept + * @property {{ [_: string]: number } | null} JTM - Accept, hide + * @property {{ [_: string]: number } | null} JTMPtr - Accept, hide + * @property {{ [_: string]: number } | null} A - Reject + * @property {{ [_: string]: number } | null} APtr - Reject + * @property {{ [_: string]: number } | null} TM - Accept, hide + * @property {{ [_: string]: number } | null} TMPtr - Reject + * @property {{ [_: string]: number } | null} CI - Accept, hide + * @property {{ [_: string]: number } | null} CIPtr - Reject + * @property {{ [_: string]: number } | null} EI - Accept, hide + * @property {{ [_: string]: number } | null} EIPtr - Reject + * @property {{ [_: EmbeddedValue]: number } | null} EV - Accept + * @property {{ [_: EmbeddedValue]: number } | null} EVPtr - Accept + * @property {{ [_: EmbeddedValuePtr]: number } | null} EVP - Accept + * @property {{ [_: EmbeddedValuePtr]: number } | null} EVPPtr - Accept + * @property {{ [_: string]: number } | null} EP - Reject + * @property {{ [_: EmbeddedPointer]: number } | null} EPPtr - Accept + * @property {{ [_: EmbeddedPointerPtr]: number } | null} EPP - Accept + * @property {{ [_: EmbeddedPointerPtr]: number } | null} EPPPtr - Accept + * @property {{ [_: EmbeddedCustomInterface]: number } | null} ECI - Accept + * @property {{ [_: EmbeddedCustomInterface]: number } | null} ECIPtr - Accept + * @property {{ [_: EmbeddedOriginalInterface]: number } | null} EOI - Accept + * @property {{ [_: EmbeddedOriginalInterface]: number } | null} EOIPtr - Accept + * @property {{ [_: string]: number } | null} WT - Reject + * @property {{ [_: string]: number } | null} WA - Reject + * @property {{ [_: StringType]: number } | null} ST - Accept + * @property {{ [_: StringAlias]: number } | null} SA - Accept + * @property {{ [_: `${number}`]: number } | null} IntT - Accept + * @property {{ [_: `${number}`]: number } | null} IntA - Accept + * @property {{ [_: string]: number } | null} VT - Reject + * @property {{ [_: string]: number } | null} VTPtr - Reject + * @property {{ [_: string]: number } | null} VPT - Reject + * @property {{ [_: string]: number } | null} VPTPtr - Reject + * @property {{ [_: ValueAlias]: number } | null} VA - Accept + * @property {{ [_: ValueAlias]: number } | null} VAPtr - Accept + * @property {{ [_: string]: number } | null} VPA - Accept, hide + * @property {{ [_: string]: number } | null} VPAPtr - Reject + * @property {{ [_: string]: number } | null} PT - Reject + * @property {{ [_: string]: number } | null} PTPtr - Reject + * @property {{ [_: string]: number } | null} PPT - Reject + * @property {{ [_: string]: number } | null} PPTPtr - Reject + * @property {{ [_: string]: number } | null} PA - Reject + * @property {{ [_: PointerAlias]: number } | null} PAPtr - Accept + * @property {{ [_: string]: number } | null} PPA - Accept, hide + * @property {{ [_: string]: number } | null} PPAPtr - Reject + * @property {{ [_: string]: number } | null} IT - Accept, hide + * @property {{ [_: string]: number } | null} ITPtr - Reject + * @property {{ [_: string]: number } | null} IPT - Reject + * @property {{ [_: string]: number } | null} IPTPtr - Reject + * @property {{ [_: string]: number } | null} IA - Accept, hide + * @property {{ [_: string]: number } | null} IAPtr - Reject + * @property {{ [_: string]: number } | null} IPA - Reject + * @property {{ [_: string]: number } | null} IPAPtr - Reject + * @property {{ [_: string]: number } | null} TPR - Soft reject + * @property {{ [_: string]: number } | null} TPRPtr - Soft reject + * @property {{ [_: string]: number } | null} TPS - Accept, hide + * @property {{ [_: string]: number } | null} TPSPtr - Soft reject + * @property {{ [_: string]: number } | null} TPT - Soft reject + * @property {{ [_: string]: number } | null} TPTPtr - Soft reject + * @property {{ [_: string]: number } | null} TPU - Accept, hide + * @property {{ [_: string]: number } | null} TPUPtr - Soft reject + * @property {{ [_: string]: number } | null} TPV - Accept, hide + * @property {{ [_: string]: number } | null} TPVPtr - Soft reject + * @property {{ [_: string]: number } | null} TPW - Soft reject + * @property {{ [_: string]: number } | null} TPWPtr - Accept, hide + * @property {{ [_: string]: number } | null} TPX - Accept, hide + * @property {{ [_: string]: number } | null} TPXPtr - Soft reject + * @property {{ [_: string]: number } | null} TPY - Accept, hide + * @property {{ [_: string]: number } | null} TPYPtr - Soft reject + * @property {{ [_: string]: number } | null} TPZ - Accept, hide + * @property {{ [_: string]: number } | null} TPZPtr - Soft reject + */ + +/** + * @typedef {PointerTextMarshaler} PointerAlias + */ + +/** + * @typedef {string} PointerTextMarshaler + */ + +/** + * @typedef {string} StringAlias + */ + +/** + * @typedef {string} StringType + */ + +/** + * @typedef {ValueTextMarshaler} ValueAlias + */ + +/** + * @typedef {string} ValueTextMarshaler + */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.js new file mode 100644 index 000000000..ec0d3c0b2 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.js @@ -0,0 +1,19 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +/** + * @returns {Promise<$models.Maps<$models.PointerTextMarshaler, number, number, $models.ValueTextMarshaler, $models.PointerTextMarshaler | null, $models.ValueTextMarshaler, $models.StringType, $models.ValueTextMarshaler, $models.PointerTextMarshaler | null>> & { cancel(): void }} + */ +export function Method() { + let $resultPromise = /** @type {any} */($Call.ByName("main.Service.Method")); + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.js new file mode 100644 index 000000000..0f2edd9c7 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.js @@ -0,0 +1,124 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +import * as $models from "./models.js"; + +/** + * any + * @typedef {$models.AliasJsonMarshaler} AliasJsonMarshaler + */ + +/** + * any + * @typedef {$models.AliasMarshaler} AliasMarshaler + */ + +/** + * struct{} + * @typedef {$models.AliasNonMarshaler} AliasNonMarshaler + */ + +/** + * string + * @typedef {$models.AliasTextMarshaler} AliasTextMarshaler + */ + +/** + * @typedef {$models.Data} Data + */ + +/** + * any + * @typedef {$models.ImplicitJsonButText} ImplicitJsonButText + */ + +/** + * any + * @typedef {$models.ImplicitJsonMarshaler} ImplicitJsonMarshaler + */ + +/** + * any + * @typedef {$models.ImplicitMarshaler} ImplicitMarshaler + */ + +/** + * string + * @typedef {$models.ImplicitNonJson} ImplicitNonJson + */ + +/** + * class{ Marshaler, TextMarshaler } + * @typedef {$models.ImplicitNonMarshaler} ImplicitNonMarshaler + */ + +/** + * any + * @typedef {$models.ImplicitNonText} ImplicitNonText + */ + +/** + * any + * @typedef {$models.ImplicitTextButJson} ImplicitTextButJson + */ + +/** + * string + * @typedef {$models.ImplicitTextMarshaler} ImplicitTextMarshaler + */ + +/** + * class {} + * @typedef {$models.NonMarshaler} NonMarshaler + */ + +/** + * any + * @typedef {$models.PointerJsonMarshaler} PointerJsonMarshaler + */ + +/** + * any + * @typedef {$models.PointerMarshaler} PointerMarshaler + */ + +/** + * string + * @typedef {$models.PointerTextMarshaler} PointerTextMarshaler + */ + +/** + * any + * @typedef {$models.UnderlyingJsonMarshaler} UnderlyingJsonMarshaler + */ + +/** + * any + * @typedef {$models.UnderlyingMarshaler} UnderlyingMarshaler + */ + +/** + * string + * @typedef {$models.UnderlyingTextMarshaler} UnderlyingTextMarshaler + */ + +/** + * any + * @typedef {$models.ValueJsonMarshaler} ValueJsonMarshaler + */ + +/** + * any + * @typedef {$models.ValueMarshaler} ValueMarshaler + */ + +/** + * string + * @typedef {$models.ValueTextMarshaler} ValueTextMarshaler + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.js new file mode 100644 index 000000000..a956da60f --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.js @@ -0,0 +1,186 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as encoding$0 from "../../../../../../../../encoding/models.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as json$0 from "../../../../../../../../encoding/json/models.js"; + +/** + * any + * @typedef {any} AliasJsonMarshaler + */ + +/** + * any + * @typedef {any} AliasMarshaler + */ + +/** + * struct{} + * @typedef { { + * } } AliasNonMarshaler + */ + +/** + * string + * @typedef {string} AliasTextMarshaler + */ + +/** + * @typedef {Object} Data + * @property {NonMarshaler} NM + * @property {NonMarshaler | null} NMPtr - NonMarshaler | null + * @property {ValueJsonMarshaler} VJM + * @property {ValueJsonMarshaler | null} VJMPtr - ValueJsonMarshaler | null + * @property {PointerJsonMarshaler} PJM + * @property {PointerJsonMarshaler | null} PJMPtr - PointerJsonMarshaler | null + * @property {ValueTextMarshaler} VTM + * @property {ValueTextMarshaler | null} VTMPtr - ValueTextMarshaler | null + * @property {PointerTextMarshaler} PTM + * @property {PointerTextMarshaler | null} PTMPtr - PointerTextMarshaler | null + * @property {ValueMarshaler} VM + * @property {ValueMarshaler | null} VMPtr - ValueMarshaler | null + * @property {PointerMarshaler} PM + * @property {PointerMarshaler | null} PMPtr - PointerMarshaler | null + * @property {UnderlyingJsonMarshaler} UJM + * @property {UnderlyingJsonMarshaler | null} UJMPtr - UnderlyingJsonMarshaler | null + * @property {UnderlyingTextMarshaler} UTM + * @property {UnderlyingTextMarshaler | null} UTMPtr - UnderlyingTextMarshaler | null + * @property {UnderlyingMarshaler} UM + * @property {UnderlyingMarshaler | null} UMPtr - UnderlyingMarshaler | null + * @property {any} JM - any + * @property {any | null} JMPtr - any | null + * @property {string} TM - string + * @property {string | null} TMPtr - string | null + * @property {any} CJM - any + * @property {any | null} CJMPtr - any | null + * @property {string} CTM - string + * @property {string | null} CTMPtr - string | null + * @property {any} CM - any + * @property {any | null} CMPtr - any | null + * @property {AliasNonMarshaler} ANM + * @property {AliasNonMarshaler | null} ANMPtr - AliasNonMarshaler | null + * @property {AliasJsonMarshaler} AJM + * @property {AliasJsonMarshaler | null} AJMPtr - AliasJsonMarshaler | null + * @property {AliasTextMarshaler} ATM + * @property {AliasTextMarshaler | null} ATMPtr - AliasTextMarshaler | null + * @property {AliasMarshaler} AM + * @property {AliasMarshaler | null} AMPtr - AliasMarshaler | null + * @property {ImplicitJsonMarshaler} ImJM + * @property {ImplicitJsonMarshaler | null} ImJMPtr - ImplicitJsonMarshaler | null + * @property {ImplicitTextMarshaler} ImTM + * @property {ImplicitTextMarshaler | null} ImTMPtr - ImplicitTextMarshaler | null + * @property {ImplicitMarshaler} ImM + * @property {ImplicitMarshaler | null} ImMPtr - ImplicitMarshaler | null + * @property {ImplicitNonJson} ImNJ + * @property {ImplicitNonJson | null} ImNJPtr - ImplicitNonJson | null + * @property {ImplicitNonText} ImNT + * @property {ImplicitNonText | null} ImNTPtr - ImplicitNonText | null + * @property {ImplicitNonMarshaler} ImNM + * @property {ImplicitNonMarshaler | null} ImNMPtr - ImplicitNonMarshaler | null + * @property {ImplicitJsonButText} ImJbT + * @property {ImplicitJsonButText | null} ImJbTPtr - ImplicitJsonButText | null + * @property {ImplicitTextButJson} ImTbJ + * @property {ImplicitTextButJson | null} ImTbJPtr - ImplicitTextButJson | null + */ + +/** + * any + * @typedef {any} ImplicitJsonButText + */ + +/** + * any + * @typedef {any} ImplicitJsonMarshaler + */ + +/** + * any + * @typedef {any} ImplicitMarshaler + */ + +/** + * string + * @typedef {string} ImplicitNonJson + */ + +/** + * class{ Marshaler, TextMarshaler } + * @typedef {Object} ImplicitNonMarshaler + * @property {json$0.Marshaler} Marshaler + * @property {encoding$0.TextMarshaler} TextMarshaler + */ + +/** + * any + * @typedef {any} ImplicitNonText + */ + +/** + * any + * @typedef {any} ImplicitTextButJson + */ + +/** + * string + * @typedef {string} ImplicitTextMarshaler + */ + +/** + * class {} + * @typedef { { + * } } NonMarshaler + */ + +/** + * any + * @typedef {any} PointerJsonMarshaler + */ + +/** + * any + * @typedef {any} PointerMarshaler + */ + +/** + * string + * @typedef {string} PointerTextMarshaler + */ + +/** + * any + * @typedef {any} UnderlyingJsonMarshaler + */ + +/** + * any + * @typedef {any} UnderlyingMarshaler + */ + +/** + * string + * @typedef {string} UnderlyingTextMarshaler + */ + +/** + * any + * @typedef {any} ValueJsonMarshaler + */ + +/** + * any + * @typedef {any} ValueMarshaler + */ + +/** + * string + * @typedef {string} ValueTextMarshaler + */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.js new file mode 100644 index 000000000..45837d506 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.js @@ -0,0 +1,19 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +/** + * @returns {Promise<$models.Data> & { cancel(): void }} + */ +export function Method() { + let $resultPromise = /** @type {any} */($Call.ByName("main.Service.Method")); + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.js index 79394cd22..0b7f42650 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.js @@ -7,4 +7,26 @@ export { SomeMethods }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * HowDifferent is a curious kind of person + * that lets other people decide how they are different. + * @template How + * @typedef {$models.HowDifferent} HowDifferent + */ + +/** + * Impersonator gets their fields from other people. + * @typedef {$models.Impersonator} Impersonator + */ + +/** + * Person is not a number. + * @typedef {$models.Person} Person + */ + +/** + * PrivatePerson gets their fields from hidden sources. + * @typedef {$models.PrivatePerson} PrivatePerson + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.js deleted file mode 100644 index 775b36431..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.js +++ /dev/null @@ -1,42 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as other$0 from "./other/models.js"; - -/** - * HowDifferent is a curious kind of person - * that lets other people decide how they are different. - * @template How - * @typedef {other$0.OtherPerson<{ [_: string]: How | null } | null>} HowDifferent - */ - -/** - * Impersonator gets their fields from other people. - * @typedef {other$0.OtherPerson} Impersonator - */ - -/** - * Person is not a number. - * @typedef {Object} Person - * @property {string} Name - They have a name. - * @property {Impersonator[]} Friends - Exactly 4 sketchy friends. - */ - -/** - * PrivatePerson gets their fields from hidden sources. - * @typedef {personImpl} PrivatePerson - */ - -/** - * @typedef {Object} personImpl - * @property {string} Nickname - Nickname conceals a person's identity. - * @property {string} Name - They have a name. - * @property {Impersonator[]} Friends - Exactly 4 sketchy friends. - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.js index df7871953..36f231303 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.js @@ -2,26 +2,43 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as other$0 from "./other/models.js"; /** * HowDifferent is a curious kind of person * that lets other people decide how they are different. * @template How - * @typedef {$models.HowDifferent} HowDifferent + * @typedef {Object} HowDifferent + * @property {string} Name - They have a name as well. + * @property {({ [_: string]: How } | null)[] | null} Differences - But they may have many differences. */ /** * Impersonator gets their fields from other people. - * @typedef {$models.Impersonator} Impersonator + * @typedef {other$0.OtherPerson} Impersonator */ /** * Person is not a number. - * @typedef {$models.Person} Person + * @typedef {Object} Person + * @property {string} Name - They have a name. + * @property {Impersonator[]} Friends - Exactly 4 sketchy friends. */ /** * PrivatePerson gets their fields from hidden sources. - * @typedef {$models.PrivatePerson} PrivatePerson + * @typedef {personImpl} PrivatePerson */ + +/** + * @typedef {Object} personImpl + * @property {string} Nickname - Nickname conceals a person's identity. + * @property {string} Name - They have a name. + * @property {Impersonator[]} Friends - Exactly 4 sketchy friends. + */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.js index 9ac8ae8c2..33246d35e 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.js @@ -7,4 +7,10 @@ export { OtherMethods }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * OtherPerson is like a person, but different. + * @template T + * @typedef {$models.OtherPerson} OtherPerson + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.js deleted file mode 100644 index da57b768f..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.js +++ /dev/null @@ -1,15 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * OtherPerson is like a person, but different. - * @template T - * @typedef {Object} OtherPerson - * @property {string} Name - They have a name as well. - * @property {(T | null)[] | null} Differences - But they may have many differences. - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.js index ccd91bda8..63a2ee722 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.js @@ -2,10 +2,14 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; - /** * OtherPerson is like a person, but different. * @template T - * @typedef {$models.OtherPerson} OtherPerson + * @typedef {Object} OtherPerson + * @property {string} Name - They have a name as well. + * @property {T[] | null} Differences - But they may have many differences. */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.js index 82c036b69..9d18e16da 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * LikeThisOne is an example method that does nothing. diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.js index 2a19fe849..0896a296d 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.js index 130c30a09..cb2979a7a 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.js @@ -7,4 +7,8 @@ export { GreetService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.Person} Person + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.js deleted file mode 100644 index 41b452f57..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.js +++ /dev/null @@ -1,17 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -/** - * @typedef {Object} Person - * @property {string} Name - * @property {services$0.Address | null} Address - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.js index 0776019c7..41b452f57 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.js @@ -2,8 +2,16 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; /** - * @typedef {$models.Person} Person + * @typedef {Object} Person + * @property {string} Name + * @property {services$0.Address | null} Address */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.js index bac48bb49..588ef7ca7 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.js @@ -7,4 +7,8 @@ export { OtherService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.Address} Address + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.js deleted file mode 100644 index c04e3b10b..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.js +++ /dev/null @@ -1,14 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * @typedef {Object} Address - * @property {string} Street - * @property {string} State - * @property {string} Country - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.js index df9ca0eef..c04e3b10b 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.js @@ -2,8 +2,13 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; - /** - * @typedef {$models.Address} Address + * @typedef {Object} Address + * @property {string} Street + * @property {string} State + * @property {string} Country */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.js index 54aa155b9..6cec0768c 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.js @@ -14,7 +14,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.js index 48f698164..dae4fb2e5 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * @param {number[]} $in @@ -170,11 +170,11 @@ export function MapIntInt($in) { } /** - * @param {{ [_: string]: number } | null} $in + * @param {{ [_: `${number}`]: number | null } | null} $in * @returns {Promise & { cancel(): void }} */ -export function MapIntPointerInt($in) { - let $resultPromise = /** @type {any} */($Call.ByName("main.GreetService.MapIntPointerInt", $in)); +export function MapIntIntPointer($in) { + let $resultPromise = /** @type {any} */($Call.ByName("main.GreetService.MapIntIntPointer", $in)); return $resultPromise; } diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.js index 130c30a09..cb2979a7a 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.js @@ -7,4 +7,8 @@ export { GreetService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.Person} Person + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.js deleted file mode 100644 index ec6136e27..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.js +++ /dev/null @@ -1,14 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * @typedef {Object} Person - * @property {string} Name - * @property {Person | null} Parent - * @property {{"Age": number, "Address": {"Street": string}}} Details - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.js index 0776019c7..ec6136e27 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.js @@ -2,8 +2,13 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; - /** - * @typedef {$models.Person} Person + * @typedef {Object} Person + * @property {string} Name + * @property {Person | null} Parent + * @property {{"Age": number, "Address": {"Street": string}}} Details */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.js index 48f698164..dae4fb2e5 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * @param {number[]} $in @@ -170,11 +170,11 @@ export function MapIntInt($in) { } /** - * @param {{ [_: string]: number } | null} $in + * @param {{ [_: `${number}`]: number | null } | null} $in * @returns {Promise & { cancel(): void }} */ -export function MapIntPointerInt($in) { - let $resultPromise = /** @type {any} */($Call.ByName("main.GreetService.MapIntPointerInt", $in)); +export function MapIntIntPointer($in) { + let $resultPromise = /** @type {any} */($Call.ByName("main.GreetService.MapIntIntPointer", $in)); return $resultPromise; } diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.js index 130c30a09..cb2979a7a 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.js @@ -7,4 +7,8 @@ export { GreetService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.Person} Person + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.js deleted file mode 100644 index ec6136e27..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.js +++ /dev/null @@ -1,14 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * @typedef {Object} Person - * @property {string} Name - * @property {Person | null} Parent - * @property {{"Age": number, "Address": {"Street": string}}} Details - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.js index 0776019c7..ec6136e27 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.js @@ -2,8 +2,13 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; - /** - * @typedef {$models.Person} Person + * @typedef {Object} Person + * @property {string} Name + * @property {Person | null} Parent + * @property {{"Age": number, "Address": {"Street": string}}} Details */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.js index 2a19fe849..0896a296d 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.js @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.js index 130c30a09..977600693 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.js @@ -7,4 +7,10 @@ export { GreetService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * Person is a person! + * They have a name and an address + * @typedef {$models.Person} Person + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.js deleted file mode 100644 index ab5cea255..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.js +++ /dev/null @@ -1,19 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -/** - * Person is a person! - * They have a name and an address - * @typedef {Object} Person - * @property {string} Name - * @property {services$0.Address | null} Address - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.js index bb05b1c00..ab5cea255 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.js @@ -2,10 +2,18 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; /** * Person is a person! * They have a name and an address - * @typedef {$models.Person} Person + * @typedef {Object} Person + * @property {string} Name + * @property {services$0.Address | null} Address */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.js index bac48bb49..588ef7ca7 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.js @@ -7,4 +7,8 @@ export { OtherService }; -export * from "./models.js"; +import * as $models from "./models.js"; + +/** + * @typedef {$models.Address} Address + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.js deleted file mode 100644 index c04e3b10b..000000000 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.js +++ /dev/null @@ -1,14 +0,0 @@ -// @ts-check -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * @typedef {Object} Address - * @property {string} Street - * @property {string} State - * @property {string} Country - */ - -// In interface mode, this file is likely to contain just comments. -// We add a dummy export statement to ensure it is recognised as an ES module. -export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.js index df9ca0eef..c04e3b10b 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.js @@ -2,8 +2,13 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -import * as $models from "./internal.js"; - /** - * @typedef {$models.Address} Address + * @typedef {Object} Address + * @property {string} Street + * @property {string} State + * @property {string} Country */ + +// In interface mode, this file is likely to contain just comments. +// We add a dummy export statement to ensure it is recognised as an ES module. +export {}; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.js index d1dcf6677..6b15c3e22 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.js +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.js @@ -14,7 +14,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/warnings.log b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/warnings.log new file mode 100644 index 000000000..dbefd8749 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/warnings.log @@ -0,0 +1,47 @@ +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *R is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *S is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *T is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *U is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *V is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *X is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *Y is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *Z is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *any is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *complex64 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *encoding.TextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *float32 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.CustomInterface is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.EmbeddedInterface is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfaceAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfaceType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.NonTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValueType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *int is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *string is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *uint is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type R is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type T is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type W is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type any is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type bool is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type complex64 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type float32 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.EmbeddedPointer is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.NonTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValueType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.WrongAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.WrongType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/encoding/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/encoding/index.ts new file mode 100644 index 000000000..ba2885969 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/encoding/index.ts @@ -0,0 +1,6 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export type { + TextMarshaler +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/encoding/json/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/encoding/json/index.ts new file mode 100644 index 000000000..00ec01151 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/encoding/json/index.ts @@ -0,0 +1,6 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export type { + Marshaler +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.js b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/encoding/json/models.ts similarity index 55% rename from v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.js rename to v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/encoding/json/models.ts index bbe529175..41353d635 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.js +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/encoding/json/models.ts @@ -1,4 +1,3 @@ -// @ts-check // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT @@ -7,14 +6,7 @@ import {Create as $Create} from "/wails/runtime.js"; /** - * @typedef {Cyclic | null} Alias - */ - -/** - * @typedef {{ [_: string]: Alias }[]} Cyclic - */ - -/** - * @template T - * @typedef {{"X": GenericCyclic | null, "Y": (T | null)[]}[]} GenericCyclic + * Marshaler is the interface implemented by types that + * can marshal themselves into valid JSON. */ +export type Marshaler = any; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/encoding/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/encoding/models.ts new file mode 100644 index 000000000..1ff6fc7ec --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/encoding/models.ts @@ -0,0 +1,14 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * TextMarshaler is the interface implemented by an object that can + * marshal itself into a textual form. + * + * MarshalText encodes the receiver into UTF-8-encoded text and returns the result. + */ +export type TextMarshaler = any; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.ts index bbd4c1891..019d99750 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.ts @@ -12,7 +12,11 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as nobindingshere$0 from "../no_bindings_here/models.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; /** * Get someone. @@ -50,13 +54,22 @@ export function GetButDifferent(): Promise<$models.GenericPerson> & { c return $typingPromise; } +export function GetButForeignPrivateAlias(): Promise & { cancel(): void } { + let $resultPromise = $Call.ByID(643456960) as any; + let $typingPromise = $resultPromise.then(($result: any) => { + return $$createType2($result); + }) as any; + $typingPromise.cancel = $resultPromise.cancel.bind($resultPromise); + return $typingPromise; +} + /** * Greet a lot of unusual things. */ export function Greet($0: $models.EmptyAliasStruct, $1: $models.EmptyStruct): Promise<$models.AliasStruct> & { cancel(): void } { let $resultPromise = $Call.ByID(1411160069, $0, $1) as any; let $typingPromise = $resultPromise.then(($result: any) => { - return $$createType5($result); + return $$createType6($result); }) as any; $typingPromise.cancel = $resultPromise.cancel.bind($resultPromise); return $typingPromise; @@ -65,12 +78,13 @@ export function Greet($0: $models.EmptyAliasStruct, $1: $models.EmptyStruct): Pr // Private type creation functions const $$createType0 = $models.Person.createFrom; const $$createType1 = $models.GenericPerson.createFrom($Create.Any); -const $$createType2 = $Create.Array($Create.Any); +const $$createType2 = nobindingshere$0.personImpl.createFrom; const $$createType3 = $Create.Array($Create.Any); -const $$createType4 = $Create.Struct({ - "NoMoreIdeas": $$createType3, -}); +const $$createType4 = $Create.Array($Create.Any); const $$createType5 = $Create.Struct({ - "Foo": $$createType2, - "Other": $$createType4, + "NoMoreIdeas": $$createType4, +}); +const $$createType6 = $Create.Struct({ + "Foo": $$createType3, + "Other": $$createType5, }); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.ts index 8e624c826..b0e392853 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.ts @@ -6,4 +6,17 @@ export { GreetService }; -export * from "./models.js"; +export { + AliasedPerson, + EmptyStruct, + GenericPerson, + Person, + StrangelyAliasedPerson +} from "./models.js"; + +export type { + Alias, + AliasStruct, + EmptyAliasStruct, + OtherAliasStruct +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.ts deleted file mode 100644 index 2501e921e..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.ts +++ /dev/null @@ -1,157 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -/** - * A nice type Alias. - */ -export type Alias = number; - -/** - * A struct alias. - * This should be rendered as a typedef or interface in every mode. - */ -export interface AliasStruct { - /** - * A field with a comment. - */ - "Foo": number[]; - - /** - * Definitely not Foo. - */ - "Bar"?: string; - "Baz"?: string; - - /** - * A nested alias struct. - */ - "Other": OtherAliasStruct; -} - -/** - * An empty struct alias. - */ -export interface EmptyAliasStruct { -} - -/** - * An empty struct. - */ -export class EmptyStruct { - - /** Creates a new EmptyStruct instance. */ - constructor($$source: Partial = {}) { - - Object.assign(this, $$source); - } - - /** - * Creates a new EmptyStruct instance from a string or object. - */ - static createFrom($$source: any = {}): EmptyStruct { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new EmptyStruct($$parsedSource as Partial); - } -} - -/** - * A generic struct containing an alias. - */ -export class GenericPerson { - "Name": T | null; - "AliasedField": Alias; - - /** Creates a new GenericPerson instance. */ - constructor($$source: Partial> = {}) { - if (!("Name" in $$source)) { - this["Name"] = null; - } - if (!("AliasedField" in $$source)) { - this["AliasedField"] = 0; - } - - Object.assign(this, $$source); - } - - /** - * Given creation functions for each type parameter, - * returns a creation function for a concrete instance - * of the generic class GenericPerson. - */ - static createFrom($$createParamT: (source: any) => T): ($$source?: any) => GenericPerson { - const $$createField0_0 = $$createParamT; - return ($$source: any = {}) => { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Name" in $$parsedSource) { - $$parsedSource["Name"] = $$createField0_0($$parsedSource["Name"]); - } - return new GenericPerson($$parsedSource as Partial>); - }; - } -} - -/** - * Another struct alias. - */ -export interface OtherAliasStruct { - "NoMoreIdeas": number[]; -} - -/** - * A non-generic struct containing an alias. - */ -export class Person { - /** - * The Person's name. - */ - "Name": string; - - /** - * A random alias field. - */ - "AliasedField": Alias; - - /** Creates a new Person instance. */ - constructor($$source: Partial = {}) { - if (!("Name" in $$source)) { - this["Name"] = ""; - } - if (!("AliasedField" in $$source)) { - this["AliasedField"] = 0; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - */ - static createFrom($$source: any = {}): Person { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Person($$parsedSource as Partial); - } -} - -/** - * A class alias. - */ -export const AliasedPerson = Person; - -/** - * A class alias. - */ -export type AliasedPerson = Person; - -/** - * Another class alias, but ordered after its aliased class. - */ -export const StrangelyAliasedPerson = Person; - -/** - * Another class alias, but ordered after its aliased class. - */ -export type StrangelyAliasedPerson = Person; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.ts index 48ca89425..481c39bda 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.ts @@ -1,17 +1,154 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - AliasedPerson, - EmptyStruct, - GenericPerson, - Person, - StrangelyAliasedPerson -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; -export type { - Alias, - AliasStruct, - EmptyAliasStruct, - OtherAliasStruct -} from "./internal.js"; +/** + * A nice type Alias. + */ +export type Alias = number; + +/** + * A struct alias. + * This should be rendered as a typedef or interface in every mode. + */ +export interface AliasStruct { + /** + * A field with a comment. + */ + "Foo": number[]; + + /** + * Definitely not Foo. + */ + "Bar"?: string; + "Baz"?: string; + + /** + * A nested alias struct. + */ + "Other": OtherAliasStruct; +} + +/** + * An empty struct alias. + */ +export interface EmptyAliasStruct { +} + +/** + * An empty struct. + */ +export class EmptyStruct { + + /** Creates a new EmptyStruct instance. */ + constructor($$source: Partial = {}) { + + Object.assign(this, $$source); + } + + /** + * Creates a new EmptyStruct instance from a string or object. + */ + static createFrom($$source: any = {}): EmptyStruct { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new EmptyStruct($$parsedSource as Partial); + } +} + +/** + * A generic struct containing an alias. + */ +export class GenericPerson { + "Name"?: T; + "AliasedField": Alias; + + /** Creates a new GenericPerson instance. */ + constructor($$source: Partial> = {}) { + if (!("AliasedField" in $$source)) { + this["AliasedField"] = 0; + } + + Object.assign(this, $$source); + } + + /** + * Given creation functions for each type parameter, + * returns a creation function for a concrete instance + * of the generic class GenericPerson. + */ + static createFrom($$createParamT: (source: any) => T): ($$source?: any) => GenericPerson { + const $$createField0_0 = $$createParamT; + return ($$source: any = {}) => { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Name" in $$parsedSource) { + $$parsedSource["Name"] = $$createField0_0($$parsedSource["Name"]); + } + return new GenericPerson($$parsedSource as Partial>); + }; + } +} + +/** + * Another struct alias. + */ +export interface OtherAliasStruct { + "NoMoreIdeas": number[]; +} + +/** + * A non-generic struct containing an alias. + */ +export class Person { + /** + * The Person's name. + */ + "Name": string; + + /** + * A random alias field. + */ + "AliasedField": Alias; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("AliasedField" in $$source)) { + this["AliasedField"] = 0; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + */ + static createFrom($$source: any = {}): Person { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Person($$parsedSource as Partial); + } +} + +/** + * A class alias. + */ +export const AliasedPerson = Person; + +/** + * A class alias. + */ +export type AliasedPerson = Person; + +/** + * Another class alias, but ordered after its aliased class. + */ +export const StrangelyAliasedPerson = Person; + +/** + * Another class alias, but ordered after its aliased class. + */ +export type StrangelyAliasedPerson = Person; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.ts index 7e83e922f..3816bcdee 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.ts index 8e624c826..6cdc52c66 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.ts @@ -6,4 +6,12 @@ export { GreetService }; -export * from "./models.js"; +export { + Embedded1, + Person, + Title +} from "./models.js"; + +export type { + Embedded3 +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.ts deleted file mode 100644 index 026a31d2e..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.ts +++ /dev/null @@ -1,237 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Embedded1 { - /** - * Friends should be shadowed in Person by a field of lesser depth - */ - "Friends": number; - - /** - * Vanish should be omitted from Person because there is another field with same depth and no tag - */ - "Vanish": number; - - /** - * StillThere should be shadowed in Person by other field with same depth and a json tag - */ - "StillThere": string; - - /** - * NamingThingsIsHard is a law of programming - */ - "NamingThingsIsHard": `${boolean}`; - - /** Creates a new Embedded1 instance. */ - constructor($$source: Partial = {}) { - if (!("Friends" in $$source)) { - this["Friends"] = 0; - } - if (!("Vanish" in $$source)) { - this["Vanish"] = 0; - } - if (!("StillThere" in $$source)) { - this["StillThere"] = ""; - } - if (!("NamingThingsIsHard" in $$source)) { - this["NamingThingsIsHard"] = "false"; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Embedded1 instance from a string or object. - */ - static createFrom($$source: any = {}): Embedded1 { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Embedded1($$parsedSource as Partial); - } -} - -export type Embedded3 = string; - -/** - * Person represents a person - */ -export class Person { - /** - * Titles is optional in JSON - */ - "Titles"?: Title[]; - - /** - * Names has a - * multiline comment - */ - "Names": string[]; - - /** - * Partner has a custom and complex JSON key - */ - "Partner": Person | null; - "Friends": (Person | null)[]; - - /** - * NamingThingsIsHard is a law of programming - */ - "NamingThingsIsHard": `${boolean}`; - - /** - * StillThereButRenamed should shadow in Person the other field with same depth and no json tag - */ - "StillThere": Embedded3 | null; - - /** - * StrangeNumber maps to "-" - */ - "-": number; - - /** - * Embedded3 should appear with key "Embedded3" - */ - "Embedded3": Embedded3; - - /** - * StrangerNumber is serialized as a string - */ - "StrangerNumber": `${number}`; - - /** - * StrangestString is optional and serialized as a JSON string - */ - "StrangestString"?: `"${string}"`; - - /** - * StringStrangest is serialized as a JSON string and optional - */ - "StringStrangest"?: `"${string}"`; - - /** - * embedded4 should be optional and appear with key "emb4" - */ - "emb4"?: embedded4; - - /** Creates a new Person instance. */ - constructor($$source: Partial = {}) { - if (!("Names" in $$source)) { - this["Names"] = []; - } - if (!("Partner" in $$source)) { - this["Partner"] = null; - } - if (!("Friends" in $$source)) { - this["Friends"] = []; - } - if (!("NamingThingsIsHard" in $$source)) { - this["NamingThingsIsHard"] = "false"; - } - if (!("StillThere" in $$source)) { - this["StillThere"] = null; - } - if (!("-" in $$source)) { - this["-"] = 0; - } - if (!("Embedded3" in $$source)) { - this["Embedded3"] = ("" as Embedded3); - } - if (!("StrangerNumber" in $$source)) { - this["StrangerNumber"] = "0"; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - */ - static createFrom($$source: any = {}): Person { - const $$createField0_0 = $$createType0; - const $$createField1_0 = $$createType1; - const $$createField2_0 = $$createType3; - const $$createField3_0 = $$createType4; - const $$createField11_0 = $$createType5; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Titles" in $$parsedSource) { - $$parsedSource["Titles"] = $$createField0_0($$parsedSource["Titles"]); - } - if ("Names" in $$parsedSource) { - $$parsedSource["Names"] = $$createField1_0($$parsedSource["Names"]); - } - if ("Partner" in $$parsedSource) { - $$parsedSource["Partner"] = $$createField2_0($$parsedSource["Partner"]); - } - if ("Friends" in $$parsedSource) { - $$parsedSource["Friends"] = $$createField3_0($$parsedSource["Friends"]); - } - if ("emb4" in $$parsedSource) { - $$parsedSource["emb4"] = $$createField11_0($$parsedSource["emb4"]); - } - return new Person($$parsedSource as Partial); - } -} - -/** - * Title is a title - */ -export enum Title { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero = "", - - /** - * Mister is a title - */ - Mister = "Mr", - Miss = "Miss", - Ms = "Ms", - Mrs = "Mrs", - Dr = "Dr", -}; - -export class embedded4 { - /** - * NamingThingsIsHard is a law of programming - */ - "NamingThingsIsHard": `${boolean}`; - - /** - * Friends should not be shadowed in Person as embedded4 is not embedded - * from encoding/json's point of view; - * however, it should be shadowed in Embedded1 - */ - "Friends": boolean; - - /** Creates a new embedded4 instance. */ - constructor($$source: Partial = {}) { - if (!("NamingThingsIsHard" in $$source)) { - this["NamingThingsIsHard"] = "false"; - } - if (!("Friends" in $$source)) { - this["Friends"] = false; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new embedded4 instance from a string or object. - */ - static createFrom($$source: any = {}): embedded4 { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new embedded4($$parsedSource as Partial); - } -} - -// Private type creation functions -const $$createType0 = $Create.Array($Create.Any); -const $$createType1 = $Create.Array($Create.Any); -const $$createType2 = Person.createFrom; -const $$createType3 = $Create.Nullable($$createType2); -const $$createType4 = $Create.Array($$createType3); -const $$createType5 = embedded4.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.ts index 56a4bb659..2ff5d6635 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.ts @@ -1,12 +1,237 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Embedded1, - Person, - Title -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; -export type { - Embedded3 -} from "./internal.js"; +export class Embedded1 { + /** + * Friends should be shadowed in Person by a field of lesser depth + */ + "Friends": number; + + /** + * Vanish should be omitted from Person because there is another field with same depth and no tag + */ + "Vanish": number; + + /** + * StillThere should be shadowed in Person by other field with same depth and a json tag + */ + "StillThere": string; + + /** + * NamingThingsIsHard is a law of programming + */ + "NamingThingsIsHard": `${boolean}`; + + /** Creates a new Embedded1 instance. */ + constructor($$source: Partial = {}) { + if (!("Friends" in $$source)) { + this["Friends"] = 0; + } + if (!("Vanish" in $$source)) { + this["Vanish"] = 0; + } + if (!("StillThere" in $$source)) { + this["StillThere"] = ""; + } + if (!("NamingThingsIsHard" in $$source)) { + this["NamingThingsIsHard"] = "false"; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Embedded1 instance from a string or object. + */ + static createFrom($$source: any = {}): Embedded1 { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Embedded1($$parsedSource as Partial); + } +} + +export type Embedded3 = string; + +/** + * Person represents a person + */ +export class Person { + /** + * Titles is optional in JSON + */ + "Titles"?: Title[]; + + /** + * Names has a + * multiline comment + */ + "Names": string[]; + + /** + * Partner has a custom and complex JSON key + */ + "Partner": Person | null; + "Friends": (Person | null)[]; + + /** + * NamingThingsIsHard is a law of programming + */ + "NamingThingsIsHard": `${boolean}`; + + /** + * StillThereButRenamed should shadow in Person the other field with same depth and no json tag + */ + "StillThere": Embedded3 | null; + + /** + * StrangeNumber maps to "-" + */ + "-": number; + + /** + * Embedded3 should appear with key "Embedded3" + */ + "Embedded3": Embedded3; + + /** + * StrangerNumber is serialized as a string + */ + "StrangerNumber": `${number}`; + + /** + * StrangestString is optional and serialized as a JSON string + */ + "StrangestString"?: `"${string}"`; + + /** + * StringStrangest is serialized as a JSON string and optional + */ + "StringStrangest"?: `"${string}"`; + + /** + * embedded4 should be optional and appear with key "emb4" + */ + "emb4"?: embedded4; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Names" in $$source)) { + this["Names"] = []; + } + if (!("Partner" in $$source)) { + this["Partner"] = null; + } + if (!("Friends" in $$source)) { + this["Friends"] = []; + } + if (!("NamingThingsIsHard" in $$source)) { + this["NamingThingsIsHard"] = "false"; + } + if (!("StillThere" in $$source)) { + this["StillThere"] = null; + } + if (!("-" in $$source)) { + this["-"] = 0; + } + if (!("Embedded3" in $$source)) { + this["Embedded3"] = ""; + } + if (!("StrangerNumber" in $$source)) { + this["StrangerNumber"] = "0"; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + */ + static createFrom($$source: any = {}): Person { + const $$createField0_0 = $$createType0; + const $$createField1_0 = $$createType1; + const $$createField2_0 = $$createType3; + const $$createField3_0 = $$createType4; + const $$createField11_0 = $$createType5; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Titles" in $$parsedSource) { + $$parsedSource["Titles"] = $$createField0_0($$parsedSource["Titles"]); + } + if ("Names" in $$parsedSource) { + $$parsedSource["Names"] = $$createField1_0($$parsedSource["Names"]); + } + if ("Partner" in $$parsedSource) { + $$parsedSource["Partner"] = $$createField2_0($$parsedSource["Partner"]); + } + if ("Friends" in $$parsedSource) { + $$parsedSource["Friends"] = $$createField3_0($$parsedSource["Friends"]); + } + if ("emb4" in $$parsedSource) { + $$parsedSource["emb4"] = $$createField11_0($$parsedSource["emb4"]); + } + return new Person($$parsedSource as Partial); + } +} + +/** + * Title is a title + */ +export enum Title { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = "", + + /** + * Mister is a title + */ + Mister = "Mr", + Miss = "Miss", + Ms = "Ms", + Mrs = "Mrs", + Dr = "Dr", +}; + +export class embedded4 { + /** + * NamingThingsIsHard is a law of programming + */ + "NamingThingsIsHard": `${boolean}`; + + /** + * Friends should not be shadowed in Person as embedded4 is not embedded + * from encoding/json's point of view; + * however, it should be shadowed in Embedded1 + */ + "Friends": boolean; + + /** Creates a new embedded4 instance. */ + constructor($$source: Partial = {}) { + if (!("NamingThingsIsHard" in $$source)) { + this["NamingThingsIsHard"] = "false"; + } + if (!("Friends" in $$source)) { + this["Friends"] = false; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new embedded4 instance from a string or object. + */ + static createFrom($$source: any = {}): embedded4 { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new embedded4($$parsedSource as Partial); + } +} + +// Private type creation functions +const $$createType0 = $Create.Array($Create.Any); +const $$createType1 = $Create.Array($Create.Any); +const $$createType2 = Person.createFrom; +const $$createType3 = $Create.Nullable($$createType2); +const $$createType4 = $Create.Array($$createType3); +const $$createType5 = embedded4.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.ts index 293f1df5a..fb057998c 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.ts index 8e624c826..f95c1b558 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.ts deleted file mode 100644 index 66dc14092..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.ts +++ /dev/null @@ -1,30 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -/** - * Person represents a person - */ -export class Person { - "Name": string; - - /** Creates a new Person instance. */ - constructor($$source: Partial = {}) { - if (!("Name" in $$source)) { - this["Name"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - */ - static createFrom($$source: any = {}): Person { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Person($$parsedSource as Partial); - } -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.ts index af8488811..66dc14092 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.ts @@ -1,6 +1,30 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * Person represents a person + */ +export class Person { + "Name": string; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + */ + static createFrom($$source: any = {}): Person { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Person($$parsedSource as Partial); + } +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.ts index eb06129b7..22900e8d1 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Make a cycle. diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.ts index 8e624c826..4b190b8da 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.ts @@ -6,4 +6,8 @@ export { GreetService }; -export * from "./models.js"; +export { + StructA, + StructC, + StructE +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.ts deleted file mode 100644 index a79d42f32..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.ts +++ /dev/null @@ -1,131 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class StructA { - "B": structB | null; - - /** Creates a new StructA instance. */ - constructor($$source: Partial = {}) { - if (!("B" in $$source)) { - this["B"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new StructA instance from a string or object. - */ - static createFrom($$source: any = {}): StructA { - const $$createField0_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("B" in $$parsedSource) { - $$parsedSource["B"] = $$createField0_0($$parsedSource["B"]); - } - return new StructA($$parsedSource as Partial); - } -} - -export class StructC { - "D": structD; - - /** Creates a new StructC instance. */ - constructor($$source: Partial = {}) { - if (!("D" in $$source)) { - this["D"] = (new structD()); - } - - Object.assign(this, $$source); - } - - /** - * Creates a new StructC instance from a string or object. - */ - static createFrom($$source: any = {}): StructC { - const $$createField0_0 = $$createType2; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("D" in $$parsedSource) { - $$parsedSource["D"] = $$createField0_0($$parsedSource["D"]); - } - return new StructC($$parsedSource as Partial); - } -} - -export class StructE { - - /** Creates a new StructE instance. */ - constructor($$source: Partial = {}) { - - Object.assign(this, $$source); - } - - /** - * Creates a new StructE instance from a string or object. - */ - static createFrom($$source: any = {}): StructE { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new StructE($$parsedSource as Partial); - } -} - -export class structB { - "A": StructA | null; - - /** Creates a new structB instance. */ - constructor($$source: Partial = {}) { - if (!("A" in $$source)) { - this["A"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new structB instance from a string or object. - */ - static createFrom($$source: any = {}): structB { - const $$createField0_0 = $$createType4; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("A" in $$parsedSource) { - $$parsedSource["A"] = $$createField0_0($$parsedSource["A"]); - } - return new structB($$parsedSource as Partial); - } -} - -export class structD { - "E": StructE; - - /** Creates a new structD instance. */ - constructor($$source: Partial = {}) { - if (!("E" in $$source)) { - this["E"] = (new StructE()); - } - - Object.assign(this, $$source); - } - - /** - * Creates a new structD instance from a string or object. - */ - static createFrom($$source: any = {}): structD { - const $$createField0_0 = $$createType5; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("E" in $$parsedSource) { - $$parsedSource["E"] = $$createField0_0($$parsedSource["E"]); - } - return new structD($$parsedSource as Partial); - } -} - -// Private type creation functions -const $$createType0 = structB.createFrom; -const $$createType1 = $Create.Nullable($$createType0); -const $$createType2 = structD.createFrom; -const $$createType3 = StructA.createFrom; -const $$createType4 = $Create.Nullable($$createType3); -const $$createType5 = StructE.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.ts index f6997135d..a79d42f32 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.ts @@ -1,8 +1,131 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - StructA, - StructC, - StructE -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class StructA { + "B": structB | null; + + /** Creates a new StructA instance. */ + constructor($$source: Partial = {}) { + if (!("B" in $$source)) { + this["B"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new StructA instance from a string or object. + */ + static createFrom($$source: any = {}): StructA { + const $$createField0_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("B" in $$parsedSource) { + $$parsedSource["B"] = $$createField0_0($$parsedSource["B"]); + } + return new StructA($$parsedSource as Partial); + } +} + +export class StructC { + "D": structD; + + /** Creates a new StructC instance. */ + constructor($$source: Partial = {}) { + if (!("D" in $$source)) { + this["D"] = (new structD()); + } + + Object.assign(this, $$source); + } + + /** + * Creates a new StructC instance from a string or object. + */ + static createFrom($$source: any = {}): StructC { + const $$createField0_0 = $$createType2; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("D" in $$parsedSource) { + $$parsedSource["D"] = $$createField0_0($$parsedSource["D"]); + } + return new StructC($$parsedSource as Partial); + } +} + +export class StructE { + + /** Creates a new StructE instance. */ + constructor($$source: Partial = {}) { + + Object.assign(this, $$source); + } + + /** + * Creates a new StructE instance from a string or object. + */ + static createFrom($$source: any = {}): StructE { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new StructE($$parsedSource as Partial); + } +} + +export class structB { + "A": StructA | null; + + /** Creates a new structB instance. */ + constructor($$source: Partial = {}) { + if (!("A" in $$source)) { + this["A"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new structB instance from a string or object. + */ + static createFrom($$source: any = {}): structB { + const $$createField0_0 = $$createType4; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("A" in $$parsedSource) { + $$parsedSource["A"] = $$createField0_0($$parsedSource["A"]); + } + return new structB($$parsedSource as Partial); + } +} + +export class structD { + "E": StructE; + + /** Creates a new structD instance. */ + constructor($$source: Partial = {}) { + if (!("E" in $$source)) { + this["E"] = (new StructE()); + } + + Object.assign(this, $$source); + } + + /** + * Creates a new structD instance from a string or object. + */ + static createFrom($$source: any = {}): structD { + const $$createField0_0 = $$createType5; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("E" in $$parsedSource) { + $$parsedSource["E"] = $$createField0_0($$parsedSource["E"]); + } + return new structD($$parsedSource as Partial); + } +} + +// Private type creation functions +const $$createType0 = structB.createFrom; +const $$createType1 = $Create.Nullable($$createType0); +const $$createType2 = structD.createFrom; +const $$createType3 = StructA.createFrom; +const $$createType4 = $Create.Nullable($$createType3); +const $$createType5 = StructE.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.ts index 2453e2db6..26782f46b 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Make a cycle. diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.ts index 8e624c826..16cef660c 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.ts @@ -6,4 +6,8 @@ export { GreetService }; -export * from "./models.js"; +export type { + Alias, + Cyclic, + GenericCyclic +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.ts index e4c804503..ed98e9791 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.ts @@ -1,8 +1,12 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Alias, - Cyclic, - GenericCyclic -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export type Alias = Cyclic | null; + +export type Cyclic = { [_: string]: Alias }[]; + +export type GenericCyclic = {"X": GenericCyclic | null, "Y": T[]}[]; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.ts new file mode 100644 index 000000000..b9fbdba96 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.ts @@ -0,0 +1,13 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +console.log("Hello everywhere!"); +console.log("Hello everywhere again!"); +console.log("Hello Classes!"); +console.log("Hello TS!"); +console.log("Hello TS Classes!"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.ts new file mode 100644 index 000000000..58842ad2d --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.ts @@ -0,0 +1,20 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * An exported but internal service. + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call, Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +export function Method($0: $models.InternalModel): Promise & { cancel(): void } { + let $resultPromise = $Call.ByID(538079117, $0) as any; + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.ts new file mode 100644 index 000000000..489296e23 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.ts @@ -0,0 +1,54 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * An exported but internal model. + */ +export class InternalModel { + "Field": string; + + /** Creates a new InternalModel instance. */ + constructor($$source: Partial = {}) { + if (!("Field" in $$source)) { + this["Field"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new InternalModel instance from a string or object. + */ + static createFrom($$source: any = {}): InternalModel { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new InternalModel($$parsedSource as Partial); + } +} + +/** + * An unexported model. + */ +export class unexportedModel { + "Field": string; + + /** Creates a new unexportedModel instance. */ + constructor($$source: Partial = {}) { + if (!("Field" in $$source)) { + this["Field"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new unexportedModel instance from a string or object. + */ + static createFrom($$source: any = {}): unexportedModel { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new unexportedModel($$parsedSource as Partial); + } +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.ts new file mode 100644 index 000000000..e52a0ccb8 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.ts @@ -0,0 +1,6 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export { + Dummy +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.ts new file mode 100644 index 000000000..209ade5da --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.ts @@ -0,0 +1,23 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Dummy { + + /** Creates a new Dummy instance. */ + constructor($$source: Partial = {}) { + + Object.assign(this, $$source); + } + + /** + * Creates a new Dummy instance from a string or object. + */ + static createFrom($$source: any = {}): Dummy { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Dummy($$parsedSource as Partial); + } +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_t.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_t.ts new file mode 100644 index 000000000..6703820f1 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_t.ts @@ -0,0 +1,3 @@ +import { CustomMethod } from "../service.js"; + +CustomMethod("TS"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_tc.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_tc.ts new file mode 100644 index 000000000..15d2994e9 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_tc.ts @@ -0,0 +1,3 @@ +import { CustomMethod } from "../service.js"; + +CustomMethod("TS Classes"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.ts new file mode 100644 index 000000000..266a81058 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.ts @@ -0,0 +1,24 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call, Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as otherpackage$0 from "./otherpackage/models.js"; + +function InternalMethod($0: string): Promise & { cancel(): void } { + let $resultPromise = $Call.ByID(3518775569, $0) as any; + return $resultPromise; +} + +export function VisibleMethod($0: otherpackage$0.Dummy): Promise & { cancel(): void } { + let $resultPromise = $Call.ByID(474018228, $0) as any; + return $resultPromise; +} + +export async function CustomMethod(arg: string): Promise { + await InternalMethod("Hello " + arg + "!"); +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js new file mode 100644 index 000000000..138385f53 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("everywhere"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js new file mode 100644 index 000000000..19d5c2f42 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("everywhere again"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_c.js b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_c.js new file mode 100644 index 000000000..724e79e12 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_c.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("Classes"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_t.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_t.ts new file mode 100644 index 000000000..253d3f2f6 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_t.ts @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("TS"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_tc.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_tc.ts new file mode 100644 index 000000000..66b739d3a --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_tc.ts @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("TS Classes"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.ts new file mode 100644 index 000000000..3c52fd31e --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.ts @@ -0,0 +1,20 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * An unexported service. + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call, Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +export function Method($0: $models.unexportedModel): Promise & { cancel(): void } { + let $resultPromise = $Call.ByID(37626172, $0) as any; + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.ts index e38c8bcd7..da5d96205 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.ts index 8e624c826..3b4d2f5c6 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.ts @@ -6,4 +6,8 @@ export { GreetService }; -export * from "./models.js"; +export { + Age, + Person, + Title +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.ts deleted file mode 100644 index bc7cd4964..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.ts +++ /dev/null @@ -1,53 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -/** - * Person represents a person - */ -export class Person { - "Title": Title; - "Name": string; - - /** Creates a new Person instance. */ - constructor($$source: Partial = {}) { - if (!("Title" in $$source)) { - this["Title"] = ("" as Title); - } - if (!("Name" in $$source)) { - this["Name"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - */ - static createFrom($$source: any = {}): Person { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Person($$parsedSource as Partial); - } -} - -/** - * Title is a title - */ -export enum Title { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero = "", - - /** - * Mister is a title - */ - Mister = "Mr", - Miss = "Miss", - Ms = "Ms", - Mrs = "Mrs", - Dr = "Dr", -}; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.ts index 728210dfb..7b8cbf2fc 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.ts @@ -1,7 +1,82 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person, - Title -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * Age is an integer with some predefined values + */ +export type Age = number; + +/** + * Predefined constants for type Age. + * @namespace + */ +export const Age = { + NewBorn: 0, + Teenager: 12, + YoungAdult: 18, + + /** + * Oh no, some grey hair! + */ + MiddleAged: 50, + + /** + * Unbelievable! + */ + Mathusalem: 1000, +}; + +/** + * Person represents a person + */ +export class Person { + "Title": Title; + "Name": string; + "Age": Age; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Title" in $$source)) { + this["Title"] = Title.$zero; + } + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Age" in $$source)) { + this["Age"] = 0; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + */ + static createFrom($$source: any = {}): Person { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Person($$parsedSource as Partial); + } +} + +/** + * Title is a title + */ +export enum Title { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = "", + + /** + * Mister is a title + */ + Mister = "Mr", + Miss = "Miss", + Ms = "Ms", + Mrs = "Mrs", + Dr = "Dr", +}; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.ts index c9d993ab7..01c612edc 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.ts @@ -1,4 +1,6 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export * from "./models.js"; +export { + Title +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.ts index e8981fc5e..335543dbb 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.ts @@ -1,6 +1,22 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Title -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export enum Title { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = "", + + /** + * Mister is a title + */ + Mister = "Mr", + Miss = "Miss", + Ms = "Ms", + Mrs = "Mrs", + Dr = "Dr", +}; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.ts index 9dec152c9..07b718c99 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.ts index 8e624c826..f95c1b558 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.ts deleted file mode 100644 index 02707e2ca..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.ts +++ /dev/null @@ -1,46 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -/** - * Person is a person - */ -export class Person { - "Name": string; - "Address": services$0.Address | null; - - /** Creates a new Person instance. */ - constructor($$source: Partial = {}) { - if (!("Name" in $$source)) { - this["Name"] = ""; - } - if (!("Address" in $$source)) { - this["Address"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - */ - static createFrom($$source: any = {}): Person { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Address" in $$parsedSource) { - $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); - } - return new Person($$parsedSource as Partial); - } -} - -// Private type creation functions -const $$createType0 = services$0.Address.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.ts index af8488811..02707e2ca 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.ts @@ -1,6 +1,46 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; + +/** + * Person is a person + */ +export class Person { + "Name": string; + "Address": services$0.Address | null; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Address" in $$source)) { + this["Address"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + */ + static createFrom($$source: any = {}): Person { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Address" in $$parsedSource) { + $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); + } + return new Person($$parsedSource as Partial); + } +} + +// Private type creation functions +const $$createType0 = services$0.Address.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.ts index 1a5bd5ebf..e4d86b717 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.ts @@ -6,4 +6,6 @@ export { OtherService }; -export * from "./models.js"; +export { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.ts deleted file mode 100644 index eb9c1b6bf..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.ts +++ /dev/null @@ -1,35 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Address { - "Street": string; - "State": string; - "Country": string; - - /** Creates a new Address instance. */ - constructor($$source: Partial
= {}) { - if (!("Street" in $$source)) { - this["Street"] = ""; - } - if (!("State" in $$source)) { - this["State"] = ""; - } - if (!("Country" in $$source)) { - this["Country"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Address instance from a string or object. - */ - static createFrom($$source: any = {}): Address { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Address($$parsedSource as Partial
); - } -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.ts index 826377880..eb9c1b6bf 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.ts @@ -1,6 +1,35 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Address -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Address { + "Street": string; + "State": string; + "Country": string; + + /** Creates a new Address instance. */ + constructor($$source: Partial
= {}) { + if (!("Street" in $$source)) { + this["Street"] = ""; + } + if (!("State" in $$source)) { + this["State"] = ""; + } + if (!("Country" in $$source)) { + this["Country"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Address instance from a string or object. + */ + static createFrom($$source: any = {}): Address { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Address($$parsedSource as Partial
); + } +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.ts index 4c60bda32..13a82546a 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.ts @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.ts index 9dec152c9..07b718c99 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.ts index 8e624c826..f95c1b558 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.ts deleted file mode 100644 index c4a6d39ee..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.ts +++ /dev/null @@ -1,43 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as other$0 from "./services/other/models.js"; - -export class Person { - "Name": string; - "Address": other$0.Address | null; - - /** Creates a new Person instance. */ - constructor($$source: Partial = {}) { - if (!("Name" in $$source)) { - this["Name"] = ""; - } - if (!("Address" in $$source)) { - this["Address"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - */ - static createFrom($$source: any = {}): Person { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Address" in $$parsedSource) { - $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); - } - return new Person($$parsedSource as Partial); - } -} - -// Private type creation functions -const $$createType0 = other$0.Address.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.ts index af8488811..c4a6d39ee 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.ts @@ -1,6 +1,43 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as other$0 from "./services/other/models.js"; + +export class Person { + "Name": string; + "Address": other$0.Address | null; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Address" in $$source)) { + this["Address"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + */ + static createFrom($$source: any = {}): Person { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Address" in $$parsedSource) { + $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); + } + return new Person($$parsedSource as Partial); + } +} + +// Private type creation functions +const $$createType0 = other$0.Address.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.ts index 1a5bd5ebf..e4d86b717 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.ts @@ -6,4 +6,6 @@ export { OtherService }; -export * from "./models.js"; +export { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.ts deleted file mode 100644 index eb9c1b6bf..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.ts +++ /dev/null @@ -1,35 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Address { - "Street": string; - "State": string; - "Country": string; - - /** Creates a new Address instance. */ - constructor($$source: Partial
= {}) { - if (!("Street" in $$source)) { - this["Street"] = ""; - } - if (!("State" in $$source)) { - this["State"] = ""; - } - if (!("Country" in $$source)) { - this["Country"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Address instance from a string or object. - */ - static createFrom($$source: any = {}): Address { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Address($$parsedSource as Partial
); - } -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.ts index 826377880..eb9c1b6bf 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.ts @@ -1,6 +1,35 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Address -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Address { + "Street": string; + "State": string; + "Country": string; + + /** Creates a new Address instance. */ + constructor($$source: Partial
= {}) { + if (!("Street" in $$source)) { + this["Street"] = ""; + } + if (!("State" in $$source)) { + this["State"] = ""; + } + if (!("Country" in $$source)) { + this["Country"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Address instance from a string or object. + */ + static createFrom($$source: any = {}): Address { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Address($$parsedSource as Partial
); + } +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.ts index 09e95686d..f3c4c0c43 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.ts @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.ts new file mode 100644 index 000000000..1f4f65dda --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.ts @@ -0,0 +1,26 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +export { + Maps +} from "./models.js"; + +export type { + EmbeddedCustomInterface, + EmbeddedOriginalInterface, + EmbeddedPointer, + EmbeddedPointerPtr, + EmbeddedValue, + EmbeddedValuePtr, + PointerAlias, + PointerTextMarshaler, + StringAlias, + StringType, + ValueAlias, + ValueTextMarshaler +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.ts new file mode 100644 index 000000000..d858ddf9a --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.ts @@ -0,0 +1,1197 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export type EmbeddedCustomInterface = string; + +export type EmbeddedOriginalInterface = string; + +export type EmbeddedPointer = string; + +export type EmbeddedPointerPtr = string; + +export type EmbeddedValue = string; + +export type EmbeddedValuePtr = string; + +export class Maps { + /** + * Reject + */ + "Bool": { [_: string]: number }; + + /** + * Accept + */ + "Int": { [_: `${number}`]: number }; + + /** + * Accept + */ + "Uint": { [_: `${number}`]: number }; + + /** + * Reject + */ + "Float": { [_: string]: number }; + + /** + * Reject + */ + "Complex": { [_: string]: number }; + + /** + * Accept + */ + "Byte": { [_: `${number}`]: number }; + + /** + * Accept + */ + "Rune": { [_: `${number}`]: number }; + + /** + * Accept + */ + "String": { [_: string]: number }; + + /** + * Reject + */ + "IntPtr": { [_: string]: number }; + + /** + * Reject + */ + "UintPtr": { [_: string]: number }; + + /** + * Reject + */ + "FloatPtr": { [_: string]: number }; + + /** + * Reject + */ + "ComplexPtr": { [_: string]: number }; + + /** + * Reject + */ + "StringPtr": { [_: string]: number }; + + /** + * Reject + */ + "NTM": { [_: string]: number }; + + /** + * Reject + */ + "NTMPtr": { [_: string]: number }; + + /** + * Accept + */ + "VTM": { [_: ValueTextMarshaler]: number }; + + /** + * Accept + */ + "VTMPtr": { [_: ValueTextMarshaler]: number }; + + /** + * Reject + */ + "PTM": { [_: string]: number }; + + /** + * Accept + */ + "PTMPtr": { [_: PointerTextMarshaler]: number }; + + /** + * Accept, hide + */ + "JTM": { [_: string]: number }; + + /** + * Accept, hide + */ + "JTMPtr": { [_: string]: number }; + + /** + * Reject + */ + "A": { [_: string]: number }; + + /** + * Reject + */ + "APtr": { [_: string]: number }; + + /** + * Accept, hide + */ + "TM": { [_: string]: number }; + + /** + * Reject + */ + "TMPtr": { [_: string]: number }; + + /** + * Accept, hide + */ + "CI": { [_: string]: number }; + + /** + * Reject + */ + "CIPtr": { [_: string]: number }; + + /** + * Accept, hide + */ + "EI": { [_: string]: number }; + + /** + * Reject + */ + "EIPtr": { [_: string]: number }; + + /** + * Accept + */ + "EV": { [_: EmbeddedValue]: number }; + + /** + * Accept + */ + "EVPtr": { [_: EmbeddedValue]: number }; + + /** + * Accept + */ + "EVP": { [_: EmbeddedValuePtr]: number }; + + /** + * Accept + */ + "EVPPtr": { [_: EmbeddedValuePtr]: number }; + + /** + * Reject + */ + "EP": { [_: string]: number }; + + /** + * Accept + */ + "EPPtr": { [_: EmbeddedPointer]: number }; + + /** + * Accept + */ + "EPP": { [_: EmbeddedPointerPtr]: number }; + + /** + * Accept + */ + "EPPPtr": { [_: EmbeddedPointerPtr]: number }; + + /** + * Accept + */ + "ECI": { [_: EmbeddedCustomInterface]: number }; + + /** + * Accept + */ + "ECIPtr": { [_: EmbeddedCustomInterface]: number }; + + /** + * Accept + */ + "EOI": { [_: EmbeddedOriginalInterface]: number }; + + /** + * Accept + */ + "EOIPtr": { [_: EmbeddedOriginalInterface]: number }; + + /** + * Reject + */ + "WT": { [_: string]: number }; + + /** + * Reject + */ + "WA": { [_: string]: number }; + + /** + * Accept + */ + "ST": { [_: StringType]: number }; + + /** + * Accept + */ + "SA": { [_: StringAlias]: number }; + + /** + * Accept + */ + "IntT": { [_: `${number}`]: number }; + + /** + * Accept + */ + "IntA": { [_: `${number}`]: number }; + + /** + * Reject + */ + "VT": { [_: string]: number }; + + /** + * Reject + */ + "VTPtr": { [_: string]: number }; + + /** + * Reject + */ + "VPT": { [_: string]: number }; + + /** + * Reject + */ + "VPTPtr": { [_: string]: number }; + + /** + * Accept + */ + "VA": { [_: ValueAlias]: number }; + + /** + * Accept + */ + "VAPtr": { [_: ValueAlias]: number }; + + /** + * Accept, hide + */ + "VPA": { [_: string]: number }; + + /** + * Reject + */ + "VPAPtr": { [_: string]: number }; + + /** + * Reject + */ + "PT": { [_: string]: number }; + + /** + * Reject + */ + "PTPtr": { [_: string]: number }; + + /** + * Reject + */ + "PPT": { [_: string]: number }; + + /** + * Reject + */ + "PPTPtr": { [_: string]: number }; + + /** + * Reject + */ + "PA": { [_: string]: number }; + + /** + * Accept + */ + "PAPtr": { [_: PointerAlias]: number }; + + /** + * Accept, hide + */ + "PPA": { [_: string]: number }; + + /** + * Reject + */ + "PPAPtr": { [_: string]: number }; + + /** + * Accept, hide + */ + "IT": { [_: string]: number }; + + /** + * Reject + */ + "ITPtr": { [_: string]: number }; + + /** + * Reject + */ + "IPT": { [_: string]: number }; + + /** + * Reject + */ + "IPTPtr": { [_: string]: number }; + + /** + * Accept, hide + */ + "IA": { [_: string]: number }; + + /** + * Reject + */ + "IAPtr": { [_: string]: number }; + + /** + * Reject + */ + "IPA": { [_: string]: number }; + + /** + * Reject + */ + "IPAPtr": { [_: string]: number }; + + /** + * Soft reject + */ + "TPR": { [_: string]: number }; + + /** + * Soft reject + */ + "TPRPtr": { [_: string]: number }; + + /** + * Accept, hide + */ + "TPS": { [_: string]: number }; + + /** + * Soft reject + */ + "TPSPtr": { [_: string]: number }; + + /** + * Soft reject + */ + "TPT": { [_: string]: number }; + + /** + * Soft reject + */ + "TPTPtr": { [_: string]: number }; + + /** + * Accept, hide + */ + "TPU": { [_: string]: number }; + + /** + * Soft reject + */ + "TPUPtr": { [_: string]: number }; + + /** + * Accept, hide + */ + "TPV": { [_: string]: number }; + + /** + * Soft reject + */ + "TPVPtr": { [_: string]: number }; + + /** + * Soft reject + */ + "TPW": { [_: string]: number }; + + /** + * Accept, hide + */ + "TPWPtr": { [_: string]: number }; + + /** + * Accept, hide + */ + "TPX": { [_: string]: number }; + + /** + * Soft reject + */ + "TPXPtr": { [_: string]: number }; + + /** + * Accept, hide + */ + "TPY": { [_: string]: number }; + + /** + * Soft reject + */ + "TPYPtr": { [_: string]: number }; + + /** + * Accept, hide + */ + "TPZ": { [_: string]: number }; + + /** + * Soft reject + */ + "TPZPtr": { [_: string]: number }; + + /** Creates a new Maps instance. */ + constructor($$source: Partial> = {}) { + if (!("Bool" in $$source)) { + this["Bool"] = {}; + } + if (!("Int" in $$source)) { + this["Int"] = {}; + } + if (!("Uint" in $$source)) { + this["Uint"] = {}; + } + if (!("Float" in $$source)) { + this["Float"] = {}; + } + if (!("Complex" in $$source)) { + this["Complex"] = {}; + } + if (!("Byte" in $$source)) { + this["Byte"] = {}; + } + if (!("Rune" in $$source)) { + this["Rune"] = {}; + } + if (!("String" in $$source)) { + this["String"] = {}; + } + if (!("IntPtr" in $$source)) { + this["IntPtr"] = {}; + } + if (!("UintPtr" in $$source)) { + this["UintPtr"] = {}; + } + if (!("FloatPtr" in $$source)) { + this["FloatPtr"] = {}; + } + if (!("ComplexPtr" in $$source)) { + this["ComplexPtr"] = {}; + } + if (!("StringPtr" in $$source)) { + this["StringPtr"] = {}; + } + if (!("NTM" in $$source)) { + this["NTM"] = {}; + } + if (!("NTMPtr" in $$source)) { + this["NTMPtr"] = {}; + } + if (!("VTM" in $$source)) { + this["VTM"] = {}; + } + if (!("VTMPtr" in $$source)) { + this["VTMPtr"] = {}; + } + if (!("PTM" in $$source)) { + this["PTM"] = {}; + } + if (!("PTMPtr" in $$source)) { + this["PTMPtr"] = {}; + } + if (!("JTM" in $$source)) { + this["JTM"] = {}; + } + if (!("JTMPtr" in $$source)) { + this["JTMPtr"] = {}; + } + if (!("A" in $$source)) { + this["A"] = {}; + } + if (!("APtr" in $$source)) { + this["APtr"] = {}; + } + if (!("TM" in $$source)) { + this["TM"] = {}; + } + if (!("TMPtr" in $$source)) { + this["TMPtr"] = {}; + } + if (!("CI" in $$source)) { + this["CI"] = {}; + } + if (!("CIPtr" in $$source)) { + this["CIPtr"] = {}; + } + if (!("EI" in $$source)) { + this["EI"] = {}; + } + if (!("EIPtr" in $$source)) { + this["EIPtr"] = {}; + } + if (!("EV" in $$source)) { + this["EV"] = {}; + } + if (!("EVPtr" in $$source)) { + this["EVPtr"] = {}; + } + if (!("EVP" in $$source)) { + this["EVP"] = {}; + } + if (!("EVPPtr" in $$source)) { + this["EVPPtr"] = {}; + } + if (!("EP" in $$source)) { + this["EP"] = {}; + } + if (!("EPPtr" in $$source)) { + this["EPPtr"] = {}; + } + if (!("EPP" in $$source)) { + this["EPP"] = {}; + } + if (!("EPPPtr" in $$source)) { + this["EPPPtr"] = {}; + } + if (!("ECI" in $$source)) { + this["ECI"] = {}; + } + if (!("ECIPtr" in $$source)) { + this["ECIPtr"] = {}; + } + if (!("EOI" in $$source)) { + this["EOI"] = {}; + } + if (!("EOIPtr" in $$source)) { + this["EOIPtr"] = {}; + } + if (!("WT" in $$source)) { + this["WT"] = {}; + } + if (!("WA" in $$source)) { + this["WA"] = {}; + } + if (!("ST" in $$source)) { + this["ST"] = {}; + } + if (!("SA" in $$source)) { + this["SA"] = {}; + } + if (!("IntT" in $$source)) { + this["IntT"] = {}; + } + if (!("IntA" in $$source)) { + this["IntA"] = {}; + } + if (!("VT" in $$source)) { + this["VT"] = {}; + } + if (!("VTPtr" in $$source)) { + this["VTPtr"] = {}; + } + if (!("VPT" in $$source)) { + this["VPT"] = {}; + } + if (!("VPTPtr" in $$source)) { + this["VPTPtr"] = {}; + } + if (!("VA" in $$source)) { + this["VA"] = {}; + } + if (!("VAPtr" in $$source)) { + this["VAPtr"] = {}; + } + if (!("VPA" in $$source)) { + this["VPA"] = {}; + } + if (!("VPAPtr" in $$source)) { + this["VPAPtr"] = {}; + } + if (!("PT" in $$source)) { + this["PT"] = {}; + } + if (!("PTPtr" in $$source)) { + this["PTPtr"] = {}; + } + if (!("PPT" in $$source)) { + this["PPT"] = {}; + } + if (!("PPTPtr" in $$source)) { + this["PPTPtr"] = {}; + } + if (!("PA" in $$source)) { + this["PA"] = {}; + } + if (!("PAPtr" in $$source)) { + this["PAPtr"] = {}; + } + if (!("PPA" in $$source)) { + this["PPA"] = {}; + } + if (!("PPAPtr" in $$source)) { + this["PPAPtr"] = {}; + } + if (!("IT" in $$source)) { + this["IT"] = {}; + } + if (!("ITPtr" in $$source)) { + this["ITPtr"] = {}; + } + if (!("IPT" in $$source)) { + this["IPT"] = {}; + } + if (!("IPTPtr" in $$source)) { + this["IPTPtr"] = {}; + } + if (!("IA" in $$source)) { + this["IA"] = {}; + } + if (!("IAPtr" in $$source)) { + this["IAPtr"] = {}; + } + if (!("IPA" in $$source)) { + this["IPA"] = {}; + } + if (!("IPAPtr" in $$source)) { + this["IPAPtr"] = {}; + } + if (!("TPR" in $$source)) { + this["TPR"] = {}; + } + if (!("TPRPtr" in $$source)) { + this["TPRPtr"] = {}; + } + if (!("TPS" in $$source)) { + this["TPS"] = {}; + } + if (!("TPSPtr" in $$source)) { + this["TPSPtr"] = {}; + } + if (!("TPT" in $$source)) { + this["TPT"] = {}; + } + if (!("TPTPtr" in $$source)) { + this["TPTPtr"] = {}; + } + if (!("TPU" in $$source)) { + this["TPU"] = {}; + } + if (!("TPUPtr" in $$source)) { + this["TPUPtr"] = {}; + } + if (!("TPV" in $$source)) { + this["TPV"] = {}; + } + if (!("TPVPtr" in $$source)) { + this["TPVPtr"] = {}; + } + if (!("TPW" in $$source)) { + this["TPW"] = {}; + } + if (!("TPWPtr" in $$source)) { + this["TPWPtr"] = {}; + } + if (!("TPX" in $$source)) { + this["TPX"] = {}; + } + if (!("TPXPtr" in $$source)) { + this["TPXPtr"] = {}; + } + if (!("TPY" in $$source)) { + this["TPY"] = {}; + } + if (!("TPYPtr" in $$source)) { + this["TPYPtr"] = {}; + } + if (!("TPZ" in $$source)) { + this["TPZ"] = {}; + } + if (!("TPZPtr" in $$source)) { + this["TPZPtr"] = {}; + } + + Object.assign(this, $$source); + } + + /** + * Given creation functions for each type parameter, + * returns a creation function for a concrete instance + * of the generic class Maps. + */ + static createFrom($$createParamR: (source: any) => R, $$createParamS: (source: any) => S, $$createParamT: (source: any) => T, $$createParamU: (source: any) => U, $$createParamV: (source: any) => V, $$createParamW: (source: any) => W, $$createParamX: (source: any) => X, $$createParamY: (source: any) => Y, $$createParamZ: (source: any) => Z): ($$source?: any) => Maps { + const $$createField0_0 = $$createType0; + const $$createField1_0 = $$createType1; + const $$createField2_0 = $$createType2; + const $$createField3_0 = $$createType3; + const $$createField4_0 = $$createType4; + const $$createField5_0 = $$createType5; + const $$createField6_0 = $$createType6; + const $$createField7_0 = $$createType7; + const $$createField8_0 = $$createType8; + const $$createField9_0 = $$createType9; + const $$createField10_0 = $$createType10; + const $$createField11_0 = $$createType11; + const $$createField12_0 = $$createType12; + const $$createField13_0 = $$createType13; + const $$createField14_0 = $$createType14; + const $$createField15_0 = $$createType15; + const $$createField16_0 = $$createType16; + const $$createField17_0 = $$createType17; + const $$createField18_0 = $$createType18; + const $$createField19_0 = $$createType19; + const $$createField20_0 = $$createType20; + const $$createField21_0 = $$createType21; + const $$createField22_0 = $$createType22; + const $$createField23_0 = $$createType23; + const $$createField24_0 = $$createType24; + const $$createField25_0 = $$createType25; + const $$createField26_0 = $$createType26; + const $$createField27_0 = $$createType27; + const $$createField28_0 = $$createType28; + const $$createField29_0 = $$createType29; + const $$createField30_0 = $$createType30; + const $$createField31_0 = $$createType31; + const $$createField32_0 = $$createType32; + const $$createField33_0 = $$createType33; + const $$createField34_0 = $$createType34; + const $$createField35_0 = $$createType35; + const $$createField36_0 = $$createType36; + const $$createField37_0 = $$createType37; + const $$createField38_0 = $$createType38; + const $$createField39_0 = $$createType39; + const $$createField40_0 = $$createType40; + const $$createField41_0 = $$createType41; + const $$createField42_0 = $$createType0; + const $$createField43_0 = $$createType42; + const $$createField44_0 = $$createType7; + const $$createField45_0 = $$createType43; + const $$createField46_0 = $$createType1; + const $$createField47_0 = $$createType44; + const $$createField48_0 = $$createType45; + const $$createField49_0 = $$createType46; + const $$createField50_0 = $$createType47; + const $$createField51_0 = $$createType15; + const $$createField52_0 = $$createType16; + const $$createField53_0 = $$createType16; + const $$createField54_0 = $$createType48; + const $$createField55_0 = $$createType49; + const $$createField56_0 = $$createType50; + const $$createField57_0 = $$createType51; + const $$createField58_0 = $$createType52; + const $$createField59_0 = $$createType17; + const $$createField60_0 = $$createType18; + const $$createField61_0 = $$createType18; + const $$createField62_0 = $$createType53; + const $$createField63_0 = $$createType54; + const $$createField64_0 = $$createType55; + const $$createField65_0 = $$createType56; + const $$createField66_0 = $$createType57; + const $$createField67_0 = $$createType23; + const $$createField68_0 = $$createType24; + const $$createField69_0 = $$createType24; + const $$createField70_0 = $$createType58; + const $$createField71_0 = $$createType59($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField72_0 = $$createType60($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField73_0 = $$createType61($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField74_0 = $$createType62($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField75_0 = $$createType63($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField76_0 = $$createType64($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField77_0 = $$createType65($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField78_0 = $$createType66($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField79_0 = $$createType67($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField80_0 = $$createType68($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField81_0 = $$createType69($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField82_0 = $$createType70($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField83_0 = $$createType71($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField84_0 = $$createType72($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField85_0 = $$createType73($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField86_0 = $$createType74($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField87_0 = $$createType75($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField88_0 = $$createType76($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + return ($$source: any = {}) => { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Bool" in $$parsedSource) { + $$parsedSource["Bool"] = $$createField0_0($$parsedSource["Bool"]); + } + if ("Int" in $$parsedSource) { + $$parsedSource["Int"] = $$createField1_0($$parsedSource["Int"]); + } + if ("Uint" in $$parsedSource) { + $$parsedSource["Uint"] = $$createField2_0($$parsedSource["Uint"]); + } + if ("Float" in $$parsedSource) { + $$parsedSource["Float"] = $$createField3_0($$parsedSource["Float"]); + } + if ("Complex" in $$parsedSource) { + $$parsedSource["Complex"] = $$createField4_0($$parsedSource["Complex"]); + } + if ("Byte" in $$parsedSource) { + $$parsedSource["Byte"] = $$createField5_0($$parsedSource["Byte"]); + } + if ("Rune" in $$parsedSource) { + $$parsedSource["Rune"] = $$createField6_0($$parsedSource["Rune"]); + } + if ("String" in $$parsedSource) { + $$parsedSource["String"] = $$createField7_0($$parsedSource["String"]); + } + if ("IntPtr" in $$parsedSource) { + $$parsedSource["IntPtr"] = $$createField8_0($$parsedSource["IntPtr"]); + } + if ("UintPtr" in $$parsedSource) { + $$parsedSource["UintPtr"] = $$createField9_0($$parsedSource["UintPtr"]); + } + if ("FloatPtr" in $$parsedSource) { + $$parsedSource["FloatPtr"] = $$createField10_0($$parsedSource["FloatPtr"]); + } + if ("ComplexPtr" in $$parsedSource) { + $$parsedSource["ComplexPtr"] = $$createField11_0($$parsedSource["ComplexPtr"]); + } + if ("StringPtr" in $$parsedSource) { + $$parsedSource["StringPtr"] = $$createField12_0($$parsedSource["StringPtr"]); + } + if ("NTM" in $$parsedSource) { + $$parsedSource["NTM"] = $$createField13_0($$parsedSource["NTM"]); + } + if ("NTMPtr" in $$parsedSource) { + $$parsedSource["NTMPtr"] = $$createField14_0($$parsedSource["NTMPtr"]); + } + if ("VTM" in $$parsedSource) { + $$parsedSource["VTM"] = $$createField15_0($$parsedSource["VTM"]); + } + if ("VTMPtr" in $$parsedSource) { + $$parsedSource["VTMPtr"] = $$createField16_0($$parsedSource["VTMPtr"]); + } + if ("PTM" in $$parsedSource) { + $$parsedSource["PTM"] = $$createField17_0($$parsedSource["PTM"]); + } + if ("PTMPtr" in $$parsedSource) { + $$parsedSource["PTMPtr"] = $$createField18_0($$parsedSource["PTMPtr"]); + } + if ("JTM" in $$parsedSource) { + $$parsedSource["JTM"] = $$createField19_0($$parsedSource["JTM"]); + } + if ("JTMPtr" in $$parsedSource) { + $$parsedSource["JTMPtr"] = $$createField20_0($$parsedSource["JTMPtr"]); + } + if ("A" in $$parsedSource) { + $$parsedSource["A"] = $$createField21_0($$parsedSource["A"]); + } + if ("APtr" in $$parsedSource) { + $$parsedSource["APtr"] = $$createField22_0($$parsedSource["APtr"]); + } + if ("TM" in $$parsedSource) { + $$parsedSource["TM"] = $$createField23_0($$parsedSource["TM"]); + } + if ("TMPtr" in $$parsedSource) { + $$parsedSource["TMPtr"] = $$createField24_0($$parsedSource["TMPtr"]); + } + if ("CI" in $$parsedSource) { + $$parsedSource["CI"] = $$createField25_0($$parsedSource["CI"]); + } + if ("CIPtr" in $$parsedSource) { + $$parsedSource["CIPtr"] = $$createField26_0($$parsedSource["CIPtr"]); + } + if ("EI" in $$parsedSource) { + $$parsedSource["EI"] = $$createField27_0($$parsedSource["EI"]); + } + if ("EIPtr" in $$parsedSource) { + $$parsedSource["EIPtr"] = $$createField28_0($$parsedSource["EIPtr"]); + } + if ("EV" in $$parsedSource) { + $$parsedSource["EV"] = $$createField29_0($$parsedSource["EV"]); + } + if ("EVPtr" in $$parsedSource) { + $$parsedSource["EVPtr"] = $$createField30_0($$parsedSource["EVPtr"]); + } + if ("EVP" in $$parsedSource) { + $$parsedSource["EVP"] = $$createField31_0($$parsedSource["EVP"]); + } + if ("EVPPtr" in $$parsedSource) { + $$parsedSource["EVPPtr"] = $$createField32_0($$parsedSource["EVPPtr"]); + } + if ("EP" in $$parsedSource) { + $$parsedSource["EP"] = $$createField33_0($$parsedSource["EP"]); + } + if ("EPPtr" in $$parsedSource) { + $$parsedSource["EPPtr"] = $$createField34_0($$parsedSource["EPPtr"]); + } + if ("EPP" in $$parsedSource) { + $$parsedSource["EPP"] = $$createField35_0($$parsedSource["EPP"]); + } + if ("EPPPtr" in $$parsedSource) { + $$parsedSource["EPPPtr"] = $$createField36_0($$parsedSource["EPPPtr"]); + } + if ("ECI" in $$parsedSource) { + $$parsedSource["ECI"] = $$createField37_0($$parsedSource["ECI"]); + } + if ("ECIPtr" in $$parsedSource) { + $$parsedSource["ECIPtr"] = $$createField38_0($$parsedSource["ECIPtr"]); + } + if ("EOI" in $$parsedSource) { + $$parsedSource["EOI"] = $$createField39_0($$parsedSource["EOI"]); + } + if ("EOIPtr" in $$parsedSource) { + $$parsedSource["EOIPtr"] = $$createField40_0($$parsedSource["EOIPtr"]); + } + if ("WT" in $$parsedSource) { + $$parsedSource["WT"] = $$createField41_0($$parsedSource["WT"]); + } + if ("WA" in $$parsedSource) { + $$parsedSource["WA"] = $$createField42_0($$parsedSource["WA"]); + } + if ("ST" in $$parsedSource) { + $$parsedSource["ST"] = $$createField43_0($$parsedSource["ST"]); + } + if ("SA" in $$parsedSource) { + $$parsedSource["SA"] = $$createField44_0($$parsedSource["SA"]); + } + if ("IntT" in $$parsedSource) { + $$parsedSource["IntT"] = $$createField45_0($$parsedSource["IntT"]); + } + if ("IntA" in $$parsedSource) { + $$parsedSource["IntA"] = $$createField46_0($$parsedSource["IntA"]); + } + if ("VT" in $$parsedSource) { + $$parsedSource["VT"] = $$createField47_0($$parsedSource["VT"]); + } + if ("VTPtr" in $$parsedSource) { + $$parsedSource["VTPtr"] = $$createField48_0($$parsedSource["VTPtr"]); + } + if ("VPT" in $$parsedSource) { + $$parsedSource["VPT"] = $$createField49_0($$parsedSource["VPT"]); + } + if ("VPTPtr" in $$parsedSource) { + $$parsedSource["VPTPtr"] = $$createField50_0($$parsedSource["VPTPtr"]); + } + if ("VA" in $$parsedSource) { + $$parsedSource["VA"] = $$createField51_0($$parsedSource["VA"]); + } + if ("VAPtr" in $$parsedSource) { + $$parsedSource["VAPtr"] = $$createField52_0($$parsedSource["VAPtr"]); + } + if ("VPA" in $$parsedSource) { + $$parsedSource["VPA"] = $$createField53_0($$parsedSource["VPA"]); + } + if ("VPAPtr" in $$parsedSource) { + $$parsedSource["VPAPtr"] = $$createField54_0($$parsedSource["VPAPtr"]); + } + if ("PT" in $$parsedSource) { + $$parsedSource["PT"] = $$createField55_0($$parsedSource["PT"]); + } + if ("PTPtr" in $$parsedSource) { + $$parsedSource["PTPtr"] = $$createField56_0($$parsedSource["PTPtr"]); + } + if ("PPT" in $$parsedSource) { + $$parsedSource["PPT"] = $$createField57_0($$parsedSource["PPT"]); + } + if ("PPTPtr" in $$parsedSource) { + $$parsedSource["PPTPtr"] = $$createField58_0($$parsedSource["PPTPtr"]); + } + if ("PA" in $$parsedSource) { + $$parsedSource["PA"] = $$createField59_0($$parsedSource["PA"]); + } + if ("PAPtr" in $$parsedSource) { + $$parsedSource["PAPtr"] = $$createField60_0($$parsedSource["PAPtr"]); + } + if ("PPA" in $$parsedSource) { + $$parsedSource["PPA"] = $$createField61_0($$parsedSource["PPA"]); + } + if ("PPAPtr" in $$parsedSource) { + $$parsedSource["PPAPtr"] = $$createField62_0($$parsedSource["PPAPtr"]); + } + if ("IT" in $$parsedSource) { + $$parsedSource["IT"] = $$createField63_0($$parsedSource["IT"]); + } + if ("ITPtr" in $$parsedSource) { + $$parsedSource["ITPtr"] = $$createField64_0($$parsedSource["ITPtr"]); + } + if ("IPT" in $$parsedSource) { + $$parsedSource["IPT"] = $$createField65_0($$parsedSource["IPT"]); + } + if ("IPTPtr" in $$parsedSource) { + $$parsedSource["IPTPtr"] = $$createField66_0($$parsedSource["IPTPtr"]); + } + if ("IA" in $$parsedSource) { + $$parsedSource["IA"] = $$createField67_0($$parsedSource["IA"]); + } + if ("IAPtr" in $$parsedSource) { + $$parsedSource["IAPtr"] = $$createField68_0($$parsedSource["IAPtr"]); + } + if ("IPA" in $$parsedSource) { + $$parsedSource["IPA"] = $$createField69_0($$parsedSource["IPA"]); + } + if ("IPAPtr" in $$parsedSource) { + $$parsedSource["IPAPtr"] = $$createField70_0($$parsedSource["IPAPtr"]); + } + if ("TPR" in $$parsedSource) { + $$parsedSource["TPR"] = $$createField71_0($$parsedSource["TPR"]); + } + if ("TPRPtr" in $$parsedSource) { + $$parsedSource["TPRPtr"] = $$createField72_0($$parsedSource["TPRPtr"]); + } + if ("TPS" in $$parsedSource) { + $$parsedSource["TPS"] = $$createField73_0($$parsedSource["TPS"]); + } + if ("TPSPtr" in $$parsedSource) { + $$parsedSource["TPSPtr"] = $$createField74_0($$parsedSource["TPSPtr"]); + } + if ("TPT" in $$parsedSource) { + $$parsedSource["TPT"] = $$createField75_0($$parsedSource["TPT"]); + } + if ("TPTPtr" in $$parsedSource) { + $$parsedSource["TPTPtr"] = $$createField76_0($$parsedSource["TPTPtr"]); + } + if ("TPU" in $$parsedSource) { + $$parsedSource["TPU"] = $$createField77_0($$parsedSource["TPU"]); + } + if ("TPUPtr" in $$parsedSource) { + $$parsedSource["TPUPtr"] = $$createField78_0($$parsedSource["TPUPtr"]); + } + if ("TPV" in $$parsedSource) { + $$parsedSource["TPV"] = $$createField79_0($$parsedSource["TPV"]); + } + if ("TPVPtr" in $$parsedSource) { + $$parsedSource["TPVPtr"] = $$createField80_0($$parsedSource["TPVPtr"]); + } + if ("TPW" in $$parsedSource) { + $$parsedSource["TPW"] = $$createField81_0($$parsedSource["TPW"]); + } + if ("TPWPtr" in $$parsedSource) { + $$parsedSource["TPWPtr"] = $$createField82_0($$parsedSource["TPWPtr"]); + } + if ("TPX" in $$parsedSource) { + $$parsedSource["TPX"] = $$createField83_0($$parsedSource["TPX"]); + } + if ("TPXPtr" in $$parsedSource) { + $$parsedSource["TPXPtr"] = $$createField84_0($$parsedSource["TPXPtr"]); + } + if ("TPY" in $$parsedSource) { + $$parsedSource["TPY"] = $$createField85_0($$parsedSource["TPY"]); + } + if ("TPYPtr" in $$parsedSource) { + $$parsedSource["TPYPtr"] = $$createField86_0($$parsedSource["TPYPtr"]); + } + if ("TPZ" in $$parsedSource) { + $$parsedSource["TPZ"] = $$createField87_0($$parsedSource["TPZ"]); + } + if ("TPZPtr" in $$parsedSource) { + $$parsedSource["TPZPtr"] = $$createField88_0($$parsedSource["TPZPtr"]); + } + return new Maps($$parsedSource as Partial>); + }; + } +} + +export type PointerAlias = PointerTextMarshaler; + +export type PointerTextMarshaler = string; + +export type StringAlias = string; + +export type StringType = string; + +export type ValueAlias = ValueTextMarshaler; + +export type ValueTextMarshaler = string; + +// Private type creation functions +const $$createType0 = $Create.Map($Create.Any, $Create.Any); +const $$createType1 = $Create.Map($Create.Any, $Create.Any); +const $$createType2 = $Create.Map($Create.Any, $Create.Any); +const $$createType3 = $Create.Map($Create.Any, $Create.Any); +const $$createType4 = $Create.Map($Create.Any, $Create.Any); +const $$createType5 = $Create.Map($Create.Any, $Create.Any); +const $$createType6 = $Create.Map($Create.Any, $Create.Any); +const $$createType7 = $Create.Map($Create.Any, $Create.Any); +const $$createType8 = $Create.Map($Create.Any, $Create.Any); +const $$createType9 = $Create.Map($Create.Any, $Create.Any); +const $$createType10 = $Create.Map($Create.Any, $Create.Any); +const $$createType11 = $Create.Map($Create.Any, $Create.Any); +const $$createType12 = $Create.Map($Create.Any, $Create.Any); +const $$createType13 = $Create.Map($Create.Any, $Create.Any); +const $$createType14 = $Create.Map($Create.Any, $Create.Any); +const $$createType15 = $Create.Map($Create.Any, $Create.Any); +const $$createType16 = $Create.Map($Create.Any, $Create.Any); +const $$createType17 = $Create.Map($Create.Any, $Create.Any); +const $$createType18 = $Create.Map($Create.Any, $Create.Any); +const $$createType19 = $Create.Map($Create.Any, $Create.Any); +const $$createType20 = $Create.Map($Create.Any, $Create.Any); +const $$createType21 = $Create.Map($Create.Any, $Create.Any); +const $$createType22 = $Create.Map($Create.Any, $Create.Any); +const $$createType23 = $Create.Map($Create.Any, $Create.Any); +const $$createType24 = $Create.Map($Create.Any, $Create.Any); +const $$createType25 = $Create.Map($Create.Any, $Create.Any); +const $$createType26 = $Create.Map($Create.Any, $Create.Any); +const $$createType27 = $Create.Map($Create.Any, $Create.Any); +const $$createType28 = $Create.Map($Create.Any, $Create.Any); +const $$createType29 = $Create.Map($Create.Any, $Create.Any); +const $$createType30 = $Create.Map($Create.Any, $Create.Any); +const $$createType31 = $Create.Map($Create.Any, $Create.Any); +const $$createType32 = $Create.Map($Create.Any, $Create.Any); +const $$createType33 = $Create.Map($Create.Any, $Create.Any); +const $$createType34 = $Create.Map($Create.Any, $Create.Any); +const $$createType35 = $Create.Map($Create.Any, $Create.Any); +const $$createType36 = $Create.Map($Create.Any, $Create.Any); +const $$createType37 = $Create.Map($Create.Any, $Create.Any); +const $$createType38 = $Create.Map($Create.Any, $Create.Any); +const $$createType39 = $Create.Map($Create.Any, $Create.Any); +const $$createType40 = $Create.Map($Create.Any, $Create.Any); +const $$createType41 = $Create.Map($Create.Any, $Create.Any); +const $$createType42 = $Create.Map($Create.Any, $Create.Any); +const $$createType43 = $Create.Map($Create.Any, $Create.Any); +const $$createType44 = $Create.Map($Create.Any, $Create.Any); +const $$createType45 = $Create.Map($Create.Any, $Create.Any); +const $$createType46 = $Create.Map($Create.Any, $Create.Any); +const $$createType47 = $Create.Map($Create.Any, $Create.Any); +const $$createType48 = $Create.Map($Create.Any, $Create.Any); +const $$createType49 = $Create.Map($Create.Any, $Create.Any); +const $$createType50 = $Create.Map($Create.Any, $Create.Any); +const $$createType51 = $Create.Map($Create.Any, $Create.Any); +const $$createType52 = $Create.Map($Create.Any, $Create.Any); +const $$createType53 = $Create.Map($Create.Any, $Create.Any); +const $$createType54 = $Create.Map($Create.Any, $Create.Any); +const $$createType55 = $Create.Map($Create.Any, $Create.Any); +const $$createType56 = $Create.Map($Create.Any, $Create.Any); +const $$createType57 = $Create.Map($Create.Any, $Create.Any); +const $$createType58 = $Create.Map($Create.Any, $Create.Any); +const $$createType59 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType60 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType61 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType62 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType63 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType64 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType65 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType66 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType67 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType68 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType69 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType70 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType71 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType72 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType73 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType74 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType75 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType76 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.ts new file mode 100644 index 000000000..c8f860953 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.ts @@ -0,0 +1,22 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call, Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +export function Method(): Promise<$models.Maps<$models.PointerTextMarshaler, number, number, $models.ValueTextMarshaler, $models.PointerTextMarshaler | null, $models.ValueTextMarshaler, $models.StringType, $models.ValueTextMarshaler, $models.PointerTextMarshaler | null>> & { cancel(): void } { + let $resultPromise = $Call.ByID(4021345184) as any; + let $typingPromise = $resultPromise.then(($result: any) => { + return $$createType0($result); + }) as any; + $typingPromise.cancel = $resultPromise.cancel.bind($resultPromise); + return $typingPromise; +} + +// Private type creation functions +const $$createType0 = $models.Maps.createFrom($Create.Any, $Create.Any, $Create.Any, $Create.Any, $Create.Any, $Create.Any, $Create.Any, $Create.Any, $Create.Any); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.ts new file mode 100644 index 000000000..bbe49e32f --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.ts @@ -0,0 +1,36 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +export { + Data, + ImplicitNonMarshaler, + NonMarshaler +} from "./models.js"; + +export type { + AliasJsonMarshaler, + AliasMarshaler, + AliasNonMarshaler, + AliasTextMarshaler, + ImplicitJsonButText, + ImplicitJsonMarshaler, + ImplicitMarshaler, + ImplicitNonJson, + ImplicitNonText, + ImplicitTextButJson, + ImplicitTextMarshaler, + PointerJsonMarshaler, + PointerMarshaler, + PointerTextMarshaler, + UnderlyingJsonMarshaler, + UnderlyingMarshaler, + UnderlyingTextMarshaler, + ValueJsonMarshaler, + ValueMarshaler, + ValueTextMarshaler +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.ts new file mode 100644 index 000000000..32cfd9f37 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.ts @@ -0,0 +1,545 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as encoding$0 from "../../../../../../../../encoding/models.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as json$0 from "../../../../../../../../encoding/json/models.js"; + +/** + * any + */ +export type AliasJsonMarshaler = any; + +/** + * any + */ +export type AliasMarshaler = any; + +/** + * struct{} + */ +export interface AliasNonMarshaler { +} + +/** + * string + */ +export type AliasTextMarshaler = string; + +export class Data { + "NM": NonMarshaler; + + /** + * NonMarshaler | null + */ + "NMPtr": NonMarshaler | null; + "VJM": ValueJsonMarshaler; + + /** + * ValueJsonMarshaler | null + */ + "VJMPtr": ValueJsonMarshaler | null; + "PJM": PointerJsonMarshaler; + + /** + * PointerJsonMarshaler | null + */ + "PJMPtr": PointerJsonMarshaler | null; + "VTM": ValueTextMarshaler; + + /** + * ValueTextMarshaler | null + */ + "VTMPtr": ValueTextMarshaler | null; + "PTM": PointerTextMarshaler; + + /** + * PointerTextMarshaler | null + */ + "PTMPtr": PointerTextMarshaler | null; + "VM": ValueMarshaler; + + /** + * ValueMarshaler | null + */ + "VMPtr": ValueMarshaler | null; + "PM": PointerMarshaler; + + /** + * PointerMarshaler | null + */ + "PMPtr": PointerMarshaler | null; + "UJM": UnderlyingJsonMarshaler; + + /** + * UnderlyingJsonMarshaler | null + */ + "UJMPtr": UnderlyingJsonMarshaler | null; + "UTM": UnderlyingTextMarshaler; + + /** + * UnderlyingTextMarshaler | null + */ + "UTMPtr": UnderlyingTextMarshaler | null; + "UM": UnderlyingMarshaler; + + /** + * UnderlyingMarshaler | null + */ + "UMPtr": UnderlyingMarshaler | null; + + /** + * any + */ + "JM": any; + + /** + * any | null + */ + "JMPtr": any | null; + + /** + * string + */ + "TM": string; + + /** + * string | null + */ + "TMPtr": string | null; + + /** + * any + */ + "CJM": any; + + /** + * any | null + */ + "CJMPtr": any | null; + + /** + * string + */ + "CTM": string; + + /** + * string | null + */ + "CTMPtr": string | null; + + /** + * any + */ + "CM": any; + + /** + * any | null + */ + "CMPtr": any | null; + "ANM": AliasNonMarshaler; + + /** + * AliasNonMarshaler | null + */ + "ANMPtr": AliasNonMarshaler | null; + "AJM": AliasJsonMarshaler; + + /** + * AliasJsonMarshaler | null + */ + "AJMPtr": AliasJsonMarshaler | null; + "ATM": AliasTextMarshaler; + + /** + * AliasTextMarshaler | null + */ + "ATMPtr": AliasTextMarshaler | null; + "AM": AliasMarshaler; + + /** + * AliasMarshaler | null + */ + "AMPtr": AliasMarshaler | null; + "ImJM": ImplicitJsonMarshaler; + + /** + * ImplicitJsonMarshaler | null + */ + "ImJMPtr": ImplicitJsonMarshaler | null; + "ImTM": ImplicitTextMarshaler; + + /** + * ImplicitTextMarshaler | null + */ + "ImTMPtr": ImplicitTextMarshaler | null; + "ImM": ImplicitMarshaler; + + /** + * ImplicitMarshaler | null + */ + "ImMPtr": ImplicitMarshaler | null; + "ImNJ": ImplicitNonJson; + + /** + * ImplicitNonJson | null + */ + "ImNJPtr": ImplicitNonJson | null; + "ImNT": ImplicitNonText; + + /** + * ImplicitNonText | null + */ + "ImNTPtr": ImplicitNonText | null; + "ImNM": ImplicitNonMarshaler; + + /** + * ImplicitNonMarshaler | null + */ + "ImNMPtr": ImplicitNonMarshaler | null; + "ImJbT": ImplicitJsonButText; + + /** + * ImplicitJsonButText | null + */ + "ImJbTPtr": ImplicitJsonButText | null; + "ImTbJ": ImplicitTextButJson; + + /** + * ImplicitTextButJson | null + */ + "ImTbJPtr": ImplicitTextButJson | null; + + /** Creates a new Data instance. */ + constructor($$source: Partial = {}) { + if (!("NM" in $$source)) { + this["NM"] = (new NonMarshaler()); + } + if (!("NMPtr" in $$source)) { + this["NMPtr"] = null; + } + if (!("VJM" in $$source)) { + this["VJM"] = null; + } + if (!("VJMPtr" in $$source)) { + this["VJMPtr"] = null; + } + if (!("PJM" in $$source)) { + this["PJM"] = null; + } + if (!("PJMPtr" in $$source)) { + this["PJMPtr"] = null; + } + if (!("VTM" in $$source)) { + this["VTM"] = ""; + } + if (!("VTMPtr" in $$source)) { + this["VTMPtr"] = null; + } + if (!("PTM" in $$source)) { + this["PTM"] = ""; + } + if (!("PTMPtr" in $$source)) { + this["PTMPtr"] = null; + } + if (!("VM" in $$source)) { + this["VM"] = null; + } + if (!("VMPtr" in $$source)) { + this["VMPtr"] = null; + } + if (!("PM" in $$source)) { + this["PM"] = null; + } + if (!("PMPtr" in $$source)) { + this["PMPtr"] = null; + } + if (!("UJM" in $$source)) { + this["UJM"] = null; + } + if (!("UJMPtr" in $$source)) { + this["UJMPtr"] = null; + } + if (!("UTM" in $$source)) { + this["UTM"] = ""; + } + if (!("UTMPtr" in $$source)) { + this["UTMPtr"] = null; + } + if (!("UM" in $$source)) { + this["UM"] = null; + } + if (!("UMPtr" in $$source)) { + this["UMPtr"] = null; + } + if (!("JM" in $$source)) { + this["JM"] = null; + } + if (!("JMPtr" in $$source)) { + this["JMPtr"] = null; + } + if (!("TM" in $$source)) { + this["TM"] = ""; + } + if (!("TMPtr" in $$source)) { + this["TMPtr"] = null; + } + if (!("CJM" in $$source)) { + this["CJM"] = null; + } + if (!("CJMPtr" in $$source)) { + this["CJMPtr"] = null; + } + if (!("CTM" in $$source)) { + this["CTM"] = ""; + } + if (!("CTMPtr" in $$source)) { + this["CTMPtr"] = null; + } + if (!("CM" in $$source)) { + this["CM"] = null; + } + if (!("CMPtr" in $$source)) { + this["CMPtr"] = null; + } + if (!("ANM" in $$source)) { + this["ANM"] = {}; + } + if (!("ANMPtr" in $$source)) { + this["ANMPtr"] = null; + } + if (!("AJM" in $$source)) { + this["AJM"] = null; + } + if (!("AJMPtr" in $$source)) { + this["AJMPtr"] = null; + } + if (!("ATM" in $$source)) { + this["ATM"] = ""; + } + if (!("ATMPtr" in $$source)) { + this["ATMPtr"] = null; + } + if (!("AM" in $$source)) { + this["AM"] = null; + } + if (!("AMPtr" in $$source)) { + this["AMPtr"] = null; + } + if (!("ImJM" in $$source)) { + this["ImJM"] = null; + } + if (!("ImJMPtr" in $$source)) { + this["ImJMPtr"] = null; + } + if (!("ImTM" in $$source)) { + this["ImTM"] = ""; + } + if (!("ImTMPtr" in $$source)) { + this["ImTMPtr"] = null; + } + if (!("ImM" in $$source)) { + this["ImM"] = null; + } + if (!("ImMPtr" in $$source)) { + this["ImMPtr"] = null; + } + if (!("ImNJ" in $$source)) { + this["ImNJ"] = ""; + } + if (!("ImNJPtr" in $$source)) { + this["ImNJPtr"] = null; + } + if (!("ImNT" in $$source)) { + this["ImNT"] = null; + } + if (!("ImNTPtr" in $$source)) { + this["ImNTPtr"] = null; + } + if (!("ImNM" in $$source)) { + this["ImNM"] = (new ImplicitNonMarshaler()); + } + if (!("ImNMPtr" in $$source)) { + this["ImNMPtr"] = null; + } + if (!("ImJbT" in $$source)) { + this["ImJbT"] = null; + } + if (!("ImJbTPtr" in $$source)) { + this["ImJbTPtr"] = null; + } + if (!("ImTbJ" in $$source)) { + this["ImTbJ"] = null; + } + if (!("ImTbJPtr" in $$source)) { + this["ImTbJPtr"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Data instance from a string or object. + */ + static createFrom($$source: any = {}): Data { + const $$createField0_0 = $$createType0; + const $$createField1_0 = $$createType1; + const $$createField48_0 = $$createType2; + const $$createField49_0 = $$createType3; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("NM" in $$parsedSource) { + $$parsedSource["NM"] = $$createField0_0($$parsedSource["NM"]); + } + if ("NMPtr" in $$parsedSource) { + $$parsedSource["NMPtr"] = $$createField1_0($$parsedSource["NMPtr"]); + } + if ("ImNM" in $$parsedSource) { + $$parsedSource["ImNM"] = $$createField48_0($$parsedSource["ImNM"]); + } + if ("ImNMPtr" in $$parsedSource) { + $$parsedSource["ImNMPtr"] = $$createField49_0($$parsedSource["ImNMPtr"]); + } + return new Data($$parsedSource as Partial); + } +} + +/** + * any + */ +export type ImplicitJsonButText = any; + +/** + * any + */ +export type ImplicitJsonMarshaler = any; + +/** + * any + */ +export type ImplicitMarshaler = any; + +/** + * string + */ +export type ImplicitNonJson = string; + +/** + * class{ Marshaler, TextMarshaler } + */ +export class ImplicitNonMarshaler { + "Marshaler": json$0.Marshaler; + "TextMarshaler": encoding$0.TextMarshaler; + + /** Creates a new ImplicitNonMarshaler instance. */ + constructor($$source: Partial = {}) { + if (!("Marshaler" in $$source)) { + this["Marshaler"] = null; + } + if (!("TextMarshaler" in $$source)) { + this["TextMarshaler"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new ImplicitNonMarshaler instance from a string or object. + */ + static createFrom($$source: any = {}): ImplicitNonMarshaler { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new ImplicitNonMarshaler($$parsedSource as Partial); + } +} + +/** + * any + */ +export type ImplicitNonText = any; + +/** + * any + */ +export type ImplicitTextButJson = any; + +/** + * string + */ +export type ImplicitTextMarshaler = string; + +/** + * class {} + */ +export class NonMarshaler { + + /** Creates a new NonMarshaler instance. */ + constructor($$source: Partial = {}) { + + Object.assign(this, $$source); + } + + /** + * Creates a new NonMarshaler instance from a string or object. + */ + static createFrom($$source: any = {}): NonMarshaler { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new NonMarshaler($$parsedSource as Partial); + } +} + +/** + * any + */ +export type PointerJsonMarshaler = any; + +/** + * any + */ +export type PointerMarshaler = any; + +/** + * string + */ +export type PointerTextMarshaler = string; + +/** + * any + */ +export type UnderlyingJsonMarshaler = any; + +/** + * any + */ +export type UnderlyingMarshaler = any; + +/** + * string + */ +export type UnderlyingTextMarshaler = string; + +/** + * any + */ +export type ValueJsonMarshaler = any; + +/** + * any + */ +export type ValueMarshaler = any; + +/** + * string + */ +export type ValueTextMarshaler = string; + +// Private type creation functions +const $$createType0 = NonMarshaler.createFrom; +const $$createType1 = $Create.Nullable($$createType0); +const $$createType2 = ImplicitNonMarshaler.createFrom; +const $$createType3 = $Create.Nullable($$createType2); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.ts new file mode 100644 index 000000000..988af4c84 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.ts @@ -0,0 +1,22 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call, Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +export function Method(): Promise<$models.Data> & { cancel(): void } { + let $resultPromise = $Call.ByID(4021345184) as any; + let $typingPromise = $resultPromise.then(($result: any) => { + return $$createType0($result); + }) as any; + $typingPromise.cancel = $resultPromise.cancel.bind($resultPromise); + return $typingPromise; +} + +// Private type creation functions +const $$createType0 = $models.Data.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.ts index 6bd662438..19d990dbf 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.ts @@ -6,4 +6,9 @@ export { SomeMethods }; -export * from "./models.js"; +export { + HowDifferent, + Impersonator, + Person, + PrivatePerson +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.ts deleted file mode 100644 index da359b283..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.ts +++ /dev/null @@ -1,163 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as other$0 from "./other/models.js"; - -/** - * HowDifferent is a curious kind of person - * that lets other people decide how they are different. - */ -export class HowDifferent { - /** - * They have a name as well. - */ - "Name": string; - - /** - * But they may have many differences. - */ - "Differences": { [_: string]: How | null }[]; - - /** Creates a new HowDifferent instance. */ - constructor($$source: Partial> = {}) { - if (!("Name" in $$source)) { - this["Name"] = ""; - } - if (!("Differences" in $$source)) { - this["Differences"] = []; - } - - Object.assign(this, $$source); - } - - /** - * Given creation functions for each type parameter, - * returns a creation function for a concrete instance - * of the generic class HowDifferent. - */ - static createFrom($$createParamHow: (source: any) => How): ($$source?: any) => HowDifferent { - const $$createField1_0 = $$createType1($$createParamHow); - return ($$source: any = {}) => { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Differences" in $$parsedSource) { - $$parsedSource["Differences"] = $$createField1_0($$parsedSource["Differences"]); - } - return new HowDifferent($$parsedSource as Partial>); - }; - } -} - -/** - * Impersonator gets their fields from other people. - */ -export const Impersonator = other$0.OtherPerson; - -/** - * Impersonator gets their fields from other people. - */ -export type Impersonator = other$0.OtherPerson; - -/** - * Person is not a number. - */ -export class Person { - /** - * They have a name. - */ - "Name": string; - - /** - * Exactly 4 sketchy friends. - */ - "Friends": Impersonator[]; - - /** Creates a new Person instance. */ - constructor($$source: Partial = {}) { - if (!("Name" in $$source)) { - this["Name"] = ""; - } - if (!("Friends" in $$source)) { - this["Friends"] = Array.from({ length: 4 }, () => (new Impersonator())); - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - */ - static createFrom($$source: any = {}): Person { - const $$createField1_0 = $$createType3; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Friends" in $$parsedSource) { - $$parsedSource["Friends"] = $$createField1_0($$parsedSource["Friends"]); - } - return new Person($$parsedSource as Partial); - } -} - -export class personImpl { - /** - * Nickname conceals a person's identity. - */ - "Nickname": string; - - /** - * They have a name. - */ - "Name": string; - - /** - * Exactly 4 sketchy friends. - */ - "Friends": Impersonator[]; - - /** Creates a new personImpl instance. */ - constructor($$source: Partial = {}) { - if (!("Nickname" in $$source)) { - this["Nickname"] = ""; - } - if (!("Name" in $$source)) { - this["Name"] = ""; - } - if (!("Friends" in $$source)) { - this["Friends"] = Array.from({ length: 4 }, () => (new Impersonator())); - } - - Object.assign(this, $$source); - } - - /** - * Creates a new personImpl instance from a string or object. - */ - static createFrom($$source: any = {}): personImpl { - const $$createField2_0 = $$createType3; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Friends" in $$parsedSource) { - $$parsedSource["Friends"] = $$createField2_0($$parsedSource["Friends"]); - } - return new personImpl($$parsedSource as Partial); - } -} - -/** - * PrivatePerson gets their fields from hidden sources. - */ -export const PrivatePerson = personImpl; - -/** - * PrivatePerson gets their fields from hidden sources. - */ -export type PrivatePerson = personImpl; - -// Private type creation functions -const $$createType0 = ($$createParamHow) => $Create.Map($Create.Any, $$createParamHow); -const $$createType1 = ($$createParamHow) => $Create.Array($$createType0($$createParamHow)); -const $$createType2 = Impersonator.createFrom; -const $$createType3 = $Create.Array($$createType2); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.ts index 8f1e34311..6e31400f2 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.ts @@ -1,9 +1,163 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - HowDifferent, - Impersonator, - Person, - PrivatePerson -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as other$0 from "./other/models.js"; + +/** + * HowDifferent is a curious kind of person + * that lets other people decide how they are different. + */ +export class HowDifferent { + /** + * They have a name as well. + */ + "Name": string; + + /** + * But they may have many differences. + */ + "Differences": { [_: string]: How }[]; + + /** Creates a new HowDifferent instance. */ + constructor($$source: Partial> = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Differences" in $$source)) { + this["Differences"] = []; + } + + Object.assign(this, $$source); + } + + /** + * Given creation functions for each type parameter, + * returns a creation function for a concrete instance + * of the generic class HowDifferent. + */ + static createFrom($$createParamHow: (source: any) => How): ($$source?: any) => HowDifferent { + const $$createField1_0 = $$createType1($$createParamHow); + return ($$source: any = {}) => { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Differences" in $$parsedSource) { + $$parsedSource["Differences"] = $$createField1_0($$parsedSource["Differences"]); + } + return new HowDifferent($$parsedSource as Partial>); + }; + } +} + +/** + * Impersonator gets their fields from other people. + */ +export const Impersonator = other$0.OtherPerson; + +/** + * Impersonator gets their fields from other people. + */ +export type Impersonator = other$0.OtherPerson; + +/** + * Person is not a number. + */ +export class Person { + /** + * They have a name. + */ + "Name": string; + + /** + * Exactly 4 sketchy friends. + */ + "Friends": Impersonator[]; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Friends" in $$source)) { + this["Friends"] = Array.from({ length: 4 }, () => (new Impersonator())); + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + */ + static createFrom($$source: any = {}): Person { + const $$createField1_0 = $$createType3; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Friends" in $$parsedSource) { + $$parsedSource["Friends"] = $$createField1_0($$parsedSource["Friends"]); + } + return new Person($$parsedSource as Partial); + } +} + +export class personImpl { + /** + * Nickname conceals a person's identity. + */ + "Nickname": string; + + /** + * They have a name. + */ + "Name": string; + + /** + * Exactly 4 sketchy friends. + */ + "Friends": Impersonator[]; + + /** Creates a new personImpl instance. */ + constructor($$source: Partial = {}) { + if (!("Nickname" in $$source)) { + this["Nickname"] = ""; + } + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Friends" in $$source)) { + this["Friends"] = Array.from({ length: 4 }, () => (new Impersonator())); + } + + Object.assign(this, $$source); + } + + /** + * Creates a new personImpl instance from a string or object. + */ + static createFrom($$source: any = {}): personImpl { + const $$createField2_0 = $$createType3; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Friends" in $$parsedSource) { + $$parsedSource["Friends"] = $$createField2_0($$parsedSource["Friends"]); + } + return new personImpl($$parsedSource as Partial); + } +} + +/** + * PrivatePerson gets their fields from hidden sources. + */ +export const PrivatePerson = personImpl; + +/** + * PrivatePerson gets their fields from hidden sources. + */ +export type PrivatePerson = personImpl; + +// Private type creation functions +const $$createType0 = ($$createParamHow) => $Create.Map($Create.Any, $$createParamHow); +const $$createType1 = ($$createParamHow) => $Create.Array($$createType0($$createParamHow)); +const $$createType2 = other$0.OtherPerson.createFrom($Create.Any); +const $$createType3 = $Create.Array($$createType2); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.ts index 9e85cc3c8..d2d973b28 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.ts @@ -6,4 +6,6 @@ export { OtherMethods }; -export * from "./models.js"; +export { + OtherPerson +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.ts deleted file mode 100644 index 59343c53e..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.ts +++ /dev/null @@ -1,52 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -/** - * OtherPerson is like a person, but different. - */ -export class OtherPerson { - /** - * They have a name as well. - */ - "Name": string; - - /** - * But they may have many differences. - */ - "Differences": (T | null)[]; - - /** Creates a new OtherPerson instance. */ - constructor($$source: Partial> = {}) { - if (!("Name" in $$source)) { - this["Name"] = ""; - } - if (!("Differences" in $$source)) { - this["Differences"] = []; - } - - Object.assign(this, $$source); - } - - /** - * Given creation functions for each type parameter, - * returns a creation function for a concrete instance - * of the generic class OtherPerson. - */ - static createFrom($$createParamT: (source: any) => T): ($$source?: any) => OtherPerson { - const $$createField1_0 = $$createType0($$createParamT); - return ($$source: any = {}) => { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Differences" in $$parsedSource) { - $$parsedSource["Differences"] = $$createField1_0($$parsedSource["Differences"]); - } - return new OtherPerson($$parsedSource as Partial>); - }; - } -} - -// Private type creation functions -const $$createType0 = ($$createParamT) => $Create.Array($$createParamT); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.ts index 01eb4cbda..e41f6e1d3 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.ts @@ -1,6 +1,52 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - OtherPerson -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * OtherPerson is like a person, but different. + */ +export class OtherPerson { + /** + * They have a name as well. + */ + "Name": string; + + /** + * But they may have many differences. + */ + "Differences": T[]; + + /** Creates a new OtherPerson instance. */ + constructor($$source: Partial> = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Differences" in $$source)) { + this["Differences"] = []; + } + + Object.assign(this, $$source); + } + + /** + * Given creation functions for each type parameter, + * returns a creation function for a concrete instance + * of the generic class OtherPerson. + */ + static createFrom($$createParamT: (source: any) => T): ($$source?: any) => OtherPerson { + const $$createField1_0 = $$createType0($$createParamT); + return ($$source: any = {}) => { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Differences" in $$parsedSource) { + $$parsedSource["Differences"] = $$createField1_0($$parsedSource["Differences"]); + } + return new OtherPerson($$parsedSource as Partial>); + }; + } +} + +// Private type creation functions +const $$createType0 = ($$createParamT) => $Create.Array($$createParamT); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.ts index 15835c7ff..303b8b7db 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * LikeThisOne is an example method that does nothing. @@ -40,4 +40,4 @@ export function LikeThisOtherOne(): Promise & { cancel(): void } { // Private type creation functions const $$createType0 = $models.Person.createFrom; const $$createType1 = $models.HowDifferent.createFrom($Create.Any); -const $$createType2 = $models.PrivatePerson.createFrom; +const $$createType2 = $models.personImpl.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/out_of_tree/embedservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/out_of_tree/embedservice.ts index fa47d72a3..7e93dcdb7 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/out_of_tree/embedservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/out_of_tree/embedservice.ts @@ -40,4 +40,4 @@ export function LikeThisOtherOne(): Promise & { cancel(): void } { // Private type creation functions const $$createType0 = nobindingshere$0.Person.createFrom; const $$createType1 = nobindingshere$0.HowDifferent.createFrom($Create.Any); -const $$createType2 = nobindingshere$0.PrivatePerson.createFrom; +const $$createType2 = nobindingshere$0.personImpl.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.ts index 9dec152c9..07b718c99 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.ts index 8e624c826..f95c1b558 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.ts deleted file mode 100644 index 474248f2e..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.ts +++ /dev/null @@ -1,43 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -export class Person { - "Name": string; - "Address": services$0.Address | null; - - /** Creates a new Person instance. */ - constructor($$source: Partial = {}) { - if (!("Name" in $$source)) { - this["Name"] = ""; - } - if (!("Address" in $$source)) { - this["Address"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - */ - static createFrom($$source: any = {}): Person { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Address" in $$parsedSource) { - $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); - } - return new Person($$parsedSource as Partial); - } -} - -// Private type creation functions -const $$createType0 = services$0.Address.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.ts index af8488811..474248f2e 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.ts @@ -1,6 +1,43 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; + +export class Person { + "Name": string; + "Address": services$0.Address | null; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Address" in $$source)) { + this["Address"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + */ + static createFrom($$source: any = {}): Person { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Address" in $$parsedSource) { + $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); + } + return new Person($$parsedSource as Partial); + } +} + +// Private type creation functions +const $$createType0 = services$0.Address.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.ts index 1a5bd5ebf..e4d86b717 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.ts @@ -6,4 +6,6 @@ export { OtherService }; -export * from "./models.js"; +export { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.ts deleted file mode 100644 index eb9c1b6bf..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.ts +++ /dev/null @@ -1,35 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Address { - "Street": string; - "State": string; - "Country": string; - - /** Creates a new Address instance. */ - constructor($$source: Partial
= {}) { - if (!("Street" in $$source)) { - this["Street"] = ""; - } - if (!("State" in $$source)) { - this["State"] = ""; - } - if (!("Country" in $$source)) { - this["Country"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Address instance from a string or object. - */ - static createFrom($$source: any = {}): Address { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Address($$parsedSource as Partial
); - } -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.ts index 826377880..eb9c1b6bf 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.ts @@ -1,6 +1,35 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Address -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Address { + "Street": string; + "State": string; + "Country": string; + + /** Creates a new Address instance. */ + constructor($$source: Partial
= {}) { + if (!("Street" in $$source)) { + this["Street"] = ""; + } + if (!("State" in $$source)) { + this["State"] = ""; + } + if (!("Country" in $$source)) { + this["Country"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Address instance from a string or object. + */ + static createFrom($$source: any = {}): Address { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Address($$parsedSource as Partial
); + } +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.ts index f9f764dcb..7b37ce5d6 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.ts @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.ts index 468b0af9c..7fa3dd502 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; export function ArrayInt($in: number[]): Promise & { cancel(): void } { let $resultPromise = $Call.ByID(3862002418, $in) as any; @@ -102,8 +102,8 @@ export function MapIntInt($in: { [_: `${number}`]: number }): Promise & { return $resultPromise; } -export function MapIntPointerInt($in: { [_: string]: number }): Promise & { cancel(): void } { - let $resultPromise = $Call.ByID(550413585, $in) as any; +export function MapIntIntPointer($in: { [_: `${number}`]: number | null }): Promise & { cancel(): void } { + let $resultPromise = $Call.ByID(2163571325, $in) as any; return $resultPromise; } diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.ts index 8e624c826..f95c1b558 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.ts deleted file mode 100644 index 3dd1908e1..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.ts +++ /dev/null @@ -1,43 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Person { - "Name": string; - "Parent": Person | null; - "Details": {"Age": number, "Address": {"Street": string}}; - - /** Creates a new Person instance. */ - constructor($$source: Partial = {}) { - if (!("Name" in $$source)) { - this["Name"] = ""; - } - if (!("Parent" in $$source)) { - this["Parent"] = null; - } - if (!("Details" in $$source)) { - this["Details"] = {"Age": 0, "Address": {"Street": ""}}; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - */ - static createFrom($$source: any = {}): Person { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Parent" in $$parsedSource) { - $$parsedSource["Parent"] = $$createField1_0($$parsedSource["Parent"]); - } - return new Person($$parsedSource as Partial); - } -} - -// Private type creation functions -const $$createType0 = Person.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.ts index af8488811..3dd1908e1 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.ts @@ -1,6 +1,43 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Person { + "Name": string; + "Parent": Person | null; + "Details": {"Age": number, "Address": {"Street": string}}; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Parent" in $$source)) { + this["Parent"] = null; + } + if (!("Details" in $$source)) { + this["Details"] = {"Age": 0, "Address": {"Street": ""}}; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + */ + static createFrom($$source: any = {}): Person { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Parent" in $$parsedSource) { + $$parsedSource["Parent"] = $$createField1_0($$parsedSource["Parent"]); + } + return new Person($$parsedSource as Partial); + } +} + +// Private type creation functions +const $$createType0 = Person.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.ts index 468b0af9c..7fa3dd502 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; export function ArrayInt($in: number[]): Promise & { cancel(): void } { let $resultPromise = $Call.ByID(3862002418, $in) as any; @@ -102,8 +102,8 @@ export function MapIntInt($in: { [_: `${number}`]: number }): Promise & { return $resultPromise; } -export function MapIntPointerInt($in: { [_: string]: number }): Promise & { cancel(): void } { - let $resultPromise = $Call.ByID(550413585, $in) as any; +export function MapIntIntPointer($in: { [_: `${number}`]: number | null }): Promise & { cancel(): void } { + let $resultPromise = $Call.ByID(2163571325, $in) as any; return $resultPromise; } diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.ts index 8e624c826..f95c1b558 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.ts deleted file mode 100644 index 3dd1908e1..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.ts +++ /dev/null @@ -1,43 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Person { - "Name": string; - "Parent": Person | null; - "Details": {"Age": number, "Address": {"Street": string}}; - - /** Creates a new Person instance. */ - constructor($$source: Partial = {}) { - if (!("Name" in $$source)) { - this["Name"] = ""; - } - if (!("Parent" in $$source)) { - this["Parent"] = null; - } - if (!("Details" in $$source)) { - this["Details"] = {"Age": 0, "Address": {"Street": ""}}; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - */ - static createFrom($$source: any = {}): Person { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Parent" in $$parsedSource) { - $$parsedSource["Parent"] = $$createField1_0($$parsedSource["Parent"]); - } - return new Person($$parsedSource as Partial); - } -} - -// Private type creation functions -const $$createType0 = Person.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.ts index af8488811..3dd1908e1 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.ts @@ -1,6 +1,43 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Person { + "Name": string; + "Parent": Person | null; + "Details": {"Age": number, "Address": {"Street": string}}; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Parent" in $$source)) { + this["Parent"] = null; + } + if (!("Details" in $$source)) { + this["Details"] = {"Age": 0, "Address": {"Street": ""}}; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + */ + static createFrom($$source: any = {}): Person { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Parent" in $$parsedSource) { + $$parsedSource["Parent"] = $$createField1_0($$parsedSource["Parent"]); + } + return new Person($$parsedSource as Partial); + } +} + +// Private type creation functions +const $$createType0 = Person.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.ts index 9dec152c9..07b718c99 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.ts index 8e624c826..f95c1b558 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.ts deleted file mode 100644 index 4442874d2..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.ts +++ /dev/null @@ -1,47 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -/** - * Person is a person! - * They have a name and an address - */ -export class Person { - "Name": string; - "Address": services$0.Address | null; - - /** Creates a new Person instance. */ - constructor($$source: Partial = {}) { - if (!("Name" in $$source)) { - this["Name"] = ""; - } - if (!("Address" in $$source)) { - this["Address"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - */ - static createFrom($$source: any = {}): Person { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Address" in $$parsedSource) { - $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); - } - return new Person($$parsedSource as Partial); - } -} - -// Private type creation functions -const $$createType0 = services$0.Address.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.ts index af8488811..4442874d2 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.ts @@ -1,6 +1,47 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; + +/** + * Person is a person! + * They have a name and an address + */ +export class Person { + "Name": string; + "Address": services$0.Address | null; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Address" in $$source)) { + this["Address"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + */ + static createFrom($$source: any = {}): Person { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Address" in $$parsedSource) { + $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); + } + return new Person($$parsedSource as Partial); + } +} + +// Private type creation functions +const $$createType0 = services$0.Address.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.ts index 1a5bd5ebf..e4d86b717 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.ts @@ -6,4 +6,6 @@ export { OtherService }; -export * from "./models.js"; +export { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.ts deleted file mode 100644 index eb9c1b6bf..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.ts +++ /dev/null @@ -1,35 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Address { - "Street": string; - "State": string; - "Country": string; - - /** Creates a new Address instance. */ - constructor($$source: Partial
= {}) { - if (!("Street" in $$source)) { - this["Street"] = ""; - } - if (!("State" in $$source)) { - this["State"] = ""; - } - if (!("Country" in $$source)) { - this["Country"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Address instance from a string or object. - */ - static createFrom($$source: any = {}): Address { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Address($$parsedSource as Partial
); - } -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.ts index 826377880..eb9c1b6bf 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.ts @@ -1,6 +1,35 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Address -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Address { + "Street": string; + "State": string; + "Country": string; + + /** Creates a new Address instance. */ + constructor($$source: Partial
= {}) { + if (!("Street" in $$source)) { + this["Street"] = ""; + } + if (!("State" in $$source)) { + this["State"] = ""; + } + if (!("Country" in $$source)) { + this["Country"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Address instance from a string or object. + */ + static createFrom($$source: any = {}): Address { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Address($$parsedSource as Partial
); + } +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.ts index bd028e567..04f8b68ea 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.ts @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/warnings.log b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/warnings.log new file mode 100644 index 000000000..dbefd8749 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/warnings.log @@ -0,0 +1,47 @@ +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *R is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *S is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *T is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *U is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *V is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *X is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *Y is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *Z is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *any is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *complex64 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *encoding.TextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *float32 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.CustomInterface is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.EmbeddedInterface is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfaceAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfaceType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.NonTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValueType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *int is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *string is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *uint is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type R is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type T is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type W is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type any is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type bool is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type complex64 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type float32 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.EmbeddedPointer is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.NonTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValueType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.WrongAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.WrongType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/encoding/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/encoding/index.ts new file mode 100644 index 000000000..ba2885969 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/encoding/index.ts @@ -0,0 +1,6 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export type { + TextMarshaler +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/encoding/json/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/encoding/json/index.ts new file mode 100644 index 000000000..00ec01151 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/encoding/json/index.ts @@ -0,0 +1,6 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export type { + Marshaler +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.js b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/encoding/json/models.ts similarity index 55% rename from v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.js rename to v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/encoding/json/models.ts index bbe529175..41353d635 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.js +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/encoding/json/models.ts @@ -1,4 +1,3 @@ -// @ts-check // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT @@ -7,14 +6,7 @@ import {Create as $Create} from "/wails/runtime.js"; /** - * @typedef {Cyclic | null} Alias - */ - -/** - * @typedef {{ [_: string]: Alias }[]} Cyclic - */ - -/** - * @template T - * @typedef {{"X": GenericCyclic | null, "Y": (T | null)[]}[]} GenericCyclic + * Marshaler is the interface implemented by types that + * can marshal themselves into valid JSON. */ +export type Marshaler = any; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/encoding/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/encoding/models.ts new file mode 100644 index 000000000..1ff6fc7ec --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/encoding/models.ts @@ -0,0 +1,14 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * TextMarshaler is the interface implemented by an object that can + * marshal itself into a textual form. + * + * MarshalText encodes the receiver into UTF-8-encoded text and returns the result. + */ +export type TextMarshaler = any; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.ts index d379edae9..fec08acb4 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.ts @@ -12,7 +12,11 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as nobindingshere$0 from "../no_bindings_here/models.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; /** * Get someone. @@ -50,13 +54,22 @@ export function GetButDifferent(): Promise<$models.GenericPerson> & { c return $typingPromise; } +export function GetButForeignPrivateAlias(): Promise & { cancel(): void } { + let $resultPromise = $Call.ByName("main.GreetService.GetButForeignPrivateAlias") as any; + let $typingPromise = $resultPromise.then(($result: any) => { + return $$createType2($result); + }) as any; + $typingPromise.cancel = $resultPromise.cancel.bind($resultPromise); + return $typingPromise; +} + /** * Greet a lot of unusual things. */ export function Greet($0: $models.EmptyAliasStruct, $1: $models.EmptyStruct): Promise<$models.AliasStruct> & { cancel(): void } { let $resultPromise = $Call.ByName("main.GreetService.Greet", $0, $1) as any; let $typingPromise = $resultPromise.then(($result: any) => { - return $$createType5($result); + return $$createType6($result); }) as any; $typingPromise.cancel = $resultPromise.cancel.bind($resultPromise); return $typingPromise; @@ -65,12 +78,13 @@ export function Greet($0: $models.EmptyAliasStruct, $1: $models.EmptyStruct): Pr // Private type creation functions const $$createType0 = $models.Person.createFrom; const $$createType1 = $models.GenericPerson.createFrom($Create.Any); -const $$createType2 = $Create.Array($Create.Any); +const $$createType2 = nobindingshere$0.personImpl.createFrom; const $$createType3 = $Create.Array($Create.Any); -const $$createType4 = $Create.Struct({ - "NoMoreIdeas": $$createType3, -}); +const $$createType4 = $Create.Array($Create.Any); const $$createType5 = $Create.Struct({ - "Foo": $$createType2, - "Other": $$createType4, + "NoMoreIdeas": $$createType4, +}); +const $$createType6 = $Create.Struct({ + "Foo": $$createType3, + "Other": $$createType5, }); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.ts index 8e624c826..b0e392853 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.ts @@ -6,4 +6,17 @@ export { GreetService }; -export * from "./models.js"; +export { + AliasedPerson, + EmptyStruct, + GenericPerson, + Person, + StrangelyAliasedPerson +} from "./models.js"; + +export type { + Alias, + AliasStruct, + EmptyAliasStruct, + OtherAliasStruct +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.ts deleted file mode 100644 index 2501e921e..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.ts +++ /dev/null @@ -1,157 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -/** - * A nice type Alias. - */ -export type Alias = number; - -/** - * A struct alias. - * This should be rendered as a typedef or interface in every mode. - */ -export interface AliasStruct { - /** - * A field with a comment. - */ - "Foo": number[]; - - /** - * Definitely not Foo. - */ - "Bar"?: string; - "Baz"?: string; - - /** - * A nested alias struct. - */ - "Other": OtherAliasStruct; -} - -/** - * An empty struct alias. - */ -export interface EmptyAliasStruct { -} - -/** - * An empty struct. - */ -export class EmptyStruct { - - /** Creates a new EmptyStruct instance. */ - constructor($$source: Partial = {}) { - - Object.assign(this, $$source); - } - - /** - * Creates a new EmptyStruct instance from a string or object. - */ - static createFrom($$source: any = {}): EmptyStruct { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new EmptyStruct($$parsedSource as Partial); - } -} - -/** - * A generic struct containing an alias. - */ -export class GenericPerson { - "Name": T | null; - "AliasedField": Alias; - - /** Creates a new GenericPerson instance. */ - constructor($$source: Partial> = {}) { - if (!("Name" in $$source)) { - this["Name"] = null; - } - if (!("AliasedField" in $$source)) { - this["AliasedField"] = 0; - } - - Object.assign(this, $$source); - } - - /** - * Given creation functions for each type parameter, - * returns a creation function for a concrete instance - * of the generic class GenericPerson. - */ - static createFrom($$createParamT: (source: any) => T): ($$source?: any) => GenericPerson { - const $$createField0_0 = $$createParamT; - return ($$source: any = {}) => { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Name" in $$parsedSource) { - $$parsedSource["Name"] = $$createField0_0($$parsedSource["Name"]); - } - return new GenericPerson($$parsedSource as Partial>); - }; - } -} - -/** - * Another struct alias. - */ -export interface OtherAliasStruct { - "NoMoreIdeas": number[]; -} - -/** - * A non-generic struct containing an alias. - */ -export class Person { - /** - * The Person's name. - */ - "Name": string; - - /** - * A random alias field. - */ - "AliasedField": Alias; - - /** Creates a new Person instance. */ - constructor($$source: Partial = {}) { - if (!("Name" in $$source)) { - this["Name"] = ""; - } - if (!("AliasedField" in $$source)) { - this["AliasedField"] = 0; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - */ - static createFrom($$source: any = {}): Person { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Person($$parsedSource as Partial); - } -} - -/** - * A class alias. - */ -export const AliasedPerson = Person; - -/** - * A class alias. - */ -export type AliasedPerson = Person; - -/** - * Another class alias, but ordered after its aliased class. - */ -export const StrangelyAliasedPerson = Person; - -/** - * Another class alias, but ordered after its aliased class. - */ -export type StrangelyAliasedPerson = Person; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.ts index 48ca89425..481c39bda 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.ts @@ -1,17 +1,154 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - AliasedPerson, - EmptyStruct, - GenericPerson, - Person, - StrangelyAliasedPerson -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; -export type { - Alias, - AliasStruct, - EmptyAliasStruct, - OtherAliasStruct -} from "./internal.js"; +/** + * A nice type Alias. + */ +export type Alias = number; + +/** + * A struct alias. + * This should be rendered as a typedef or interface in every mode. + */ +export interface AliasStruct { + /** + * A field with a comment. + */ + "Foo": number[]; + + /** + * Definitely not Foo. + */ + "Bar"?: string; + "Baz"?: string; + + /** + * A nested alias struct. + */ + "Other": OtherAliasStruct; +} + +/** + * An empty struct alias. + */ +export interface EmptyAliasStruct { +} + +/** + * An empty struct. + */ +export class EmptyStruct { + + /** Creates a new EmptyStruct instance. */ + constructor($$source: Partial = {}) { + + Object.assign(this, $$source); + } + + /** + * Creates a new EmptyStruct instance from a string or object. + */ + static createFrom($$source: any = {}): EmptyStruct { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new EmptyStruct($$parsedSource as Partial); + } +} + +/** + * A generic struct containing an alias. + */ +export class GenericPerson { + "Name"?: T; + "AliasedField": Alias; + + /** Creates a new GenericPerson instance. */ + constructor($$source: Partial> = {}) { + if (!("AliasedField" in $$source)) { + this["AliasedField"] = 0; + } + + Object.assign(this, $$source); + } + + /** + * Given creation functions for each type parameter, + * returns a creation function for a concrete instance + * of the generic class GenericPerson. + */ + static createFrom($$createParamT: (source: any) => T): ($$source?: any) => GenericPerson { + const $$createField0_0 = $$createParamT; + return ($$source: any = {}) => { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Name" in $$parsedSource) { + $$parsedSource["Name"] = $$createField0_0($$parsedSource["Name"]); + } + return new GenericPerson($$parsedSource as Partial>); + }; + } +} + +/** + * Another struct alias. + */ +export interface OtherAliasStruct { + "NoMoreIdeas": number[]; +} + +/** + * A non-generic struct containing an alias. + */ +export class Person { + /** + * The Person's name. + */ + "Name": string; + + /** + * A random alias field. + */ + "AliasedField": Alias; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("AliasedField" in $$source)) { + this["AliasedField"] = 0; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + */ + static createFrom($$source: any = {}): Person { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Person($$parsedSource as Partial); + } +} + +/** + * A class alias. + */ +export const AliasedPerson = Person; + +/** + * A class alias. + */ +export type AliasedPerson = Person; + +/** + * Another class alias, but ordered after its aliased class. + */ +export const StrangelyAliasedPerson = Person; + +/** + * Another class alias, but ordered after its aliased class. + */ +export type StrangelyAliasedPerson = Person; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.ts index eb630a91d..004971239 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.ts index 8e624c826..6cdc52c66 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.ts @@ -6,4 +6,12 @@ export { GreetService }; -export * from "./models.js"; +export { + Embedded1, + Person, + Title +} from "./models.js"; + +export type { + Embedded3 +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.ts deleted file mode 100644 index 026a31d2e..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.ts +++ /dev/null @@ -1,237 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Embedded1 { - /** - * Friends should be shadowed in Person by a field of lesser depth - */ - "Friends": number; - - /** - * Vanish should be omitted from Person because there is another field with same depth and no tag - */ - "Vanish": number; - - /** - * StillThere should be shadowed in Person by other field with same depth and a json tag - */ - "StillThere": string; - - /** - * NamingThingsIsHard is a law of programming - */ - "NamingThingsIsHard": `${boolean}`; - - /** Creates a new Embedded1 instance. */ - constructor($$source: Partial = {}) { - if (!("Friends" in $$source)) { - this["Friends"] = 0; - } - if (!("Vanish" in $$source)) { - this["Vanish"] = 0; - } - if (!("StillThere" in $$source)) { - this["StillThere"] = ""; - } - if (!("NamingThingsIsHard" in $$source)) { - this["NamingThingsIsHard"] = "false"; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Embedded1 instance from a string or object. - */ - static createFrom($$source: any = {}): Embedded1 { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Embedded1($$parsedSource as Partial); - } -} - -export type Embedded3 = string; - -/** - * Person represents a person - */ -export class Person { - /** - * Titles is optional in JSON - */ - "Titles"?: Title[]; - - /** - * Names has a - * multiline comment - */ - "Names": string[]; - - /** - * Partner has a custom and complex JSON key - */ - "Partner": Person | null; - "Friends": (Person | null)[]; - - /** - * NamingThingsIsHard is a law of programming - */ - "NamingThingsIsHard": `${boolean}`; - - /** - * StillThereButRenamed should shadow in Person the other field with same depth and no json tag - */ - "StillThere": Embedded3 | null; - - /** - * StrangeNumber maps to "-" - */ - "-": number; - - /** - * Embedded3 should appear with key "Embedded3" - */ - "Embedded3": Embedded3; - - /** - * StrangerNumber is serialized as a string - */ - "StrangerNumber": `${number}`; - - /** - * StrangestString is optional and serialized as a JSON string - */ - "StrangestString"?: `"${string}"`; - - /** - * StringStrangest is serialized as a JSON string and optional - */ - "StringStrangest"?: `"${string}"`; - - /** - * embedded4 should be optional and appear with key "emb4" - */ - "emb4"?: embedded4; - - /** Creates a new Person instance. */ - constructor($$source: Partial = {}) { - if (!("Names" in $$source)) { - this["Names"] = []; - } - if (!("Partner" in $$source)) { - this["Partner"] = null; - } - if (!("Friends" in $$source)) { - this["Friends"] = []; - } - if (!("NamingThingsIsHard" in $$source)) { - this["NamingThingsIsHard"] = "false"; - } - if (!("StillThere" in $$source)) { - this["StillThere"] = null; - } - if (!("-" in $$source)) { - this["-"] = 0; - } - if (!("Embedded3" in $$source)) { - this["Embedded3"] = ("" as Embedded3); - } - if (!("StrangerNumber" in $$source)) { - this["StrangerNumber"] = "0"; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - */ - static createFrom($$source: any = {}): Person { - const $$createField0_0 = $$createType0; - const $$createField1_0 = $$createType1; - const $$createField2_0 = $$createType3; - const $$createField3_0 = $$createType4; - const $$createField11_0 = $$createType5; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Titles" in $$parsedSource) { - $$parsedSource["Titles"] = $$createField0_0($$parsedSource["Titles"]); - } - if ("Names" in $$parsedSource) { - $$parsedSource["Names"] = $$createField1_0($$parsedSource["Names"]); - } - if ("Partner" in $$parsedSource) { - $$parsedSource["Partner"] = $$createField2_0($$parsedSource["Partner"]); - } - if ("Friends" in $$parsedSource) { - $$parsedSource["Friends"] = $$createField3_0($$parsedSource["Friends"]); - } - if ("emb4" in $$parsedSource) { - $$parsedSource["emb4"] = $$createField11_0($$parsedSource["emb4"]); - } - return new Person($$parsedSource as Partial); - } -} - -/** - * Title is a title - */ -export enum Title { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero = "", - - /** - * Mister is a title - */ - Mister = "Mr", - Miss = "Miss", - Ms = "Ms", - Mrs = "Mrs", - Dr = "Dr", -}; - -export class embedded4 { - /** - * NamingThingsIsHard is a law of programming - */ - "NamingThingsIsHard": `${boolean}`; - - /** - * Friends should not be shadowed in Person as embedded4 is not embedded - * from encoding/json's point of view; - * however, it should be shadowed in Embedded1 - */ - "Friends": boolean; - - /** Creates a new embedded4 instance. */ - constructor($$source: Partial = {}) { - if (!("NamingThingsIsHard" in $$source)) { - this["NamingThingsIsHard"] = "false"; - } - if (!("Friends" in $$source)) { - this["Friends"] = false; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new embedded4 instance from a string or object. - */ - static createFrom($$source: any = {}): embedded4 { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new embedded4($$parsedSource as Partial); - } -} - -// Private type creation functions -const $$createType0 = $Create.Array($Create.Any); -const $$createType1 = $Create.Array($Create.Any); -const $$createType2 = Person.createFrom; -const $$createType3 = $Create.Nullable($$createType2); -const $$createType4 = $Create.Array($$createType3); -const $$createType5 = embedded4.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.ts index 56a4bb659..2ff5d6635 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.ts @@ -1,12 +1,237 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Embedded1, - Person, - Title -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; -export type { - Embedded3 -} from "./internal.js"; +export class Embedded1 { + /** + * Friends should be shadowed in Person by a field of lesser depth + */ + "Friends": number; + + /** + * Vanish should be omitted from Person because there is another field with same depth and no tag + */ + "Vanish": number; + + /** + * StillThere should be shadowed in Person by other field with same depth and a json tag + */ + "StillThere": string; + + /** + * NamingThingsIsHard is a law of programming + */ + "NamingThingsIsHard": `${boolean}`; + + /** Creates a new Embedded1 instance. */ + constructor($$source: Partial = {}) { + if (!("Friends" in $$source)) { + this["Friends"] = 0; + } + if (!("Vanish" in $$source)) { + this["Vanish"] = 0; + } + if (!("StillThere" in $$source)) { + this["StillThere"] = ""; + } + if (!("NamingThingsIsHard" in $$source)) { + this["NamingThingsIsHard"] = "false"; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Embedded1 instance from a string or object. + */ + static createFrom($$source: any = {}): Embedded1 { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Embedded1($$parsedSource as Partial); + } +} + +export type Embedded3 = string; + +/** + * Person represents a person + */ +export class Person { + /** + * Titles is optional in JSON + */ + "Titles"?: Title[]; + + /** + * Names has a + * multiline comment + */ + "Names": string[]; + + /** + * Partner has a custom and complex JSON key + */ + "Partner": Person | null; + "Friends": (Person | null)[]; + + /** + * NamingThingsIsHard is a law of programming + */ + "NamingThingsIsHard": `${boolean}`; + + /** + * StillThereButRenamed should shadow in Person the other field with same depth and no json tag + */ + "StillThere": Embedded3 | null; + + /** + * StrangeNumber maps to "-" + */ + "-": number; + + /** + * Embedded3 should appear with key "Embedded3" + */ + "Embedded3": Embedded3; + + /** + * StrangerNumber is serialized as a string + */ + "StrangerNumber": `${number}`; + + /** + * StrangestString is optional and serialized as a JSON string + */ + "StrangestString"?: `"${string}"`; + + /** + * StringStrangest is serialized as a JSON string and optional + */ + "StringStrangest"?: `"${string}"`; + + /** + * embedded4 should be optional and appear with key "emb4" + */ + "emb4"?: embedded4; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Names" in $$source)) { + this["Names"] = []; + } + if (!("Partner" in $$source)) { + this["Partner"] = null; + } + if (!("Friends" in $$source)) { + this["Friends"] = []; + } + if (!("NamingThingsIsHard" in $$source)) { + this["NamingThingsIsHard"] = "false"; + } + if (!("StillThere" in $$source)) { + this["StillThere"] = null; + } + if (!("-" in $$source)) { + this["-"] = 0; + } + if (!("Embedded3" in $$source)) { + this["Embedded3"] = ""; + } + if (!("StrangerNumber" in $$source)) { + this["StrangerNumber"] = "0"; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + */ + static createFrom($$source: any = {}): Person { + const $$createField0_0 = $$createType0; + const $$createField1_0 = $$createType1; + const $$createField2_0 = $$createType3; + const $$createField3_0 = $$createType4; + const $$createField11_0 = $$createType5; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Titles" in $$parsedSource) { + $$parsedSource["Titles"] = $$createField0_0($$parsedSource["Titles"]); + } + if ("Names" in $$parsedSource) { + $$parsedSource["Names"] = $$createField1_0($$parsedSource["Names"]); + } + if ("Partner" in $$parsedSource) { + $$parsedSource["Partner"] = $$createField2_0($$parsedSource["Partner"]); + } + if ("Friends" in $$parsedSource) { + $$parsedSource["Friends"] = $$createField3_0($$parsedSource["Friends"]); + } + if ("emb4" in $$parsedSource) { + $$parsedSource["emb4"] = $$createField11_0($$parsedSource["emb4"]); + } + return new Person($$parsedSource as Partial); + } +} + +/** + * Title is a title + */ +export enum Title { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = "", + + /** + * Mister is a title + */ + Mister = "Mr", + Miss = "Miss", + Ms = "Ms", + Mrs = "Mrs", + Dr = "Dr", +}; + +export class embedded4 { + /** + * NamingThingsIsHard is a law of programming + */ + "NamingThingsIsHard": `${boolean}`; + + /** + * Friends should not be shadowed in Person as embedded4 is not embedded + * from encoding/json's point of view; + * however, it should be shadowed in Embedded1 + */ + "Friends": boolean; + + /** Creates a new embedded4 instance. */ + constructor($$source: Partial = {}) { + if (!("NamingThingsIsHard" in $$source)) { + this["NamingThingsIsHard"] = "false"; + } + if (!("Friends" in $$source)) { + this["Friends"] = false; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new embedded4 instance from a string or object. + */ + static createFrom($$source: any = {}): embedded4 { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new embedded4($$parsedSource as Partial); + } +} + +// Private type creation functions +const $$createType0 = $Create.Array($Create.Any); +const $$createType1 = $Create.Array($Create.Any); +const $$createType2 = Person.createFrom; +const $$createType3 = $Create.Nullable($$createType2); +const $$createType4 = $Create.Array($$createType3); +const $$createType5 = embedded4.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.ts index 2633d1f2d..45311c10c 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.ts index 8e624c826..f95c1b558 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.ts deleted file mode 100644 index 66dc14092..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/internal.ts +++ /dev/null @@ -1,30 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -/** - * Person represents a person - */ -export class Person { - "Name": string; - - /** Creates a new Person instance. */ - constructor($$source: Partial = {}) { - if (!("Name" in $$source)) { - this["Name"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - */ - static createFrom($$source: any = {}): Person { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Person($$parsedSource as Partial); - } -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.ts index af8488811..66dc14092 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.ts @@ -1,6 +1,30 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * Person represents a person + */ +export class Person { + "Name": string; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + */ + static createFrom($$source: any = {}): Person { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Person($$parsedSource as Partial); + } +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.ts index 4550785d8..d6525e21b 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Make a cycle. diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.ts index 8e624c826..4b190b8da 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.ts @@ -6,4 +6,8 @@ export { GreetService }; -export * from "./models.js"; +export { + StructA, + StructC, + StructE +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.ts deleted file mode 100644 index a79d42f32..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.ts +++ /dev/null @@ -1,131 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class StructA { - "B": structB | null; - - /** Creates a new StructA instance. */ - constructor($$source: Partial = {}) { - if (!("B" in $$source)) { - this["B"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new StructA instance from a string or object. - */ - static createFrom($$source: any = {}): StructA { - const $$createField0_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("B" in $$parsedSource) { - $$parsedSource["B"] = $$createField0_0($$parsedSource["B"]); - } - return new StructA($$parsedSource as Partial); - } -} - -export class StructC { - "D": structD; - - /** Creates a new StructC instance. */ - constructor($$source: Partial = {}) { - if (!("D" in $$source)) { - this["D"] = (new structD()); - } - - Object.assign(this, $$source); - } - - /** - * Creates a new StructC instance from a string or object. - */ - static createFrom($$source: any = {}): StructC { - const $$createField0_0 = $$createType2; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("D" in $$parsedSource) { - $$parsedSource["D"] = $$createField0_0($$parsedSource["D"]); - } - return new StructC($$parsedSource as Partial); - } -} - -export class StructE { - - /** Creates a new StructE instance. */ - constructor($$source: Partial = {}) { - - Object.assign(this, $$source); - } - - /** - * Creates a new StructE instance from a string or object. - */ - static createFrom($$source: any = {}): StructE { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new StructE($$parsedSource as Partial); - } -} - -export class structB { - "A": StructA | null; - - /** Creates a new structB instance. */ - constructor($$source: Partial = {}) { - if (!("A" in $$source)) { - this["A"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new structB instance from a string or object. - */ - static createFrom($$source: any = {}): structB { - const $$createField0_0 = $$createType4; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("A" in $$parsedSource) { - $$parsedSource["A"] = $$createField0_0($$parsedSource["A"]); - } - return new structB($$parsedSource as Partial); - } -} - -export class structD { - "E": StructE; - - /** Creates a new structD instance. */ - constructor($$source: Partial = {}) { - if (!("E" in $$source)) { - this["E"] = (new StructE()); - } - - Object.assign(this, $$source); - } - - /** - * Creates a new structD instance from a string or object. - */ - static createFrom($$source: any = {}): structD { - const $$createField0_0 = $$createType5; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("E" in $$parsedSource) { - $$parsedSource["E"] = $$createField0_0($$parsedSource["E"]); - } - return new structD($$parsedSource as Partial); - } -} - -// Private type creation functions -const $$createType0 = structB.createFrom; -const $$createType1 = $Create.Nullable($$createType0); -const $$createType2 = structD.createFrom; -const $$createType3 = StructA.createFrom; -const $$createType4 = $Create.Nullable($$createType3); -const $$createType5 = StructE.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.ts index f6997135d..a79d42f32 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.ts @@ -1,8 +1,131 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - StructA, - StructC, - StructE -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class StructA { + "B": structB | null; + + /** Creates a new StructA instance. */ + constructor($$source: Partial = {}) { + if (!("B" in $$source)) { + this["B"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new StructA instance from a string or object. + */ + static createFrom($$source: any = {}): StructA { + const $$createField0_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("B" in $$parsedSource) { + $$parsedSource["B"] = $$createField0_0($$parsedSource["B"]); + } + return new StructA($$parsedSource as Partial); + } +} + +export class StructC { + "D": structD; + + /** Creates a new StructC instance. */ + constructor($$source: Partial = {}) { + if (!("D" in $$source)) { + this["D"] = (new structD()); + } + + Object.assign(this, $$source); + } + + /** + * Creates a new StructC instance from a string or object. + */ + static createFrom($$source: any = {}): StructC { + const $$createField0_0 = $$createType2; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("D" in $$parsedSource) { + $$parsedSource["D"] = $$createField0_0($$parsedSource["D"]); + } + return new StructC($$parsedSource as Partial); + } +} + +export class StructE { + + /** Creates a new StructE instance. */ + constructor($$source: Partial = {}) { + + Object.assign(this, $$source); + } + + /** + * Creates a new StructE instance from a string or object. + */ + static createFrom($$source: any = {}): StructE { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new StructE($$parsedSource as Partial); + } +} + +export class structB { + "A": StructA | null; + + /** Creates a new structB instance. */ + constructor($$source: Partial = {}) { + if (!("A" in $$source)) { + this["A"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new structB instance from a string or object. + */ + static createFrom($$source: any = {}): structB { + const $$createField0_0 = $$createType4; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("A" in $$parsedSource) { + $$parsedSource["A"] = $$createField0_0($$parsedSource["A"]); + } + return new structB($$parsedSource as Partial); + } +} + +export class structD { + "E": StructE; + + /** Creates a new structD instance. */ + constructor($$source: Partial = {}) { + if (!("E" in $$source)) { + this["E"] = (new StructE()); + } + + Object.assign(this, $$source); + } + + /** + * Creates a new structD instance from a string or object. + */ + static createFrom($$source: any = {}): structD { + const $$createField0_0 = $$createType5; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("E" in $$parsedSource) { + $$parsedSource["E"] = $$createField0_0($$parsedSource["E"]); + } + return new structD($$parsedSource as Partial); + } +} + +// Private type creation functions +const $$createType0 = structB.createFrom; +const $$createType1 = $Create.Nullable($$createType0); +const $$createType2 = structD.createFrom; +const $$createType3 = StructA.createFrom; +const $$createType4 = $Create.Nullable($$createType3); +const $$createType5 = StructE.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.ts index db33f4ba0..3af14c1c5 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Make a cycle. diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.ts index 8e624c826..16cef660c 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.ts @@ -6,4 +6,8 @@ export { GreetService }; -export * from "./models.js"; +export type { + Alias, + Cyclic, + GenericCyclic +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.ts index e4c804503..ed98e9791 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.ts @@ -1,8 +1,12 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Alias, - Cyclic, - GenericCyclic -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export type Alias = Cyclic | null; + +export type Cyclic = { [_: string]: Alias }[]; + +export type GenericCyclic = {"X": GenericCyclic | null, "Y": T[]}[]; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.ts new file mode 100644 index 000000000..b9fbdba96 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.ts @@ -0,0 +1,13 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +console.log("Hello everywhere!"); +console.log("Hello everywhere again!"); +console.log("Hello Classes!"); +console.log("Hello TS!"); +console.log("Hello TS Classes!"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.ts new file mode 100644 index 000000000..e464032ee --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.ts @@ -0,0 +1,20 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * An exported but internal service. + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call, Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +export function Method($0: $models.InternalModel): Promise & { cancel(): void } { + let $resultPromise = $Call.ByName("main.InternalService.Method", $0) as any; + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.ts new file mode 100644 index 000000000..489296e23 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.ts @@ -0,0 +1,54 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * An exported but internal model. + */ +export class InternalModel { + "Field": string; + + /** Creates a new InternalModel instance. */ + constructor($$source: Partial = {}) { + if (!("Field" in $$source)) { + this["Field"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new InternalModel instance from a string or object. + */ + static createFrom($$source: any = {}): InternalModel { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new InternalModel($$parsedSource as Partial); + } +} + +/** + * An unexported model. + */ +export class unexportedModel { + "Field": string; + + /** Creates a new unexportedModel instance. */ + constructor($$source: Partial = {}) { + if (!("Field" in $$source)) { + this["Field"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new unexportedModel instance from a string or object. + */ + static createFrom($$source: any = {}): unexportedModel { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new unexportedModel($$parsedSource as Partial); + } +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.ts new file mode 100644 index 000000000..e52a0ccb8 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.ts @@ -0,0 +1,6 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export { + Dummy +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.ts new file mode 100644 index 000000000..209ade5da --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.ts @@ -0,0 +1,23 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Dummy { + + /** Creates a new Dummy instance. */ + constructor($$source: Partial = {}) { + + Object.assign(this, $$source); + } + + /** + * Creates a new Dummy instance from a string or object. + */ + static createFrom($$source: any = {}): Dummy { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Dummy($$parsedSource as Partial); + } +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_t.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_t.ts new file mode 100644 index 000000000..6703820f1 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_t.ts @@ -0,0 +1,3 @@ +import { CustomMethod } from "../service.js"; + +CustomMethod("TS"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_tc.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_tc.ts new file mode 100644 index 000000000..15d2994e9 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/test_tc.ts @@ -0,0 +1,3 @@ +import { CustomMethod } from "../service.js"; + +CustomMethod("TS Classes"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.ts new file mode 100644 index 000000000..9b4d0265f --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.ts @@ -0,0 +1,24 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call, Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as otherpackage$0 from "./otherpackage/models.js"; + +function InternalMethod($0: string): Promise & { cancel(): void } { + let $resultPromise = $Call.ByName("main.Service.InternalMethod", $0) as any; + return $resultPromise; +} + +export function VisibleMethod($0: otherpackage$0.Dummy): Promise & { cancel(): void } { + let $resultPromise = $Call.ByName("main.Service.VisibleMethod", $0) as any; + return $resultPromise; +} + +export async function CustomMethod(arg: string): Promise { + await InternalMethod("Hello " + arg + "!"); +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js new file mode 100644 index 000000000..138385f53 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("everywhere"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js new file mode 100644 index 000000000..19d5c2f42 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("everywhere again"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_c.js b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_c.js new file mode 100644 index 000000000..724e79e12 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_c.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("Classes"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_t.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_t.ts new file mode 100644 index 000000000..253d3f2f6 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_t.ts @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("TS"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_tc.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_tc.ts new file mode 100644 index 000000000..66b739d3a --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_tc.ts @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("TS Classes"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.ts new file mode 100644 index 000000000..97c0acf11 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.ts @@ -0,0 +1,20 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * An unexported service. + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call, Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +export function Method($0: $models.unexportedModel): Promise & { cancel(): void } { + let $resultPromise = $Call.ByName("main.unexportedService.Method", $0) as any; + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.ts index 1145378dd..3fdf09b81 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.ts index 8e624c826..3b4d2f5c6 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.ts @@ -6,4 +6,8 @@ export { GreetService }; -export * from "./models.js"; +export { + Age, + Person, + Title +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.ts deleted file mode 100644 index bc7cd4964..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.ts +++ /dev/null @@ -1,53 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -/** - * Person represents a person - */ -export class Person { - "Title": Title; - "Name": string; - - /** Creates a new Person instance. */ - constructor($$source: Partial = {}) { - if (!("Title" in $$source)) { - this["Title"] = ("" as Title); - } - if (!("Name" in $$source)) { - this["Name"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - */ - static createFrom($$source: any = {}): Person { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Person($$parsedSource as Partial); - } -} - -/** - * Title is a title - */ -export enum Title { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero = "", - - /** - * Mister is a title - */ - Mister = "Mr", - Miss = "Miss", - Ms = "Ms", - Mrs = "Mrs", - Dr = "Dr", -}; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.ts index 728210dfb..7b8cbf2fc 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.ts @@ -1,7 +1,82 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person, - Title -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * Age is an integer with some predefined values + */ +export type Age = number; + +/** + * Predefined constants for type Age. + * @namespace + */ +export const Age = { + NewBorn: 0, + Teenager: 12, + YoungAdult: 18, + + /** + * Oh no, some grey hair! + */ + MiddleAged: 50, + + /** + * Unbelievable! + */ + Mathusalem: 1000, +}; + +/** + * Person represents a person + */ +export class Person { + "Title": Title; + "Name": string; + "Age": Age; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Title" in $$source)) { + this["Title"] = Title.$zero; + } + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Age" in $$source)) { + this["Age"] = 0; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + */ + static createFrom($$source: any = {}): Person { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Person($$parsedSource as Partial); + } +} + +/** + * Title is a title + */ +export enum Title { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = "", + + /** + * Mister is a title + */ + Mister = "Mr", + Miss = "Miss", + Ms = "Ms", + Mrs = "Mrs", + Dr = "Dr", +}; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.ts index c9d993ab7..01c612edc 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.ts @@ -1,4 +1,6 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export * from "./models.js"; +export { + Title +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.ts deleted file mode 100644 index 335543dbb..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.ts +++ /dev/null @@ -1,22 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export enum Title { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero = "", - - /** - * Mister is a title - */ - Mister = "Mr", - Miss = "Miss", - Ms = "Ms", - Mrs = "Mrs", - Dr = "Dr", -}; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.ts index e8981fc5e..335543dbb 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.ts @@ -1,6 +1,22 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Title -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export enum Title { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = "", + + /** + * Mister is a title + */ + Mister = "Mr", + Miss = "Miss", + Ms = "Ms", + Mrs = "Mrs", + Dr = "Dr", +}; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.ts index d7dea4fba..49c20faa3 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.ts index 8e624c826..f95c1b558 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.ts deleted file mode 100644 index 02707e2ca..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.ts +++ /dev/null @@ -1,46 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -/** - * Person is a person - */ -export class Person { - "Name": string; - "Address": services$0.Address | null; - - /** Creates a new Person instance. */ - constructor($$source: Partial = {}) { - if (!("Name" in $$source)) { - this["Name"] = ""; - } - if (!("Address" in $$source)) { - this["Address"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - */ - static createFrom($$source: any = {}): Person { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Address" in $$parsedSource) { - $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); - } - return new Person($$parsedSource as Partial); - } -} - -// Private type creation functions -const $$createType0 = services$0.Address.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.ts index af8488811..02707e2ca 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.ts @@ -1,6 +1,46 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; + +/** + * Person is a person + */ +export class Person { + "Name": string; + "Address": services$0.Address | null; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Address" in $$source)) { + this["Address"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + */ + static createFrom($$source: any = {}): Person { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Address" in $$parsedSource) { + $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); + } + return new Person($$parsedSource as Partial); + } +} + +// Private type creation functions +const $$createType0 = services$0.Address.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.ts index 1a5bd5ebf..e4d86b717 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.ts @@ -6,4 +6,6 @@ export { OtherService }; -export * from "./models.js"; +export { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.ts deleted file mode 100644 index eb9c1b6bf..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.ts +++ /dev/null @@ -1,35 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Address { - "Street": string; - "State": string; - "Country": string; - - /** Creates a new Address instance. */ - constructor($$source: Partial
= {}) { - if (!("Street" in $$source)) { - this["Street"] = ""; - } - if (!("State" in $$source)) { - this["State"] = ""; - } - if (!("Country" in $$source)) { - this["Country"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Address instance from a string or object. - */ - static createFrom($$source: any = {}): Address { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Address($$parsedSource as Partial
); - } -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.ts index 826377880..eb9c1b6bf 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.ts @@ -1,6 +1,35 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Address -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Address { + "Street": string; + "State": string; + "Country": string; + + /** Creates a new Address instance. */ + constructor($$source: Partial
= {}) { + if (!("Street" in $$source)) { + this["Street"] = ""; + } + if (!("State" in $$source)) { + this["State"] = ""; + } + if (!("Country" in $$source)) { + this["Country"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Address instance from a string or object. + */ + static createFrom($$source: any = {}): Address { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Address($$parsedSource as Partial
); + } +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.ts index 9a75a5c05..7423db695 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.ts @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.ts index d7dea4fba..49c20faa3 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.ts index 8e624c826..f95c1b558 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.ts deleted file mode 100644 index c4a6d39ee..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.ts +++ /dev/null @@ -1,43 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as other$0 from "./services/other/models.js"; - -export class Person { - "Name": string; - "Address": other$0.Address | null; - - /** Creates a new Person instance. */ - constructor($$source: Partial = {}) { - if (!("Name" in $$source)) { - this["Name"] = ""; - } - if (!("Address" in $$source)) { - this["Address"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - */ - static createFrom($$source: any = {}): Person { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Address" in $$parsedSource) { - $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); - } - return new Person($$parsedSource as Partial); - } -} - -// Private type creation functions -const $$createType0 = other$0.Address.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.ts index af8488811..c4a6d39ee 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.ts @@ -1,6 +1,43 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as other$0 from "./services/other/models.js"; + +export class Person { + "Name": string; + "Address": other$0.Address | null; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Address" in $$source)) { + this["Address"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + */ + static createFrom($$source: any = {}): Person { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Address" in $$parsedSource) { + $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); + } + return new Person($$parsedSource as Partial); + } +} + +// Private type creation functions +const $$createType0 = other$0.Address.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.ts index 1a5bd5ebf..e4d86b717 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.ts @@ -6,4 +6,6 @@ export { OtherService }; -export * from "./models.js"; +export { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.ts deleted file mode 100644 index eb9c1b6bf..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.ts +++ /dev/null @@ -1,35 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Address { - "Street": string; - "State": string; - "Country": string; - - /** Creates a new Address instance. */ - constructor($$source: Partial
= {}) { - if (!("Street" in $$source)) { - this["Street"] = ""; - } - if (!("State" in $$source)) { - this["State"] = ""; - } - if (!("Country" in $$source)) { - this["Country"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Address instance from a string or object. - */ - static createFrom($$source: any = {}): Address { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Address($$parsedSource as Partial
); - } -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.ts index 826377880..eb9c1b6bf 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.ts @@ -1,6 +1,35 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Address -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Address { + "Street": string; + "State": string; + "Country": string; + + /** Creates a new Address instance. */ + constructor($$source: Partial
= {}) { + if (!("Street" in $$source)) { + this["Street"] = ""; + } + if (!("State" in $$source)) { + this["State"] = ""; + } + if (!("Country" in $$source)) { + this["Country"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Address instance from a string or object. + */ + static createFrom($$source: any = {}): Address { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Address($$parsedSource as Partial
); + } +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.ts index d191a7d90..27084cac3 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.ts @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.ts new file mode 100644 index 000000000..1f4f65dda --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.ts @@ -0,0 +1,26 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +export { + Maps +} from "./models.js"; + +export type { + EmbeddedCustomInterface, + EmbeddedOriginalInterface, + EmbeddedPointer, + EmbeddedPointerPtr, + EmbeddedValue, + EmbeddedValuePtr, + PointerAlias, + PointerTextMarshaler, + StringAlias, + StringType, + ValueAlias, + ValueTextMarshaler +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.ts new file mode 100644 index 000000000..d858ddf9a --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.ts @@ -0,0 +1,1197 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export type EmbeddedCustomInterface = string; + +export type EmbeddedOriginalInterface = string; + +export type EmbeddedPointer = string; + +export type EmbeddedPointerPtr = string; + +export type EmbeddedValue = string; + +export type EmbeddedValuePtr = string; + +export class Maps { + /** + * Reject + */ + "Bool": { [_: string]: number }; + + /** + * Accept + */ + "Int": { [_: `${number}`]: number }; + + /** + * Accept + */ + "Uint": { [_: `${number}`]: number }; + + /** + * Reject + */ + "Float": { [_: string]: number }; + + /** + * Reject + */ + "Complex": { [_: string]: number }; + + /** + * Accept + */ + "Byte": { [_: `${number}`]: number }; + + /** + * Accept + */ + "Rune": { [_: `${number}`]: number }; + + /** + * Accept + */ + "String": { [_: string]: number }; + + /** + * Reject + */ + "IntPtr": { [_: string]: number }; + + /** + * Reject + */ + "UintPtr": { [_: string]: number }; + + /** + * Reject + */ + "FloatPtr": { [_: string]: number }; + + /** + * Reject + */ + "ComplexPtr": { [_: string]: number }; + + /** + * Reject + */ + "StringPtr": { [_: string]: number }; + + /** + * Reject + */ + "NTM": { [_: string]: number }; + + /** + * Reject + */ + "NTMPtr": { [_: string]: number }; + + /** + * Accept + */ + "VTM": { [_: ValueTextMarshaler]: number }; + + /** + * Accept + */ + "VTMPtr": { [_: ValueTextMarshaler]: number }; + + /** + * Reject + */ + "PTM": { [_: string]: number }; + + /** + * Accept + */ + "PTMPtr": { [_: PointerTextMarshaler]: number }; + + /** + * Accept, hide + */ + "JTM": { [_: string]: number }; + + /** + * Accept, hide + */ + "JTMPtr": { [_: string]: number }; + + /** + * Reject + */ + "A": { [_: string]: number }; + + /** + * Reject + */ + "APtr": { [_: string]: number }; + + /** + * Accept, hide + */ + "TM": { [_: string]: number }; + + /** + * Reject + */ + "TMPtr": { [_: string]: number }; + + /** + * Accept, hide + */ + "CI": { [_: string]: number }; + + /** + * Reject + */ + "CIPtr": { [_: string]: number }; + + /** + * Accept, hide + */ + "EI": { [_: string]: number }; + + /** + * Reject + */ + "EIPtr": { [_: string]: number }; + + /** + * Accept + */ + "EV": { [_: EmbeddedValue]: number }; + + /** + * Accept + */ + "EVPtr": { [_: EmbeddedValue]: number }; + + /** + * Accept + */ + "EVP": { [_: EmbeddedValuePtr]: number }; + + /** + * Accept + */ + "EVPPtr": { [_: EmbeddedValuePtr]: number }; + + /** + * Reject + */ + "EP": { [_: string]: number }; + + /** + * Accept + */ + "EPPtr": { [_: EmbeddedPointer]: number }; + + /** + * Accept + */ + "EPP": { [_: EmbeddedPointerPtr]: number }; + + /** + * Accept + */ + "EPPPtr": { [_: EmbeddedPointerPtr]: number }; + + /** + * Accept + */ + "ECI": { [_: EmbeddedCustomInterface]: number }; + + /** + * Accept + */ + "ECIPtr": { [_: EmbeddedCustomInterface]: number }; + + /** + * Accept + */ + "EOI": { [_: EmbeddedOriginalInterface]: number }; + + /** + * Accept + */ + "EOIPtr": { [_: EmbeddedOriginalInterface]: number }; + + /** + * Reject + */ + "WT": { [_: string]: number }; + + /** + * Reject + */ + "WA": { [_: string]: number }; + + /** + * Accept + */ + "ST": { [_: StringType]: number }; + + /** + * Accept + */ + "SA": { [_: StringAlias]: number }; + + /** + * Accept + */ + "IntT": { [_: `${number}`]: number }; + + /** + * Accept + */ + "IntA": { [_: `${number}`]: number }; + + /** + * Reject + */ + "VT": { [_: string]: number }; + + /** + * Reject + */ + "VTPtr": { [_: string]: number }; + + /** + * Reject + */ + "VPT": { [_: string]: number }; + + /** + * Reject + */ + "VPTPtr": { [_: string]: number }; + + /** + * Accept + */ + "VA": { [_: ValueAlias]: number }; + + /** + * Accept + */ + "VAPtr": { [_: ValueAlias]: number }; + + /** + * Accept, hide + */ + "VPA": { [_: string]: number }; + + /** + * Reject + */ + "VPAPtr": { [_: string]: number }; + + /** + * Reject + */ + "PT": { [_: string]: number }; + + /** + * Reject + */ + "PTPtr": { [_: string]: number }; + + /** + * Reject + */ + "PPT": { [_: string]: number }; + + /** + * Reject + */ + "PPTPtr": { [_: string]: number }; + + /** + * Reject + */ + "PA": { [_: string]: number }; + + /** + * Accept + */ + "PAPtr": { [_: PointerAlias]: number }; + + /** + * Accept, hide + */ + "PPA": { [_: string]: number }; + + /** + * Reject + */ + "PPAPtr": { [_: string]: number }; + + /** + * Accept, hide + */ + "IT": { [_: string]: number }; + + /** + * Reject + */ + "ITPtr": { [_: string]: number }; + + /** + * Reject + */ + "IPT": { [_: string]: number }; + + /** + * Reject + */ + "IPTPtr": { [_: string]: number }; + + /** + * Accept, hide + */ + "IA": { [_: string]: number }; + + /** + * Reject + */ + "IAPtr": { [_: string]: number }; + + /** + * Reject + */ + "IPA": { [_: string]: number }; + + /** + * Reject + */ + "IPAPtr": { [_: string]: number }; + + /** + * Soft reject + */ + "TPR": { [_: string]: number }; + + /** + * Soft reject + */ + "TPRPtr": { [_: string]: number }; + + /** + * Accept, hide + */ + "TPS": { [_: string]: number }; + + /** + * Soft reject + */ + "TPSPtr": { [_: string]: number }; + + /** + * Soft reject + */ + "TPT": { [_: string]: number }; + + /** + * Soft reject + */ + "TPTPtr": { [_: string]: number }; + + /** + * Accept, hide + */ + "TPU": { [_: string]: number }; + + /** + * Soft reject + */ + "TPUPtr": { [_: string]: number }; + + /** + * Accept, hide + */ + "TPV": { [_: string]: number }; + + /** + * Soft reject + */ + "TPVPtr": { [_: string]: number }; + + /** + * Soft reject + */ + "TPW": { [_: string]: number }; + + /** + * Accept, hide + */ + "TPWPtr": { [_: string]: number }; + + /** + * Accept, hide + */ + "TPX": { [_: string]: number }; + + /** + * Soft reject + */ + "TPXPtr": { [_: string]: number }; + + /** + * Accept, hide + */ + "TPY": { [_: string]: number }; + + /** + * Soft reject + */ + "TPYPtr": { [_: string]: number }; + + /** + * Accept, hide + */ + "TPZ": { [_: string]: number }; + + /** + * Soft reject + */ + "TPZPtr": { [_: string]: number }; + + /** Creates a new Maps instance. */ + constructor($$source: Partial> = {}) { + if (!("Bool" in $$source)) { + this["Bool"] = {}; + } + if (!("Int" in $$source)) { + this["Int"] = {}; + } + if (!("Uint" in $$source)) { + this["Uint"] = {}; + } + if (!("Float" in $$source)) { + this["Float"] = {}; + } + if (!("Complex" in $$source)) { + this["Complex"] = {}; + } + if (!("Byte" in $$source)) { + this["Byte"] = {}; + } + if (!("Rune" in $$source)) { + this["Rune"] = {}; + } + if (!("String" in $$source)) { + this["String"] = {}; + } + if (!("IntPtr" in $$source)) { + this["IntPtr"] = {}; + } + if (!("UintPtr" in $$source)) { + this["UintPtr"] = {}; + } + if (!("FloatPtr" in $$source)) { + this["FloatPtr"] = {}; + } + if (!("ComplexPtr" in $$source)) { + this["ComplexPtr"] = {}; + } + if (!("StringPtr" in $$source)) { + this["StringPtr"] = {}; + } + if (!("NTM" in $$source)) { + this["NTM"] = {}; + } + if (!("NTMPtr" in $$source)) { + this["NTMPtr"] = {}; + } + if (!("VTM" in $$source)) { + this["VTM"] = {}; + } + if (!("VTMPtr" in $$source)) { + this["VTMPtr"] = {}; + } + if (!("PTM" in $$source)) { + this["PTM"] = {}; + } + if (!("PTMPtr" in $$source)) { + this["PTMPtr"] = {}; + } + if (!("JTM" in $$source)) { + this["JTM"] = {}; + } + if (!("JTMPtr" in $$source)) { + this["JTMPtr"] = {}; + } + if (!("A" in $$source)) { + this["A"] = {}; + } + if (!("APtr" in $$source)) { + this["APtr"] = {}; + } + if (!("TM" in $$source)) { + this["TM"] = {}; + } + if (!("TMPtr" in $$source)) { + this["TMPtr"] = {}; + } + if (!("CI" in $$source)) { + this["CI"] = {}; + } + if (!("CIPtr" in $$source)) { + this["CIPtr"] = {}; + } + if (!("EI" in $$source)) { + this["EI"] = {}; + } + if (!("EIPtr" in $$source)) { + this["EIPtr"] = {}; + } + if (!("EV" in $$source)) { + this["EV"] = {}; + } + if (!("EVPtr" in $$source)) { + this["EVPtr"] = {}; + } + if (!("EVP" in $$source)) { + this["EVP"] = {}; + } + if (!("EVPPtr" in $$source)) { + this["EVPPtr"] = {}; + } + if (!("EP" in $$source)) { + this["EP"] = {}; + } + if (!("EPPtr" in $$source)) { + this["EPPtr"] = {}; + } + if (!("EPP" in $$source)) { + this["EPP"] = {}; + } + if (!("EPPPtr" in $$source)) { + this["EPPPtr"] = {}; + } + if (!("ECI" in $$source)) { + this["ECI"] = {}; + } + if (!("ECIPtr" in $$source)) { + this["ECIPtr"] = {}; + } + if (!("EOI" in $$source)) { + this["EOI"] = {}; + } + if (!("EOIPtr" in $$source)) { + this["EOIPtr"] = {}; + } + if (!("WT" in $$source)) { + this["WT"] = {}; + } + if (!("WA" in $$source)) { + this["WA"] = {}; + } + if (!("ST" in $$source)) { + this["ST"] = {}; + } + if (!("SA" in $$source)) { + this["SA"] = {}; + } + if (!("IntT" in $$source)) { + this["IntT"] = {}; + } + if (!("IntA" in $$source)) { + this["IntA"] = {}; + } + if (!("VT" in $$source)) { + this["VT"] = {}; + } + if (!("VTPtr" in $$source)) { + this["VTPtr"] = {}; + } + if (!("VPT" in $$source)) { + this["VPT"] = {}; + } + if (!("VPTPtr" in $$source)) { + this["VPTPtr"] = {}; + } + if (!("VA" in $$source)) { + this["VA"] = {}; + } + if (!("VAPtr" in $$source)) { + this["VAPtr"] = {}; + } + if (!("VPA" in $$source)) { + this["VPA"] = {}; + } + if (!("VPAPtr" in $$source)) { + this["VPAPtr"] = {}; + } + if (!("PT" in $$source)) { + this["PT"] = {}; + } + if (!("PTPtr" in $$source)) { + this["PTPtr"] = {}; + } + if (!("PPT" in $$source)) { + this["PPT"] = {}; + } + if (!("PPTPtr" in $$source)) { + this["PPTPtr"] = {}; + } + if (!("PA" in $$source)) { + this["PA"] = {}; + } + if (!("PAPtr" in $$source)) { + this["PAPtr"] = {}; + } + if (!("PPA" in $$source)) { + this["PPA"] = {}; + } + if (!("PPAPtr" in $$source)) { + this["PPAPtr"] = {}; + } + if (!("IT" in $$source)) { + this["IT"] = {}; + } + if (!("ITPtr" in $$source)) { + this["ITPtr"] = {}; + } + if (!("IPT" in $$source)) { + this["IPT"] = {}; + } + if (!("IPTPtr" in $$source)) { + this["IPTPtr"] = {}; + } + if (!("IA" in $$source)) { + this["IA"] = {}; + } + if (!("IAPtr" in $$source)) { + this["IAPtr"] = {}; + } + if (!("IPA" in $$source)) { + this["IPA"] = {}; + } + if (!("IPAPtr" in $$source)) { + this["IPAPtr"] = {}; + } + if (!("TPR" in $$source)) { + this["TPR"] = {}; + } + if (!("TPRPtr" in $$source)) { + this["TPRPtr"] = {}; + } + if (!("TPS" in $$source)) { + this["TPS"] = {}; + } + if (!("TPSPtr" in $$source)) { + this["TPSPtr"] = {}; + } + if (!("TPT" in $$source)) { + this["TPT"] = {}; + } + if (!("TPTPtr" in $$source)) { + this["TPTPtr"] = {}; + } + if (!("TPU" in $$source)) { + this["TPU"] = {}; + } + if (!("TPUPtr" in $$source)) { + this["TPUPtr"] = {}; + } + if (!("TPV" in $$source)) { + this["TPV"] = {}; + } + if (!("TPVPtr" in $$source)) { + this["TPVPtr"] = {}; + } + if (!("TPW" in $$source)) { + this["TPW"] = {}; + } + if (!("TPWPtr" in $$source)) { + this["TPWPtr"] = {}; + } + if (!("TPX" in $$source)) { + this["TPX"] = {}; + } + if (!("TPXPtr" in $$source)) { + this["TPXPtr"] = {}; + } + if (!("TPY" in $$source)) { + this["TPY"] = {}; + } + if (!("TPYPtr" in $$source)) { + this["TPYPtr"] = {}; + } + if (!("TPZ" in $$source)) { + this["TPZ"] = {}; + } + if (!("TPZPtr" in $$source)) { + this["TPZPtr"] = {}; + } + + Object.assign(this, $$source); + } + + /** + * Given creation functions for each type parameter, + * returns a creation function for a concrete instance + * of the generic class Maps. + */ + static createFrom($$createParamR: (source: any) => R, $$createParamS: (source: any) => S, $$createParamT: (source: any) => T, $$createParamU: (source: any) => U, $$createParamV: (source: any) => V, $$createParamW: (source: any) => W, $$createParamX: (source: any) => X, $$createParamY: (source: any) => Y, $$createParamZ: (source: any) => Z): ($$source?: any) => Maps { + const $$createField0_0 = $$createType0; + const $$createField1_0 = $$createType1; + const $$createField2_0 = $$createType2; + const $$createField3_0 = $$createType3; + const $$createField4_0 = $$createType4; + const $$createField5_0 = $$createType5; + const $$createField6_0 = $$createType6; + const $$createField7_0 = $$createType7; + const $$createField8_0 = $$createType8; + const $$createField9_0 = $$createType9; + const $$createField10_0 = $$createType10; + const $$createField11_0 = $$createType11; + const $$createField12_0 = $$createType12; + const $$createField13_0 = $$createType13; + const $$createField14_0 = $$createType14; + const $$createField15_0 = $$createType15; + const $$createField16_0 = $$createType16; + const $$createField17_0 = $$createType17; + const $$createField18_0 = $$createType18; + const $$createField19_0 = $$createType19; + const $$createField20_0 = $$createType20; + const $$createField21_0 = $$createType21; + const $$createField22_0 = $$createType22; + const $$createField23_0 = $$createType23; + const $$createField24_0 = $$createType24; + const $$createField25_0 = $$createType25; + const $$createField26_0 = $$createType26; + const $$createField27_0 = $$createType27; + const $$createField28_0 = $$createType28; + const $$createField29_0 = $$createType29; + const $$createField30_0 = $$createType30; + const $$createField31_0 = $$createType31; + const $$createField32_0 = $$createType32; + const $$createField33_0 = $$createType33; + const $$createField34_0 = $$createType34; + const $$createField35_0 = $$createType35; + const $$createField36_0 = $$createType36; + const $$createField37_0 = $$createType37; + const $$createField38_0 = $$createType38; + const $$createField39_0 = $$createType39; + const $$createField40_0 = $$createType40; + const $$createField41_0 = $$createType41; + const $$createField42_0 = $$createType0; + const $$createField43_0 = $$createType42; + const $$createField44_0 = $$createType7; + const $$createField45_0 = $$createType43; + const $$createField46_0 = $$createType1; + const $$createField47_0 = $$createType44; + const $$createField48_0 = $$createType45; + const $$createField49_0 = $$createType46; + const $$createField50_0 = $$createType47; + const $$createField51_0 = $$createType15; + const $$createField52_0 = $$createType16; + const $$createField53_0 = $$createType16; + const $$createField54_0 = $$createType48; + const $$createField55_0 = $$createType49; + const $$createField56_0 = $$createType50; + const $$createField57_0 = $$createType51; + const $$createField58_0 = $$createType52; + const $$createField59_0 = $$createType17; + const $$createField60_0 = $$createType18; + const $$createField61_0 = $$createType18; + const $$createField62_0 = $$createType53; + const $$createField63_0 = $$createType54; + const $$createField64_0 = $$createType55; + const $$createField65_0 = $$createType56; + const $$createField66_0 = $$createType57; + const $$createField67_0 = $$createType23; + const $$createField68_0 = $$createType24; + const $$createField69_0 = $$createType24; + const $$createField70_0 = $$createType58; + const $$createField71_0 = $$createType59($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField72_0 = $$createType60($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField73_0 = $$createType61($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField74_0 = $$createType62($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField75_0 = $$createType63($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField76_0 = $$createType64($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField77_0 = $$createType65($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField78_0 = $$createType66($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField79_0 = $$createType67($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField80_0 = $$createType68($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField81_0 = $$createType69($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField82_0 = $$createType70($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField83_0 = $$createType71($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField84_0 = $$createType72($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField85_0 = $$createType73($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField86_0 = $$createType74($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField87_0 = $$createType75($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + const $$createField88_0 = $$createType76($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ); + return ($$source: any = {}) => { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Bool" in $$parsedSource) { + $$parsedSource["Bool"] = $$createField0_0($$parsedSource["Bool"]); + } + if ("Int" in $$parsedSource) { + $$parsedSource["Int"] = $$createField1_0($$parsedSource["Int"]); + } + if ("Uint" in $$parsedSource) { + $$parsedSource["Uint"] = $$createField2_0($$parsedSource["Uint"]); + } + if ("Float" in $$parsedSource) { + $$parsedSource["Float"] = $$createField3_0($$parsedSource["Float"]); + } + if ("Complex" in $$parsedSource) { + $$parsedSource["Complex"] = $$createField4_0($$parsedSource["Complex"]); + } + if ("Byte" in $$parsedSource) { + $$parsedSource["Byte"] = $$createField5_0($$parsedSource["Byte"]); + } + if ("Rune" in $$parsedSource) { + $$parsedSource["Rune"] = $$createField6_0($$parsedSource["Rune"]); + } + if ("String" in $$parsedSource) { + $$parsedSource["String"] = $$createField7_0($$parsedSource["String"]); + } + if ("IntPtr" in $$parsedSource) { + $$parsedSource["IntPtr"] = $$createField8_0($$parsedSource["IntPtr"]); + } + if ("UintPtr" in $$parsedSource) { + $$parsedSource["UintPtr"] = $$createField9_0($$parsedSource["UintPtr"]); + } + if ("FloatPtr" in $$parsedSource) { + $$parsedSource["FloatPtr"] = $$createField10_0($$parsedSource["FloatPtr"]); + } + if ("ComplexPtr" in $$parsedSource) { + $$parsedSource["ComplexPtr"] = $$createField11_0($$parsedSource["ComplexPtr"]); + } + if ("StringPtr" in $$parsedSource) { + $$parsedSource["StringPtr"] = $$createField12_0($$parsedSource["StringPtr"]); + } + if ("NTM" in $$parsedSource) { + $$parsedSource["NTM"] = $$createField13_0($$parsedSource["NTM"]); + } + if ("NTMPtr" in $$parsedSource) { + $$parsedSource["NTMPtr"] = $$createField14_0($$parsedSource["NTMPtr"]); + } + if ("VTM" in $$parsedSource) { + $$parsedSource["VTM"] = $$createField15_0($$parsedSource["VTM"]); + } + if ("VTMPtr" in $$parsedSource) { + $$parsedSource["VTMPtr"] = $$createField16_0($$parsedSource["VTMPtr"]); + } + if ("PTM" in $$parsedSource) { + $$parsedSource["PTM"] = $$createField17_0($$parsedSource["PTM"]); + } + if ("PTMPtr" in $$parsedSource) { + $$parsedSource["PTMPtr"] = $$createField18_0($$parsedSource["PTMPtr"]); + } + if ("JTM" in $$parsedSource) { + $$parsedSource["JTM"] = $$createField19_0($$parsedSource["JTM"]); + } + if ("JTMPtr" in $$parsedSource) { + $$parsedSource["JTMPtr"] = $$createField20_0($$parsedSource["JTMPtr"]); + } + if ("A" in $$parsedSource) { + $$parsedSource["A"] = $$createField21_0($$parsedSource["A"]); + } + if ("APtr" in $$parsedSource) { + $$parsedSource["APtr"] = $$createField22_0($$parsedSource["APtr"]); + } + if ("TM" in $$parsedSource) { + $$parsedSource["TM"] = $$createField23_0($$parsedSource["TM"]); + } + if ("TMPtr" in $$parsedSource) { + $$parsedSource["TMPtr"] = $$createField24_0($$parsedSource["TMPtr"]); + } + if ("CI" in $$parsedSource) { + $$parsedSource["CI"] = $$createField25_0($$parsedSource["CI"]); + } + if ("CIPtr" in $$parsedSource) { + $$parsedSource["CIPtr"] = $$createField26_0($$parsedSource["CIPtr"]); + } + if ("EI" in $$parsedSource) { + $$parsedSource["EI"] = $$createField27_0($$parsedSource["EI"]); + } + if ("EIPtr" in $$parsedSource) { + $$parsedSource["EIPtr"] = $$createField28_0($$parsedSource["EIPtr"]); + } + if ("EV" in $$parsedSource) { + $$parsedSource["EV"] = $$createField29_0($$parsedSource["EV"]); + } + if ("EVPtr" in $$parsedSource) { + $$parsedSource["EVPtr"] = $$createField30_0($$parsedSource["EVPtr"]); + } + if ("EVP" in $$parsedSource) { + $$parsedSource["EVP"] = $$createField31_0($$parsedSource["EVP"]); + } + if ("EVPPtr" in $$parsedSource) { + $$parsedSource["EVPPtr"] = $$createField32_0($$parsedSource["EVPPtr"]); + } + if ("EP" in $$parsedSource) { + $$parsedSource["EP"] = $$createField33_0($$parsedSource["EP"]); + } + if ("EPPtr" in $$parsedSource) { + $$parsedSource["EPPtr"] = $$createField34_0($$parsedSource["EPPtr"]); + } + if ("EPP" in $$parsedSource) { + $$parsedSource["EPP"] = $$createField35_0($$parsedSource["EPP"]); + } + if ("EPPPtr" in $$parsedSource) { + $$parsedSource["EPPPtr"] = $$createField36_0($$parsedSource["EPPPtr"]); + } + if ("ECI" in $$parsedSource) { + $$parsedSource["ECI"] = $$createField37_0($$parsedSource["ECI"]); + } + if ("ECIPtr" in $$parsedSource) { + $$parsedSource["ECIPtr"] = $$createField38_0($$parsedSource["ECIPtr"]); + } + if ("EOI" in $$parsedSource) { + $$parsedSource["EOI"] = $$createField39_0($$parsedSource["EOI"]); + } + if ("EOIPtr" in $$parsedSource) { + $$parsedSource["EOIPtr"] = $$createField40_0($$parsedSource["EOIPtr"]); + } + if ("WT" in $$parsedSource) { + $$parsedSource["WT"] = $$createField41_0($$parsedSource["WT"]); + } + if ("WA" in $$parsedSource) { + $$parsedSource["WA"] = $$createField42_0($$parsedSource["WA"]); + } + if ("ST" in $$parsedSource) { + $$parsedSource["ST"] = $$createField43_0($$parsedSource["ST"]); + } + if ("SA" in $$parsedSource) { + $$parsedSource["SA"] = $$createField44_0($$parsedSource["SA"]); + } + if ("IntT" in $$parsedSource) { + $$parsedSource["IntT"] = $$createField45_0($$parsedSource["IntT"]); + } + if ("IntA" in $$parsedSource) { + $$parsedSource["IntA"] = $$createField46_0($$parsedSource["IntA"]); + } + if ("VT" in $$parsedSource) { + $$parsedSource["VT"] = $$createField47_0($$parsedSource["VT"]); + } + if ("VTPtr" in $$parsedSource) { + $$parsedSource["VTPtr"] = $$createField48_0($$parsedSource["VTPtr"]); + } + if ("VPT" in $$parsedSource) { + $$parsedSource["VPT"] = $$createField49_0($$parsedSource["VPT"]); + } + if ("VPTPtr" in $$parsedSource) { + $$parsedSource["VPTPtr"] = $$createField50_0($$parsedSource["VPTPtr"]); + } + if ("VA" in $$parsedSource) { + $$parsedSource["VA"] = $$createField51_0($$parsedSource["VA"]); + } + if ("VAPtr" in $$parsedSource) { + $$parsedSource["VAPtr"] = $$createField52_0($$parsedSource["VAPtr"]); + } + if ("VPA" in $$parsedSource) { + $$parsedSource["VPA"] = $$createField53_0($$parsedSource["VPA"]); + } + if ("VPAPtr" in $$parsedSource) { + $$parsedSource["VPAPtr"] = $$createField54_0($$parsedSource["VPAPtr"]); + } + if ("PT" in $$parsedSource) { + $$parsedSource["PT"] = $$createField55_0($$parsedSource["PT"]); + } + if ("PTPtr" in $$parsedSource) { + $$parsedSource["PTPtr"] = $$createField56_0($$parsedSource["PTPtr"]); + } + if ("PPT" in $$parsedSource) { + $$parsedSource["PPT"] = $$createField57_0($$parsedSource["PPT"]); + } + if ("PPTPtr" in $$parsedSource) { + $$parsedSource["PPTPtr"] = $$createField58_0($$parsedSource["PPTPtr"]); + } + if ("PA" in $$parsedSource) { + $$parsedSource["PA"] = $$createField59_0($$parsedSource["PA"]); + } + if ("PAPtr" in $$parsedSource) { + $$parsedSource["PAPtr"] = $$createField60_0($$parsedSource["PAPtr"]); + } + if ("PPA" in $$parsedSource) { + $$parsedSource["PPA"] = $$createField61_0($$parsedSource["PPA"]); + } + if ("PPAPtr" in $$parsedSource) { + $$parsedSource["PPAPtr"] = $$createField62_0($$parsedSource["PPAPtr"]); + } + if ("IT" in $$parsedSource) { + $$parsedSource["IT"] = $$createField63_0($$parsedSource["IT"]); + } + if ("ITPtr" in $$parsedSource) { + $$parsedSource["ITPtr"] = $$createField64_0($$parsedSource["ITPtr"]); + } + if ("IPT" in $$parsedSource) { + $$parsedSource["IPT"] = $$createField65_0($$parsedSource["IPT"]); + } + if ("IPTPtr" in $$parsedSource) { + $$parsedSource["IPTPtr"] = $$createField66_0($$parsedSource["IPTPtr"]); + } + if ("IA" in $$parsedSource) { + $$parsedSource["IA"] = $$createField67_0($$parsedSource["IA"]); + } + if ("IAPtr" in $$parsedSource) { + $$parsedSource["IAPtr"] = $$createField68_0($$parsedSource["IAPtr"]); + } + if ("IPA" in $$parsedSource) { + $$parsedSource["IPA"] = $$createField69_0($$parsedSource["IPA"]); + } + if ("IPAPtr" in $$parsedSource) { + $$parsedSource["IPAPtr"] = $$createField70_0($$parsedSource["IPAPtr"]); + } + if ("TPR" in $$parsedSource) { + $$parsedSource["TPR"] = $$createField71_0($$parsedSource["TPR"]); + } + if ("TPRPtr" in $$parsedSource) { + $$parsedSource["TPRPtr"] = $$createField72_0($$parsedSource["TPRPtr"]); + } + if ("TPS" in $$parsedSource) { + $$parsedSource["TPS"] = $$createField73_0($$parsedSource["TPS"]); + } + if ("TPSPtr" in $$parsedSource) { + $$parsedSource["TPSPtr"] = $$createField74_0($$parsedSource["TPSPtr"]); + } + if ("TPT" in $$parsedSource) { + $$parsedSource["TPT"] = $$createField75_0($$parsedSource["TPT"]); + } + if ("TPTPtr" in $$parsedSource) { + $$parsedSource["TPTPtr"] = $$createField76_0($$parsedSource["TPTPtr"]); + } + if ("TPU" in $$parsedSource) { + $$parsedSource["TPU"] = $$createField77_0($$parsedSource["TPU"]); + } + if ("TPUPtr" in $$parsedSource) { + $$parsedSource["TPUPtr"] = $$createField78_0($$parsedSource["TPUPtr"]); + } + if ("TPV" in $$parsedSource) { + $$parsedSource["TPV"] = $$createField79_0($$parsedSource["TPV"]); + } + if ("TPVPtr" in $$parsedSource) { + $$parsedSource["TPVPtr"] = $$createField80_0($$parsedSource["TPVPtr"]); + } + if ("TPW" in $$parsedSource) { + $$parsedSource["TPW"] = $$createField81_0($$parsedSource["TPW"]); + } + if ("TPWPtr" in $$parsedSource) { + $$parsedSource["TPWPtr"] = $$createField82_0($$parsedSource["TPWPtr"]); + } + if ("TPX" in $$parsedSource) { + $$parsedSource["TPX"] = $$createField83_0($$parsedSource["TPX"]); + } + if ("TPXPtr" in $$parsedSource) { + $$parsedSource["TPXPtr"] = $$createField84_0($$parsedSource["TPXPtr"]); + } + if ("TPY" in $$parsedSource) { + $$parsedSource["TPY"] = $$createField85_0($$parsedSource["TPY"]); + } + if ("TPYPtr" in $$parsedSource) { + $$parsedSource["TPYPtr"] = $$createField86_0($$parsedSource["TPYPtr"]); + } + if ("TPZ" in $$parsedSource) { + $$parsedSource["TPZ"] = $$createField87_0($$parsedSource["TPZ"]); + } + if ("TPZPtr" in $$parsedSource) { + $$parsedSource["TPZPtr"] = $$createField88_0($$parsedSource["TPZPtr"]); + } + return new Maps($$parsedSource as Partial>); + }; + } +} + +export type PointerAlias = PointerTextMarshaler; + +export type PointerTextMarshaler = string; + +export type StringAlias = string; + +export type StringType = string; + +export type ValueAlias = ValueTextMarshaler; + +export type ValueTextMarshaler = string; + +// Private type creation functions +const $$createType0 = $Create.Map($Create.Any, $Create.Any); +const $$createType1 = $Create.Map($Create.Any, $Create.Any); +const $$createType2 = $Create.Map($Create.Any, $Create.Any); +const $$createType3 = $Create.Map($Create.Any, $Create.Any); +const $$createType4 = $Create.Map($Create.Any, $Create.Any); +const $$createType5 = $Create.Map($Create.Any, $Create.Any); +const $$createType6 = $Create.Map($Create.Any, $Create.Any); +const $$createType7 = $Create.Map($Create.Any, $Create.Any); +const $$createType8 = $Create.Map($Create.Any, $Create.Any); +const $$createType9 = $Create.Map($Create.Any, $Create.Any); +const $$createType10 = $Create.Map($Create.Any, $Create.Any); +const $$createType11 = $Create.Map($Create.Any, $Create.Any); +const $$createType12 = $Create.Map($Create.Any, $Create.Any); +const $$createType13 = $Create.Map($Create.Any, $Create.Any); +const $$createType14 = $Create.Map($Create.Any, $Create.Any); +const $$createType15 = $Create.Map($Create.Any, $Create.Any); +const $$createType16 = $Create.Map($Create.Any, $Create.Any); +const $$createType17 = $Create.Map($Create.Any, $Create.Any); +const $$createType18 = $Create.Map($Create.Any, $Create.Any); +const $$createType19 = $Create.Map($Create.Any, $Create.Any); +const $$createType20 = $Create.Map($Create.Any, $Create.Any); +const $$createType21 = $Create.Map($Create.Any, $Create.Any); +const $$createType22 = $Create.Map($Create.Any, $Create.Any); +const $$createType23 = $Create.Map($Create.Any, $Create.Any); +const $$createType24 = $Create.Map($Create.Any, $Create.Any); +const $$createType25 = $Create.Map($Create.Any, $Create.Any); +const $$createType26 = $Create.Map($Create.Any, $Create.Any); +const $$createType27 = $Create.Map($Create.Any, $Create.Any); +const $$createType28 = $Create.Map($Create.Any, $Create.Any); +const $$createType29 = $Create.Map($Create.Any, $Create.Any); +const $$createType30 = $Create.Map($Create.Any, $Create.Any); +const $$createType31 = $Create.Map($Create.Any, $Create.Any); +const $$createType32 = $Create.Map($Create.Any, $Create.Any); +const $$createType33 = $Create.Map($Create.Any, $Create.Any); +const $$createType34 = $Create.Map($Create.Any, $Create.Any); +const $$createType35 = $Create.Map($Create.Any, $Create.Any); +const $$createType36 = $Create.Map($Create.Any, $Create.Any); +const $$createType37 = $Create.Map($Create.Any, $Create.Any); +const $$createType38 = $Create.Map($Create.Any, $Create.Any); +const $$createType39 = $Create.Map($Create.Any, $Create.Any); +const $$createType40 = $Create.Map($Create.Any, $Create.Any); +const $$createType41 = $Create.Map($Create.Any, $Create.Any); +const $$createType42 = $Create.Map($Create.Any, $Create.Any); +const $$createType43 = $Create.Map($Create.Any, $Create.Any); +const $$createType44 = $Create.Map($Create.Any, $Create.Any); +const $$createType45 = $Create.Map($Create.Any, $Create.Any); +const $$createType46 = $Create.Map($Create.Any, $Create.Any); +const $$createType47 = $Create.Map($Create.Any, $Create.Any); +const $$createType48 = $Create.Map($Create.Any, $Create.Any); +const $$createType49 = $Create.Map($Create.Any, $Create.Any); +const $$createType50 = $Create.Map($Create.Any, $Create.Any); +const $$createType51 = $Create.Map($Create.Any, $Create.Any); +const $$createType52 = $Create.Map($Create.Any, $Create.Any); +const $$createType53 = $Create.Map($Create.Any, $Create.Any); +const $$createType54 = $Create.Map($Create.Any, $Create.Any); +const $$createType55 = $Create.Map($Create.Any, $Create.Any); +const $$createType56 = $Create.Map($Create.Any, $Create.Any); +const $$createType57 = $Create.Map($Create.Any, $Create.Any); +const $$createType58 = $Create.Map($Create.Any, $Create.Any); +const $$createType59 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType60 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType61 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType62 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType63 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType64 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType65 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType66 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType67 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType68 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType69 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType70 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType71 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType72 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType73 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType74 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType75 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); +const $$createType76 = ($$createParamR, $$createParamS, $$createParamT, $$createParamU, $$createParamV, $$createParamW, $$createParamX, $$createParamY, $$createParamZ) => $Create.Map($Create.Any, $Create.Any); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.ts new file mode 100644 index 000000000..d68598901 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.ts @@ -0,0 +1,22 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call, Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +export function Method(): Promise<$models.Maps<$models.PointerTextMarshaler, number, number, $models.ValueTextMarshaler, $models.PointerTextMarshaler | null, $models.ValueTextMarshaler, $models.StringType, $models.ValueTextMarshaler, $models.PointerTextMarshaler | null>> & { cancel(): void } { + let $resultPromise = $Call.ByName("main.Service.Method") as any; + let $typingPromise = $resultPromise.then(($result: any) => { + return $$createType0($result); + }) as any; + $typingPromise.cancel = $resultPromise.cancel.bind($resultPromise); + return $typingPromise; +} + +// Private type creation functions +const $$createType0 = $models.Maps.createFrom($Create.Any, $Create.Any, $Create.Any, $Create.Any, $Create.Any, $Create.Any, $Create.Any, $Create.Any, $Create.Any); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.ts new file mode 100644 index 000000000..bbe49e32f --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.ts @@ -0,0 +1,36 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +export { + Data, + ImplicitNonMarshaler, + NonMarshaler +} from "./models.js"; + +export type { + AliasJsonMarshaler, + AliasMarshaler, + AliasNonMarshaler, + AliasTextMarshaler, + ImplicitJsonButText, + ImplicitJsonMarshaler, + ImplicitMarshaler, + ImplicitNonJson, + ImplicitNonText, + ImplicitTextButJson, + ImplicitTextMarshaler, + PointerJsonMarshaler, + PointerMarshaler, + PointerTextMarshaler, + UnderlyingJsonMarshaler, + UnderlyingMarshaler, + UnderlyingTextMarshaler, + ValueJsonMarshaler, + ValueMarshaler, + ValueTextMarshaler +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.ts new file mode 100644 index 000000000..32cfd9f37 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.ts @@ -0,0 +1,545 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as encoding$0 from "../../../../../../../../encoding/models.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as json$0 from "../../../../../../../../encoding/json/models.js"; + +/** + * any + */ +export type AliasJsonMarshaler = any; + +/** + * any + */ +export type AliasMarshaler = any; + +/** + * struct{} + */ +export interface AliasNonMarshaler { +} + +/** + * string + */ +export type AliasTextMarshaler = string; + +export class Data { + "NM": NonMarshaler; + + /** + * NonMarshaler | null + */ + "NMPtr": NonMarshaler | null; + "VJM": ValueJsonMarshaler; + + /** + * ValueJsonMarshaler | null + */ + "VJMPtr": ValueJsonMarshaler | null; + "PJM": PointerJsonMarshaler; + + /** + * PointerJsonMarshaler | null + */ + "PJMPtr": PointerJsonMarshaler | null; + "VTM": ValueTextMarshaler; + + /** + * ValueTextMarshaler | null + */ + "VTMPtr": ValueTextMarshaler | null; + "PTM": PointerTextMarshaler; + + /** + * PointerTextMarshaler | null + */ + "PTMPtr": PointerTextMarshaler | null; + "VM": ValueMarshaler; + + /** + * ValueMarshaler | null + */ + "VMPtr": ValueMarshaler | null; + "PM": PointerMarshaler; + + /** + * PointerMarshaler | null + */ + "PMPtr": PointerMarshaler | null; + "UJM": UnderlyingJsonMarshaler; + + /** + * UnderlyingJsonMarshaler | null + */ + "UJMPtr": UnderlyingJsonMarshaler | null; + "UTM": UnderlyingTextMarshaler; + + /** + * UnderlyingTextMarshaler | null + */ + "UTMPtr": UnderlyingTextMarshaler | null; + "UM": UnderlyingMarshaler; + + /** + * UnderlyingMarshaler | null + */ + "UMPtr": UnderlyingMarshaler | null; + + /** + * any + */ + "JM": any; + + /** + * any | null + */ + "JMPtr": any | null; + + /** + * string + */ + "TM": string; + + /** + * string | null + */ + "TMPtr": string | null; + + /** + * any + */ + "CJM": any; + + /** + * any | null + */ + "CJMPtr": any | null; + + /** + * string + */ + "CTM": string; + + /** + * string | null + */ + "CTMPtr": string | null; + + /** + * any + */ + "CM": any; + + /** + * any | null + */ + "CMPtr": any | null; + "ANM": AliasNonMarshaler; + + /** + * AliasNonMarshaler | null + */ + "ANMPtr": AliasNonMarshaler | null; + "AJM": AliasJsonMarshaler; + + /** + * AliasJsonMarshaler | null + */ + "AJMPtr": AliasJsonMarshaler | null; + "ATM": AliasTextMarshaler; + + /** + * AliasTextMarshaler | null + */ + "ATMPtr": AliasTextMarshaler | null; + "AM": AliasMarshaler; + + /** + * AliasMarshaler | null + */ + "AMPtr": AliasMarshaler | null; + "ImJM": ImplicitJsonMarshaler; + + /** + * ImplicitJsonMarshaler | null + */ + "ImJMPtr": ImplicitJsonMarshaler | null; + "ImTM": ImplicitTextMarshaler; + + /** + * ImplicitTextMarshaler | null + */ + "ImTMPtr": ImplicitTextMarshaler | null; + "ImM": ImplicitMarshaler; + + /** + * ImplicitMarshaler | null + */ + "ImMPtr": ImplicitMarshaler | null; + "ImNJ": ImplicitNonJson; + + /** + * ImplicitNonJson | null + */ + "ImNJPtr": ImplicitNonJson | null; + "ImNT": ImplicitNonText; + + /** + * ImplicitNonText | null + */ + "ImNTPtr": ImplicitNonText | null; + "ImNM": ImplicitNonMarshaler; + + /** + * ImplicitNonMarshaler | null + */ + "ImNMPtr": ImplicitNonMarshaler | null; + "ImJbT": ImplicitJsonButText; + + /** + * ImplicitJsonButText | null + */ + "ImJbTPtr": ImplicitJsonButText | null; + "ImTbJ": ImplicitTextButJson; + + /** + * ImplicitTextButJson | null + */ + "ImTbJPtr": ImplicitTextButJson | null; + + /** Creates a new Data instance. */ + constructor($$source: Partial = {}) { + if (!("NM" in $$source)) { + this["NM"] = (new NonMarshaler()); + } + if (!("NMPtr" in $$source)) { + this["NMPtr"] = null; + } + if (!("VJM" in $$source)) { + this["VJM"] = null; + } + if (!("VJMPtr" in $$source)) { + this["VJMPtr"] = null; + } + if (!("PJM" in $$source)) { + this["PJM"] = null; + } + if (!("PJMPtr" in $$source)) { + this["PJMPtr"] = null; + } + if (!("VTM" in $$source)) { + this["VTM"] = ""; + } + if (!("VTMPtr" in $$source)) { + this["VTMPtr"] = null; + } + if (!("PTM" in $$source)) { + this["PTM"] = ""; + } + if (!("PTMPtr" in $$source)) { + this["PTMPtr"] = null; + } + if (!("VM" in $$source)) { + this["VM"] = null; + } + if (!("VMPtr" in $$source)) { + this["VMPtr"] = null; + } + if (!("PM" in $$source)) { + this["PM"] = null; + } + if (!("PMPtr" in $$source)) { + this["PMPtr"] = null; + } + if (!("UJM" in $$source)) { + this["UJM"] = null; + } + if (!("UJMPtr" in $$source)) { + this["UJMPtr"] = null; + } + if (!("UTM" in $$source)) { + this["UTM"] = ""; + } + if (!("UTMPtr" in $$source)) { + this["UTMPtr"] = null; + } + if (!("UM" in $$source)) { + this["UM"] = null; + } + if (!("UMPtr" in $$source)) { + this["UMPtr"] = null; + } + if (!("JM" in $$source)) { + this["JM"] = null; + } + if (!("JMPtr" in $$source)) { + this["JMPtr"] = null; + } + if (!("TM" in $$source)) { + this["TM"] = ""; + } + if (!("TMPtr" in $$source)) { + this["TMPtr"] = null; + } + if (!("CJM" in $$source)) { + this["CJM"] = null; + } + if (!("CJMPtr" in $$source)) { + this["CJMPtr"] = null; + } + if (!("CTM" in $$source)) { + this["CTM"] = ""; + } + if (!("CTMPtr" in $$source)) { + this["CTMPtr"] = null; + } + if (!("CM" in $$source)) { + this["CM"] = null; + } + if (!("CMPtr" in $$source)) { + this["CMPtr"] = null; + } + if (!("ANM" in $$source)) { + this["ANM"] = {}; + } + if (!("ANMPtr" in $$source)) { + this["ANMPtr"] = null; + } + if (!("AJM" in $$source)) { + this["AJM"] = null; + } + if (!("AJMPtr" in $$source)) { + this["AJMPtr"] = null; + } + if (!("ATM" in $$source)) { + this["ATM"] = ""; + } + if (!("ATMPtr" in $$source)) { + this["ATMPtr"] = null; + } + if (!("AM" in $$source)) { + this["AM"] = null; + } + if (!("AMPtr" in $$source)) { + this["AMPtr"] = null; + } + if (!("ImJM" in $$source)) { + this["ImJM"] = null; + } + if (!("ImJMPtr" in $$source)) { + this["ImJMPtr"] = null; + } + if (!("ImTM" in $$source)) { + this["ImTM"] = ""; + } + if (!("ImTMPtr" in $$source)) { + this["ImTMPtr"] = null; + } + if (!("ImM" in $$source)) { + this["ImM"] = null; + } + if (!("ImMPtr" in $$source)) { + this["ImMPtr"] = null; + } + if (!("ImNJ" in $$source)) { + this["ImNJ"] = ""; + } + if (!("ImNJPtr" in $$source)) { + this["ImNJPtr"] = null; + } + if (!("ImNT" in $$source)) { + this["ImNT"] = null; + } + if (!("ImNTPtr" in $$source)) { + this["ImNTPtr"] = null; + } + if (!("ImNM" in $$source)) { + this["ImNM"] = (new ImplicitNonMarshaler()); + } + if (!("ImNMPtr" in $$source)) { + this["ImNMPtr"] = null; + } + if (!("ImJbT" in $$source)) { + this["ImJbT"] = null; + } + if (!("ImJbTPtr" in $$source)) { + this["ImJbTPtr"] = null; + } + if (!("ImTbJ" in $$source)) { + this["ImTbJ"] = null; + } + if (!("ImTbJPtr" in $$source)) { + this["ImTbJPtr"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Data instance from a string or object. + */ + static createFrom($$source: any = {}): Data { + const $$createField0_0 = $$createType0; + const $$createField1_0 = $$createType1; + const $$createField48_0 = $$createType2; + const $$createField49_0 = $$createType3; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("NM" in $$parsedSource) { + $$parsedSource["NM"] = $$createField0_0($$parsedSource["NM"]); + } + if ("NMPtr" in $$parsedSource) { + $$parsedSource["NMPtr"] = $$createField1_0($$parsedSource["NMPtr"]); + } + if ("ImNM" in $$parsedSource) { + $$parsedSource["ImNM"] = $$createField48_0($$parsedSource["ImNM"]); + } + if ("ImNMPtr" in $$parsedSource) { + $$parsedSource["ImNMPtr"] = $$createField49_0($$parsedSource["ImNMPtr"]); + } + return new Data($$parsedSource as Partial); + } +} + +/** + * any + */ +export type ImplicitJsonButText = any; + +/** + * any + */ +export type ImplicitJsonMarshaler = any; + +/** + * any + */ +export type ImplicitMarshaler = any; + +/** + * string + */ +export type ImplicitNonJson = string; + +/** + * class{ Marshaler, TextMarshaler } + */ +export class ImplicitNonMarshaler { + "Marshaler": json$0.Marshaler; + "TextMarshaler": encoding$0.TextMarshaler; + + /** Creates a new ImplicitNonMarshaler instance. */ + constructor($$source: Partial = {}) { + if (!("Marshaler" in $$source)) { + this["Marshaler"] = null; + } + if (!("TextMarshaler" in $$source)) { + this["TextMarshaler"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new ImplicitNonMarshaler instance from a string or object. + */ + static createFrom($$source: any = {}): ImplicitNonMarshaler { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new ImplicitNonMarshaler($$parsedSource as Partial); + } +} + +/** + * any + */ +export type ImplicitNonText = any; + +/** + * any + */ +export type ImplicitTextButJson = any; + +/** + * string + */ +export type ImplicitTextMarshaler = string; + +/** + * class {} + */ +export class NonMarshaler { + + /** Creates a new NonMarshaler instance. */ + constructor($$source: Partial = {}) { + + Object.assign(this, $$source); + } + + /** + * Creates a new NonMarshaler instance from a string or object. + */ + static createFrom($$source: any = {}): NonMarshaler { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new NonMarshaler($$parsedSource as Partial); + } +} + +/** + * any + */ +export type PointerJsonMarshaler = any; + +/** + * any + */ +export type PointerMarshaler = any; + +/** + * string + */ +export type PointerTextMarshaler = string; + +/** + * any + */ +export type UnderlyingJsonMarshaler = any; + +/** + * any + */ +export type UnderlyingMarshaler = any; + +/** + * string + */ +export type UnderlyingTextMarshaler = string; + +/** + * any + */ +export type ValueJsonMarshaler = any; + +/** + * any + */ +export type ValueMarshaler = any; + +/** + * string + */ +export type ValueTextMarshaler = string; + +// Private type creation functions +const $$createType0 = NonMarshaler.createFrom; +const $$createType1 = $Create.Nullable($$createType0); +const $$createType2 = ImplicitNonMarshaler.createFrom; +const $$createType3 = $Create.Nullable($$createType2); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.ts new file mode 100644 index 000000000..90ddd2521 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.ts @@ -0,0 +1,22 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call, Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +export function Method(): Promise<$models.Data> & { cancel(): void } { + let $resultPromise = $Call.ByName("main.Service.Method") as any; + let $typingPromise = $resultPromise.then(($result: any) => { + return $$createType0($result); + }) as any; + $typingPromise.cancel = $resultPromise.cancel.bind($resultPromise); + return $typingPromise; +} + +// Private type creation functions +const $$createType0 = $models.Data.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.ts index 6bd662438..19d990dbf 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.ts @@ -6,4 +6,9 @@ export { SomeMethods }; -export * from "./models.js"; +export { + HowDifferent, + Impersonator, + Person, + PrivatePerson +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.ts deleted file mode 100644 index da359b283..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.ts +++ /dev/null @@ -1,163 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as other$0 from "./other/models.js"; - -/** - * HowDifferent is a curious kind of person - * that lets other people decide how they are different. - */ -export class HowDifferent { - /** - * They have a name as well. - */ - "Name": string; - - /** - * But they may have many differences. - */ - "Differences": { [_: string]: How | null }[]; - - /** Creates a new HowDifferent instance. */ - constructor($$source: Partial> = {}) { - if (!("Name" in $$source)) { - this["Name"] = ""; - } - if (!("Differences" in $$source)) { - this["Differences"] = []; - } - - Object.assign(this, $$source); - } - - /** - * Given creation functions for each type parameter, - * returns a creation function for a concrete instance - * of the generic class HowDifferent. - */ - static createFrom($$createParamHow: (source: any) => How): ($$source?: any) => HowDifferent { - const $$createField1_0 = $$createType1($$createParamHow); - return ($$source: any = {}) => { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Differences" in $$parsedSource) { - $$parsedSource["Differences"] = $$createField1_0($$parsedSource["Differences"]); - } - return new HowDifferent($$parsedSource as Partial>); - }; - } -} - -/** - * Impersonator gets their fields from other people. - */ -export const Impersonator = other$0.OtherPerson; - -/** - * Impersonator gets their fields from other people. - */ -export type Impersonator = other$0.OtherPerson; - -/** - * Person is not a number. - */ -export class Person { - /** - * They have a name. - */ - "Name": string; - - /** - * Exactly 4 sketchy friends. - */ - "Friends": Impersonator[]; - - /** Creates a new Person instance. */ - constructor($$source: Partial = {}) { - if (!("Name" in $$source)) { - this["Name"] = ""; - } - if (!("Friends" in $$source)) { - this["Friends"] = Array.from({ length: 4 }, () => (new Impersonator())); - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - */ - static createFrom($$source: any = {}): Person { - const $$createField1_0 = $$createType3; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Friends" in $$parsedSource) { - $$parsedSource["Friends"] = $$createField1_0($$parsedSource["Friends"]); - } - return new Person($$parsedSource as Partial); - } -} - -export class personImpl { - /** - * Nickname conceals a person's identity. - */ - "Nickname": string; - - /** - * They have a name. - */ - "Name": string; - - /** - * Exactly 4 sketchy friends. - */ - "Friends": Impersonator[]; - - /** Creates a new personImpl instance. */ - constructor($$source: Partial = {}) { - if (!("Nickname" in $$source)) { - this["Nickname"] = ""; - } - if (!("Name" in $$source)) { - this["Name"] = ""; - } - if (!("Friends" in $$source)) { - this["Friends"] = Array.from({ length: 4 }, () => (new Impersonator())); - } - - Object.assign(this, $$source); - } - - /** - * Creates a new personImpl instance from a string or object. - */ - static createFrom($$source: any = {}): personImpl { - const $$createField2_0 = $$createType3; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Friends" in $$parsedSource) { - $$parsedSource["Friends"] = $$createField2_0($$parsedSource["Friends"]); - } - return new personImpl($$parsedSource as Partial); - } -} - -/** - * PrivatePerson gets their fields from hidden sources. - */ -export const PrivatePerson = personImpl; - -/** - * PrivatePerson gets their fields from hidden sources. - */ -export type PrivatePerson = personImpl; - -// Private type creation functions -const $$createType0 = ($$createParamHow) => $Create.Map($Create.Any, $$createParamHow); -const $$createType1 = ($$createParamHow) => $Create.Array($$createType0($$createParamHow)); -const $$createType2 = Impersonator.createFrom; -const $$createType3 = $Create.Array($$createType2); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.ts index 8f1e34311..6e31400f2 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.ts @@ -1,9 +1,163 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - HowDifferent, - Impersonator, - Person, - PrivatePerson -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as other$0 from "./other/models.js"; + +/** + * HowDifferent is a curious kind of person + * that lets other people decide how they are different. + */ +export class HowDifferent { + /** + * They have a name as well. + */ + "Name": string; + + /** + * But they may have many differences. + */ + "Differences": { [_: string]: How }[]; + + /** Creates a new HowDifferent instance. */ + constructor($$source: Partial> = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Differences" in $$source)) { + this["Differences"] = []; + } + + Object.assign(this, $$source); + } + + /** + * Given creation functions for each type parameter, + * returns a creation function for a concrete instance + * of the generic class HowDifferent. + */ + static createFrom($$createParamHow: (source: any) => How): ($$source?: any) => HowDifferent { + const $$createField1_0 = $$createType1($$createParamHow); + return ($$source: any = {}) => { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Differences" in $$parsedSource) { + $$parsedSource["Differences"] = $$createField1_0($$parsedSource["Differences"]); + } + return new HowDifferent($$parsedSource as Partial>); + }; + } +} + +/** + * Impersonator gets their fields from other people. + */ +export const Impersonator = other$0.OtherPerson; + +/** + * Impersonator gets their fields from other people. + */ +export type Impersonator = other$0.OtherPerson; + +/** + * Person is not a number. + */ +export class Person { + /** + * They have a name. + */ + "Name": string; + + /** + * Exactly 4 sketchy friends. + */ + "Friends": Impersonator[]; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Friends" in $$source)) { + this["Friends"] = Array.from({ length: 4 }, () => (new Impersonator())); + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + */ + static createFrom($$source: any = {}): Person { + const $$createField1_0 = $$createType3; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Friends" in $$parsedSource) { + $$parsedSource["Friends"] = $$createField1_0($$parsedSource["Friends"]); + } + return new Person($$parsedSource as Partial); + } +} + +export class personImpl { + /** + * Nickname conceals a person's identity. + */ + "Nickname": string; + + /** + * They have a name. + */ + "Name": string; + + /** + * Exactly 4 sketchy friends. + */ + "Friends": Impersonator[]; + + /** Creates a new personImpl instance. */ + constructor($$source: Partial = {}) { + if (!("Nickname" in $$source)) { + this["Nickname"] = ""; + } + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Friends" in $$source)) { + this["Friends"] = Array.from({ length: 4 }, () => (new Impersonator())); + } + + Object.assign(this, $$source); + } + + /** + * Creates a new personImpl instance from a string or object. + */ + static createFrom($$source: any = {}): personImpl { + const $$createField2_0 = $$createType3; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Friends" in $$parsedSource) { + $$parsedSource["Friends"] = $$createField2_0($$parsedSource["Friends"]); + } + return new personImpl($$parsedSource as Partial); + } +} + +/** + * PrivatePerson gets their fields from hidden sources. + */ +export const PrivatePerson = personImpl; + +/** + * PrivatePerson gets their fields from hidden sources. + */ +export type PrivatePerson = personImpl; + +// Private type creation functions +const $$createType0 = ($$createParamHow) => $Create.Map($Create.Any, $$createParamHow); +const $$createType1 = ($$createParamHow) => $Create.Array($$createType0($$createParamHow)); +const $$createType2 = other$0.OtherPerson.createFrom($Create.Any); +const $$createType3 = $Create.Array($$createType2); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.ts index 9e85cc3c8..d2d973b28 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.ts @@ -6,4 +6,6 @@ export { OtherMethods }; -export * from "./models.js"; +export { + OtherPerson +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.ts deleted file mode 100644 index 59343c53e..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.ts +++ /dev/null @@ -1,52 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -/** - * OtherPerson is like a person, but different. - */ -export class OtherPerson { - /** - * They have a name as well. - */ - "Name": string; - - /** - * But they may have many differences. - */ - "Differences": (T | null)[]; - - /** Creates a new OtherPerson instance. */ - constructor($$source: Partial> = {}) { - if (!("Name" in $$source)) { - this["Name"] = ""; - } - if (!("Differences" in $$source)) { - this["Differences"] = []; - } - - Object.assign(this, $$source); - } - - /** - * Given creation functions for each type parameter, - * returns a creation function for a concrete instance - * of the generic class OtherPerson. - */ - static createFrom($$createParamT: (source: any) => T): ($$source?: any) => OtherPerson { - const $$createField1_0 = $$createType0($$createParamT); - return ($$source: any = {}) => { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Differences" in $$parsedSource) { - $$parsedSource["Differences"] = $$createField1_0($$parsedSource["Differences"]); - } - return new OtherPerson($$parsedSource as Partial>); - }; - } -} - -// Private type creation functions -const $$createType0 = ($$createParamT) => $Create.Array($$createParamT); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.ts index 01eb4cbda..e41f6e1d3 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.ts @@ -1,6 +1,52 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - OtherPerson -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +/** + * OtherPerson is like a person, but different. + */ +export class OtherPerson { + /** + * They have a name as well. + */ + "Name": string; + + /** + * But they may have many differences. + */ + "Differences": T[]; + + /** Creates a new OtherPerson instance. */ + constructor($$source: Partial> = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Differences" in $$source)) { + this["Differences"] = []; + } + + Object.assign(this, $$source); + } + + /** + * Given creation functions for each type parameter, + * returns a creation function for a concrete instance + * of the generic class OtherPerson. + */ + static createFrom($$createParamT: (source: any) => T): ($$source?: any) => OtherPerson { + const $$createField1_0 = $$createType0($$createParamT); + return ($$source: any = {}) => { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Differences" in $$parsedSource) { + $$parsedSource["Differences"] = $$createField1_0($$parsedSource["Differences"]); + } + return new OtherPerson($$parsedSource as Partial>); + }; + } +} + +// Private type creation functions +const $$createType0 = ($$createParamT) => $Create.Array($$createParamT); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.ts index 897983353..ef08b89ed 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * LikeThisOne is an example method that does nothing. @@ -40,4 +40,4 @@ export function LikeThisOtherOne(): Promise & { cancel(): void } { // Private type creation functions const $$createType0 = $models.Person.createFrom; const $$createType1 = $models.HowDifferent.createFrom($Create.Any); -const $$createType2 = $models.PrivatePerson.createFrom; +const $$createType2 = $models.personImpl.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/out_of_tree/embedservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/out_of_tree/embedservice.ts index be4455ca1..5716d2933 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/out_of_tree/embedservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/out_of_tree/embedservice.ts @@ -40,4 +40,4 @@ export function LikeThisOtherOne(): Promise & { cancel(): void } { // Private type creation functions const $$createType0 = nobindingshere$0.Person.createFrom; const $$createType1 = nobindingshere$0.HowDifferent.createFrom($Create.Any); -const $$createType2 = nobindingshere$0.PrivatePerson.createFrom; +const $$createType2 = nobindingshere$0.personImpl.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.ts index d7dea4fba..49c20faa3 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.ts index 8e624c826..f95c1b558 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.ts deleted file mode 100644 index 474248f2e..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.ts +++ /dev/null @@ -1,43 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -export class Person { - "Name": string; - "Address": services$0.Address | null; - - /** Creates a new Person instance. */ - constructor($$source: Partial = {}) { - if (!("Name" in $$source)) { - this["Name"] = ""; - } - if (!("Address" in $$source)) { - this["Address"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - */ - static createFrom($$source: any = {}): Person { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Address" in $$parsedSource) { - $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); - } - return new Person($$parsedSource as Partial); - } -} - -// Private type creation functions -const $$createType0 = services$0.Address.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.ts index af8488811..474248f2e 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.ts @@ -1,6 +1,43 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; + +export class Person { + "Name": string; + "Address": services$0.Address | null; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Address" in $$source)) { + this["Address"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + */ + static createFrom($$source: any = {}): Person { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Address" in $$parsedSource) { + $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); + } + return new Person($$parsedSource as Partial); + } +} + +// Private type creation functions +const $$createType0 = services$0.Address.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.ts index 1a5bd5ebf..e4d86b717 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.ts @@ -6,4 +6,6 @@ export { OtherService }; -export * from "./models.js"; +export { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.ts deleted file mode 100644 index eb9c1b6bf..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.ts +++ /dev/null @@ -1,35 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Address { - "Street": string; - "State": string; - "Country": string; - - /** Creates a new Address instance. */ - constructor($$source: Partial
= {}) { - if (!("Street" in $$source)) { - this["Street"] = ""; - } - if (!("State" in $$source)) { - this["State"] = ""; - } - if (!("Country" in $$source)) { - this["Country"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Address instance from a string or object. - */ - static createFrom($$source: any = {}): Address { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Address($$parsedSource as Partial
); - } -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.ts index 826377880..eb9c1b6bf 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.ts @@ -1,6 +1,35 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Address -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Address { + "Street": string; + "State": string; + "Country": string; + + /** Creates a new Address instance. */ + constructor($$source: Partial
= {}) { + if (!("Street" in $$source)) { + this["Street"] = ""; + } + if (!("State" in $$source)) { + this["State"] = ""; + } + if (!("Country" in $$source)) { + this["Country"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Address instance from a string or object. + */ + static createFrom($$source: any = {}): Address { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Address($$parsedSource as Partial
); + } +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.ts index f83cc4373..3c2901c2c 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.ts @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.ts index 637e04702..eda8ff455 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; export function ArrayInt($in: number[]): Promise & { cancel(): void } { let $resultPromise = $Call.ByName("main.GreetService.ArrayInt", $in) as any; @@ -102,8 +102,8 @@ export function MapIntInt($in: { [_: `${number}`]: number }): Promise & { return $resultPromise; } -export function MapIntPointerInt($in: { [_: string]: number }): Promise & { cancel(): void } { - let $resultPromise = $Call.ByName("main.GreetService.MapIntPointerInt", $in) as any; +export function MapIntIntPointer($in: { [_: `${number}`]: number | null }): Promise & { cancel(): void } { + let $resultPromise = $Call.ByName("main.GreetService.MapIntIntPointer", $in) as any; return $resultPromise; } diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.ts index 8e624c826..f95c1b558 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.ts deleted file mode 100644 index 3dd1908e1..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.ts +++ /dev/null @@ -1,43 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Person { - "Name": string; - "Parent": Person | null; - "Details": {"Age": number, "Address": {"Street": string}}; - - /** Creates a new Person instance. */ - constructor($$source: Partial = {}) { - if (!("Name" in $$source)) { - this["Name"] = ""; - } - if (!("Parent" in $$source)) { - this["Parent"] = null; - } - if (!("Details" in $$source)) { - this["Details"] = {"Age": 0, "Address": {"Street": ""}}; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - */ - static createFrom($$source: any = {}): Person { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Parent" in $$parsedSource) { - $$parsedSource["Parent"] = $$createField1_0($$parsedSource["Parent"]); - } - return new Person($$parsedSource as Partial); - } -} - -// Private type creation functions -const $$createType0 = Person.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.ts index af8488811..3dd1908e1 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.ts @@ -1,6 +1,43 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Person { + "Name": string; + "Parent": Person | null; + "Details": {"Age": number, "Address": {"Street": string}}; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Parent" in $$source)) { + this["Parent"] = null; + } + if (!("Details" in $$source)) { + this["Details"] = {"Age": 0, "Address": {"Street": ""}}; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + */ + static createFrom($$source: any = {}): Person { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Parent" in $$parsedSource) { + $$parsedSource["Parent"] = $$createField1_0($$parsedSource["Parent"]); + } + return new Person($$parsedSource as Partial); + } +} + +// Private type creation functions +const $$createType0 = Person.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.ts index 637e04702..eda8ff455 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; export function ArrayInt($in: number[]): Promise & { cancel(): void } { let $resultPromise = $Call.ByName("main.GreetService.ArrayInt", $in) as any; @@ -102,8 +102,8 @@ export function MapIntInt($in: { [_: `${number}`]: number }): Promise & { return $resultPromise; } -export function MapIntPointerInt($in: { [_: string]: number }): Promise & { cancel(): void } { - let $resultPromise = $Call.ByName("main.GreetService.MapIntPointerInt", $in) as any; +export function MapIntIntPointer($in: { [_: `${number}`]: number | null }): Promise & { cancel(): void } { + let $resultPromise = $Call.ByName("main.GreetService.MapIntIntPointer", $in) as any; return $resultPromise; } diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.ts index 8e624c826..f95c1b558 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.ts deleted file mode 100644 index 3dd1908e1..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.ts +++ /dev/null @@ -1,43 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Person { - "Name": string; - "Parent": Person | null; - "Details": {"Age": number, "Address": {"Street": string}}; - - /** Creates a new Person instance. */ - constructor($$source: Partial = {}) { - if (!("Name" in $$source)) { - this["Name"] = ""; - } - if (!("Parent" in $$source)) { - this["Parent"] = null; - } - if (!("Details" in $$source)) { - this["Details"] = {"Age": 0, "Address": {"Street": ""}}; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - */ - static createFrom($$source: any = {}): Person { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Parent" in $$parsedSource) { - $$parsedSource["Parent"] = $$createField1_0($$parsedSource["Parent"]); - } - return new Person($$parsedSource as Partial); - } -} - -// Private type creation functions -const $$createType0 = Person.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.ts index af8488811..3dd1908e1 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.ts @@ -1,6 +1,43 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Person { + "Name": string; + "Parent": Person | null; + "Details": {"Age": number, "Address": {"Street": string}}; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Parent" in $$source)) { + this["Parent"] = null; + } + if (!("Details" in $$source)) { + this["Details"] = {"Age": 0, "Address": {"Street": ""}}; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + */ + static createFrom($$source: any = {}): Person { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Parent" in $$parsedSource) { + $$parsedSource["Parent"] = $$createField1_0($$parsedSource["Parent"]); + } + return new Person($$parsedSource as Partial); + } +} + +// Private type creation functions +const $$createType0 = Person.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.ts index d7dea4fba..49c20faa3 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.ts index 8e624c826..f95c1b558 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.ts deleted file mode 100644 index 4442874d2..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.ts +++ /dev/null @@ -1,47 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -/** - * Person is a person! - * They have a name and an address - */ -export class Person { - "Name": string; - "Address": services$0.Address | null; - - /** Creates a new Person instance. */ - constructor($$source: Partial = {}) { - if (!("Name" in $$source)) { - this["Name"] = ""; - } - if (!("Address" in $$source)) { - this["Address"] = null; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Person instance from a string or object. - */ - static createFrom($$source: any = {}): Person { - const $$createField1_0 = $$createType1; - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - if ("Address" in $$parsedSource) { - $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); - } - return new Person($$parsedSource as Partial); - } -} - -// Private type creation functions -const $$createType0 = services$0.Address.createFrom; -const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.ts index af8488811..4442874d2 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.ts @@ -1,6 +1,47 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; + +/** + * Person is a person! + * They have a name and an address + */ +export class Person { + "Name": string; + "Address": services$0.Address | null; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Address" in $$source)) { + this["Address"] = null; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Person instance from a string or object. + */ + static createFrom($$source: any = {}): Person { + const $$createField1_0 = $$createType1; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("Address" in $$parsedSource) { + $$parsedSource["Address"] = $$createField1_0($$parsedSource["Address"]); + } + return new Person($$parsedSource as Partial); + } +} + +// Private type creation functions +const $$createType0 = services$0.Address.createFrom; +const $$createType1 = $Create.Nullable($$createType0); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.ts index 1a5bd5ebf..e4d86b717 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.ts @@ -6,4 +6,6 @@ export { OtherService }; -export * from "./models.js"; +export { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.ts deleted file mode 100644 index eb9c1b6bf..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.ts +++ /dev/null @@ -1,35 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import {Create as $Create} from "/wails/runtime.js"; - -export class Address { - "Street": string; - "State": string; - "Country": string; - - /** Creates a new Address instance. */ - constructor($$source: Partial
= {}) { - if (!("Street" in $$source)) { - this["Street"] = ""; - } - if (!("State" in $$source)) { - this["State"] = ""; - } - if (!("Country" in $$source)) { - this["Country"] = ""; - } - - Object.assign(this, $$source); - } - - /** - * Creates a new Address instance from a string or object. - */ - static createFrom($$source: any = {}): Address { - let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; - return new Address($$parsedSource as Partial
); - } -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.ts index 826377880..eb9c1b6bf 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.ts @@ -1,6 +1,35 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Address -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Create as $Create} from "/wails/runtime.js"; + +export class Address { + "Street": string; + "State": string; + "Country": string; + + /** Creates a new Address instance. */ + constructor($$source: Partial
= {}) { + if (!("Street" in $$source)) { + this["Street"] = ""; + } + if (!("State" in $$source)) { + this["State"] = ""; + } + if (!("Country" in $$source)) { + this["Country"] = ""; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new Address instance from a string or object. + */ + static createFrom($$source: any = {}): Address { + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + return new Address($$parsedSource as Partial
); + } +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.ts index ab404cbb3..641595e74 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.ts @@ -13,7 +13,7 @@ import {Call as $Call, Create as $Create} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/warnings.log b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/warnings.log new file mode 100644 index 000000000..dbefd8749 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/warnings.log @@ -0,0 +1,47 @@ +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *R is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *S is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *T is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *U is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *V is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *X is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *Y is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *Z is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *any is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *complex64 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *encoding.TextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *float32 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.CustomInterface is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.EmbeddedInterface is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfaceAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfaceType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.NonTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValueType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *int is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *string is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *uint is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type R is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type T is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type W is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type any is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type bool is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type complex64 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type float32 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.EmbeddedPointer is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.NonTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValueType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.WrongAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.WrongType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/encoding/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/encoding/index.ts new file mode 100644 index 000000000..ba2885969 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/encoding/index.ts @@ -0,0 +1,6 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export type { + TextMarshaler +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/encoding/json/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/encoding/json/index.ts new file mode 100644 index 000000000..00ec01151 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/encoding/json/index.ts @@ -0,0 +1,6 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export type { + Marshaler +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/encoding/json/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/encoding/json/models.ts new file mode 100644 index 000000000..8e7f0b3f1 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/encoding/json/models.ts @@ -0,0 +1,8 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * Marshaler is the interface implemented by types that + * can marshal themselves into valid JSON. + */ +export type Marshaler = any; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/encoding/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/encoding/models.ts new file mode 100644 index 000000000..51089b14d --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/encoding/models.ts @@ -0,0 +1,10 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * TextMarshaler is the interface implemented by an object that can + * marshal itself into a textual form. + * + * MarshalText encodes the receiver into UTF-8-encoded text and returns the result. + */ +export type TextMarshaler = any; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.ts index a63c49bc5..85e56fa47 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.ts @@ -12,7 +12,11 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as nobindingshere$0 from "../no_bindings_here/models.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; /** * Get someone. @@ -38,6 +42,11 @@ export function GetButDifferent(): Promise<$models.GenericPerson> & { c return $resultPromise; } +export function GetButForeignPrivateAlias(): Promise & { cancel(): void } { + let $resultPromise = $Call.ByID(643456960) as any; + return $resultPromise; +} + /** * Greet a lot of unusual things. */ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.ts index 8e624c826..dc8c81e2a 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.ts @@ -6,4 +6,14 @@ export { GreetService }; -export * from "./models.js"; +export type { + Alias, + AliasStruct, + AliasedPerson, + EmptyAliasStruct, + EmptyStruct, + GenericPerson, + OtherAliasStruct, + Person, + StrangelyAliasedPerson +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.ts deleted file mode 100644 index 2e7590270..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.ts +++ /dev/null @@ -1,81 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * A nice type Alias. - */ -export type Alias = number; - -/** - * A struct alias. - * This should be rendered as a typedef or interface in every mode. - */ -export interface AliasStruct { - /** - * A field with a comment. - */ - "Foo": number[] | null; - - /** - * Definitely not Foo. - */ - "Bar"?: string; - "Baz"?: string; - - /** - * A nested alias struct. - */ - "Other": OtherAliasStruct; -} - -/** - * A class alias. - */ -export type AliasedPerson = Person; - -/** - * An empty struct alias. - */ -export interface EmptyAliasStruct { -} - -/** - * An empty struct. - */ -export interface EmptyStruct { -} - -/** - * A generic struct containing an alias. - */ -export interface GenericPerson { - "Name": T | null; - "AliasedField": Alias; -} - -/** - * Another struct alias. - */ -export interface OtherAliasStruct { - "NoMoreIdeas": number[] | null; -} - -/** - * A non-generic struct containing an alias. - */ -export interface Person { - /** - * The Person's name. - */ - "Name": string; - - /** - * A random alias field. - */ - "AliasedField": Alias; -} - -/** - * Another class alias, but ordered after its aliased class. - */ -export type StrangelyAliasedPerson = Person; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.ts index 564f2b548..e5b3f2b1b 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.ts @@ -1,14 +1,81 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Alias, - AliasStruct, - AliasedPerson, - EmptyAliasStruct, - EmptyStruct, - GenericPerson, - OtherAliasStruct, - Person, - StrangelyAliasedPerson -} from "./internal.js"; +/** + * A nice type Alias. + */ +export type Alias = number; + +/** + * A struct alias. + * This should be rendered as a typedef or interface in every mode. + */ +export interface AliasStruct { + /** + * A field with a comment. + */ + "Foo": number[] | null; + + /** + * Definitely not Foo. + */ + "Bar"?: string; + "Baz"?: string; + + /** + * A nested alias struct. + */ + "Other": OtherAliasStruct; +} + +/** + * A class alias. + */ +export type AliasedPerson = Person; + +/** + * An empty struct alias. + */ +export interface EmptyAliasStruct { +} + +/** + * An empty struct. + */ +export interface EmptyStruct { +} + +/** + * A generic struct containing an alias. + */ +export interface GenericPerson { + "Name": T; + "AliasedField": Alias; +} + +/** + * Another struct alias. + */ +export interface OtherAliasStruct { + "NoMoreIdeas": number[] | null; +} + +/** + * A non-generic struct containing an alias. + */ +export interface Person { + /** + * The Person's name. + */ + "Name": string; + + /** + * A random alias field. + */ + "AliasedField": Alias; +} + +/** + * Another class alias, but ordered after its aliased class. + */ +export type StrangelyAliasedPerson = Person; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.ts index b0ad675d9..32b85fccb 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.ts index 8e624c826..f645e5730 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.ts @@ -6,4 +6,12 @@ export { GreetService }; -export * from "./models.js"; +export { + Title +} from "./models.js"; + +export type { + Embedded1, + Embedded3, + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.ts deleted file mode 100644 index 7cdb88164..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.ts +++ /dev/null @@ -1,121 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -export interface Embedded1 { - /** - * Friends should be shadowed in Person by a field of lesser depth - */ - "Friends": number; - - /** - * Vanish should be omitted from Person because there is another field with same depth and no tag - */ - "Vanish": number; - - /** - * StillThere should be shadowed in Person by other field with same depth and a json tag - */ - "StillThere": string; - - /** - * NamingThingsIsHard is a law of programming - */ - "NamingThingsIsHard": `${boolean}`; -} - -export type Embedded3 = string; - -/** - * Person represents a person - */ -export interface Person { - /** - * Titles is optional in JSON - */ - "Titles"?: Title[] | null; - - /** - * Names has a - * multiline comment - */ - "Names": string[] | null; - - /** - * Partner has a custom and complex JSON key - */ - "Partner": Person | null; - "Friends": (Person | null)[] | null; - - /** - * NamingThingsIsHard is a law of programming - */ - "NamingThingsIsHard": `${boolean}`; - - /** - * StillThereButRenamed should shadow in Person the other field with same depth and no json tag - */ - "StillThere": Embedded3 | null; - - /** - * StrangeNumber maps to "-" - */ - "-": number; - - /** - * Embedded3 should appear with key "Embedded3" - */ - "Embedded3": Embedded3; - - /** - * StrangerNumber is serialized as a string - */ - "StrangerNumber": `${number}`; - - /** - * StrangestString is optional and serialized as a JSON string - */ - "StrangestString"?: `"${string}"`; - - /** - * StringStrangest is serialized as a JSON string and optional - */ - "StringStrangest"?: `"${string}"`; - - /** - * embedded4 should be optional and appear with key "emb4" - */ - "emb4"?: embedded4; -} - -/** - * Title is a title - */ -export enum Title { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero = "", - - /** - * Mister is a title - */ - Mister = "Mr", - Miss = "Miss", - Ms = "Ms", - Mrs = "Mrs", - Dr = "Dr", -}; - -export interface embedded4 { - /** - * NamingThingsIsHard is a law of programming - */ - "NamingThingsIsHard": `${boolean}`; - - /** - * Friends should not be shadowed in Person as embedded4 is not embedded - * from encoding/json's point of view; - * however, it should be shadowed in Embedded1 - */ - "Friends": boolean; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.ts index 34aee6781..7cdb88164 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.ts @@ -1,12 +1,121 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Title -} from "./internal.js"; +export interface Embedded1 { + /** + * Friends should be shadowed in Person by a field of lesser depth + */ + "Friends": number; -export type { - Embedded1, - Embedded3, - Person -} from "./internal.js"; + /** + * Vanish should be omitted from Person because there is another field with same depth and no tag + */ + "Vanish": number; + + /** + * StillThere should be shadowed in Person by other field with same depth and a json tag + */ + "StillThere": string; + + /** + * NamingThingsIsHard is a law of programming + */ + "NamingThingsIsHard": `${boolean}`; +} + +export type Embedded3 = string; + +/** + * Person represents a person + */ +export interface Person { + /** + * Titles is optional in JSON + */ + "Titles"?: Title[] | null; + + /** + * Names has a + * multiline comment + */ + "Names": string[] | null; + + /** + * Partner has a custom and complex JSON key + */ + "Partner": Person | null; + "Friends": (Person | null)[] | null; + + /** + * NamingThingsIsHard is a law of programming + */ + "NamingThingsIsHard": `${boolean}`; + + /** + * StillThereButRenamed should shadow in Person the other field with same depth and no json tag + */ + "StillThere": Embedded3 | null; + + /** + * StrangeNumber maps to "-" + */ + "-": number; + + /** + * Embedded3 should appear with key "Embedded3" + */ + "Embedded3": Embedded3; + + /** + * StrangerNumber is serialized as a string + */ + "StrangerNumber": `${number}`; + + /** + * StrangestString is optional and serialized as a JSON string + */ + "StrangestString"?: `"${string}"`; + + /** + * StringStrangest is serialized as a JSON string and optional + */ + "StringStrangest"?: `"${string}"`; + + /** + * embedded4 should be optional and appear with key "emb4" + */ + "emb4"?: embedded4; +} + +/** + * Title is a title + */ +export enum Title { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = "", + + /** + * Mister is a title + */ + Mister = "Mr", + Miss = "Miss", + Ms = "Ms", + Mrs = "Mrs", + Dr = "Dr", +}; + +export interface embedded4 { + /** + * NamingThingsIsHard is a law of programming + */ + "NamingThingsIsHard": `${boolean}`; + + /** + * Friends should not be shadowed in Person as embedded4 is not embedded + * from encoding/json's point of view; + * however, it should be shadowed in Embedded1 + */ + "Friends": boolean; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.ts index e4df5ba19..05fa84c0c 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.ts index 8e624c826..14252454b 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export type { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.ts index b27d0d189..6691fb86c 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.ts @@ -1,6 +1,9 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Person -} from "./internal.js"; +/** + * Person represents a person + */ +export interface Person { + "Name": string; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.ts index d01733be6..3f91922f1 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Make a cycle. diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.ts index 8e624c826..bbf592890 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.ts @@ -6,4 +6,8 @@ export { GreetService }; -export * from "./models.js"; +export type { + StructA, + StructC, + StructE +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.ts deleted file mode 100644 index 256987ac8..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.ts +++ /dev/null @@ -1,21 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -export interface StructA { - "B": structB | null; -} - -export interface StructC { - "D": structD; -} - -export interface StructE { -} - -export interface structB { - "A": StructA | null; -} - -export interface structD { - "E": StructE; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.ts index cae6922a9..256987ac8 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.ts @@ -1,8 +1,21 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - StructA, - StructC, - StructE -} from "./internal.js"; +export interface StructA { + "B": structB | null; +} + +export interface StructC { + "D": structD; +} + +export interface StructE { +} + +export interface structB { + "A": StructA | null; +} + +export interface structD { + "E": StructE; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.ts index 23e08fde4..435914299 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Make a cycle. diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.ts index 8e624c826..16cef660c 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.ts @@ -6,4 +6,8 @@ export { GreetService }; -export * from "./models.js"; +export type { + Alias, + Cyclic, + GenericCyclic +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.ts deleted file mode 100644 index b378c3550..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.ts +++ /dev/null @@ -1,8 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -export type Alias = Cyclic | null; - -export type Cyclic = ({ [_: string]: Alias } | null)[] | null; - -export type GenericCyclic = {"X": GenericCyclic | null, "Y": (T | null)[] | null}[] | null; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.ts index e4c804503..5395305fc 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.ts @@ -1,8 +1,8 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Alias, - Cyclic, - GenericCyclic -} from "./internal.js"; +export type Alias = Cyclic | null; + +export type Cyclic = ({ [_: string]: Alias } | null)[] | null; + +export type GenericCyclic = {"X": GenericCyclic | null, "Y": T[] | null}[] | null; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.ts new file mode 100644 index 000000000..bb2426022 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.ts @@ -0,0 +1,13 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +console.log("Hello everywhere!"); +console.log("Hello everywhere again!"); +console.log("Hello Interfaces!"); +console.log("Hello TS!"); +console.log("Hello TS Interfaces!"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.ts new file mode 100644 index 000000000..e9ce7b0da --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.ts @@ -0,0 +1,20 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * An exported but internal service. + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +export function Method($0: $models.InternalModel): Promise & { cancel(): void } { + let $resultPromise = $Call.ByID(538079117, $0) as any; + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.ts new file mode 100644 index 000000000..efe76e58b --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.ts @@ -0,0 +1,16 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * An exported but internal model. + */ +export interface InternalModel { + "Field": string; +} + +/** + * An unexported model. + */ +export interface unexportedModel { + "Field": string; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.ts new file mode 100644 index 000000000..82d89784a --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.ts @@ -0,0 +1,6 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export type { + Dummy +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.ts similarity index 55% rename from v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.ts rename to v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.ts index b76080cf3..71070d754 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.ts @@ -1,8 +1,5 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export interface Address { - "Street": string; - "State": string; - "Country": string; +export interface Dummy { } diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.ts new file mode 100644 index 000000000..6f1ab3204 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.ts @@ -0,0 +1,24 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as otherpackage$0 from "./otherpackage/models.js"; + +function InternalMethod($0: string): Promise & { cancel(): void } { + let $resultPromise = $Call.ByID(3518775569, $0) as any; + return $resultPromise; +} + +export function VisibleMethod($0: otherpackage$0.Dummy): Promise & { cancel(): void } { + let $resultPromise = $Call.ByID(474018228, $0) as any; + return $resultPromise; +} + +export async function CustomMethod(arg: string): Promise { + await InternalMethod("Hello " + arg + "!"); +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js new file mode 100644 index 000000000..138385f53 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("everywhere"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js new file mode 100644 index 000000000..19d5c2f42 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("everywhere again"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_i.js b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_i.js new file mode 100644 index 000000000..442f20472 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_i.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("Interfaces"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_t.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_t.ts new file mode 100644 index 000000000..253d3f2f6 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_t.ts @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("TS"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_ti.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_ti.ts new file mode 100644 index 000000000..7400e97aa --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_ti.ts @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("TS Interfaces"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.ts new file mode 100644 index 000000000..fa074e92c --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.ts @@ -0,0 +1,20 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * An unexported service. + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +export function Method($0: $models.unexportedModel): Promise & { cancel(): void } { + let $resultPromise = $Call.ByID(37626172, $0) as any; + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.ts index 757e5a125..561d0b5c4 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.ts index 8e624c826..e66941c16 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.ts @@ -6,4 +6,11 @@ export { GreetService }; -export * from "./models.js"; +export { + Age, + Title +} from "./models.js"; + +export type { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.ts deleted file mode 100644 index 7ac95c046..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.ts +++ /dev/null @@ -1,29 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * Person represents a person - */ -export interface Person { - "Title": Title; - "Name": string; -} - -/** - * Title is a title - */ -export enum Title { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero = "", - - /** - * Mister is a title - */ - Mister = "Mr", - Miss = "Miss", - Ms = "Ms", - Mrs = "Mrs", - Dr = "Dr", -}; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.ts index 224a05595..74d673e16 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.ts @@ -1,10 +1,55 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Title -} from "./internal.js"; +/** + * Age is an integer with some predefined values + */ +export type Age = number; -export type { - Person -} from "./internal.js"; +/** + * Predefined constants for type Age. + * @namespace + */ +export const Age = { + NewBorn: 0, + Teenager: 12, + YoungAdult: 18, + + /** + * Oh no, some grey hair! + */ + MiddleAged: 50, + + /** + * Unbelievable! + */ + Mathusalem: 1000, +}; + +/** + * Person represents a person + */ +export interface Person { + "Title": Title; + "Name": string; + "Age": Age; +} + +/** + * Title is a title + */ +export enum Title { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = "", + + /** + * Mister is a title + */ + Mister = "Mr", + Miss = "Miss", + Ms = "Ms", + Mrs = "Mrs", + Dr = "Dr", +}; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.ts index c9d993ab7..01c612edc 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.ts @@ -1,4 +1,6 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export * from "./models.js"; +export { + Title +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.ts deleted file mode 100644 index 887aee9ba..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.ts +++ /dev/null @@ -1,18 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -export enum Title { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero = "", - - /** - * Mister is a title - */ - Mister = "Mr", - Miss = "Miss", - Ms = "Ms", - Mrs = "Mrs", - Dr = "Dr", -}; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.ts index e8981fc5e..887aee9ba 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.ts @@ -1,6 +1,18 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Title -} from "./internal.js"; +export enum Title { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = "", + + /** + * Mister is a title + */ + Mister = "Mr", + Miss = "Miss", + Ms = "Ms", + Mrs = "Mrs", + Dr = "Dr", +}; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.ts index c2b76d806..c649bfb82 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.ts index 8e624c826..14252454b 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export type { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.ts deleted file mode 100644 index 99b989f07..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.ts +++ /dev/null @@ -1,14 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -/** - * Person is a person - */ -export interface Person { - "Name": string; - "Address": services$0.Address | null; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.ts index b27d0d189..99b989f07 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.ts @@ -1,6 +1,14 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; + +/** + * Person is a person + */ +export interface Person { + "Name": string; + "Address": services$0.Address | null; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.ts index 1a5bd5ebf..8857d2bc5 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.ts @@ -6,4 +6,6 @@ export { OtherService }; -export * from "./models.js"; +export type { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.ts index da9b10c49..b76080cf3 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.ts @@ -1,6 +1,8 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Address -} from "./internal.js"; +export interface Address { + "Street": string; + "State": string; + "Country": string; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.ts index 824e463aa..5fb794ba2 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.ts @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.ts index c2b76d806..c649bfb82 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.ts index 8e624c826..14252454b 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export type { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.ts deleted file mode 100644 index 70b85519b..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.ts +++ /dev/null @@ -1,11 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as other$0 from "./services/other/models.js"; - -export interface Person { - "Name": string; - "Address": other$0.Address | null; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.ts index b27d0d189..70b85519b 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.ts @@ -1,6 +1,11 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as other$0 from "./services/other/models.js"; + +export interface Person { + "Name": string; + "Address": other$0.Address | null; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.ts index 1a5bd5ebf..8857d2bc5 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.ts @@ -6,4 +6,6 @@ export { OtherService }; -export * from "./models.js"; +export type { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.ts index da9b10c49..b76080cf3 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.ts @@ -1,6 +1,8 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Address -} from "./internal.js"; +export interface Address { + "Street": string; + "State": string; + "Country": string; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.ts index 1d7abd642..23b854905 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.ts @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.ts new file mode 100644 index 000000000..1dcdadc91 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.ts @@ -0,0 +1,23 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +export type { + EmbeddedCustomInterface, + EmbeddedOriginalInterface, + EmbeddedPointer, + EmbeddedPointerPtr, + EmbeddedValue, + EmbeddedValuePtr, + Maps, + PointerAlias, + PointerTextMarshaler, + StringAlias, + StringType, + ValueAlias, + ValueTextMarshaler +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.ts new file mode 100644 index 000000000..9a9db9f4a --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.ts @@ -0,0 +1,473 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export type EmbeddedCustomInterface = string; + +export type EmbeddedOriginalInterface = string; + +export type EmbeddedPointer = string; + +export type EmbeddedPointerPtr = string; + +export type EmbeddedValue = string; + +export type EmbeddedValuePtr = string; + +export interface Maps { + /** + * Reject + */ + "Bool": { [_: string]: number } | null; + + /** + * Accept + */ + "Int": { [_: `${number}`]: number } | null; + + /** + * Accept + */ + "Uint": { [_: `${number}`]: number } | null; + + /** + * Reject + */ + "Float": { [_: string]: number } | null; + + /** + * Reject + */ + "Complex": { [_: string]: number } | null; + + /** + * Accept + */ + "Byte": { [_: `${number}`]: number } | null; + + /** + * Accept + */ + "Rune": { [_: `${number}`]: number } | null; + + /** + * Accept + */ + "String": { [_: string]: number } | null; + + /** + * Reject + */ + "IntPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "UintPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "FloatPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "ComplexPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "StringPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "NTM": { [_: string]: number } | null; + + /** + * Reject + */ + "NTMPtr": { [_: string]: number } | null; + + /** + * Accept + */ + "VTM": { [_: ValueTextMarshaler]: number } | null; + + /** + * Accept + */ + "VTMPtr": { [_: ValueTextMarshaler]: number } | null; + + /** + * Reject + */ + "PTM": { [_: string]: number } | null; + + /** + * Accept + */ + "PTMPtr": { [_: PointerTextMarshaler]: number } | null; + + /** + * Accept, hide + */ + "JTM": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "JTMPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "A": { [_: string]: number } | null; + + /** + * Reject + */ + "APtr": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "TM": { [_: string]: number } | null; + + /** + * Reject + */ + "TMPtr": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "CI": { [_: string]: number } | null; + + /** + * Reject + */ + "CIPtr": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "EI": { [_: string]: number } | null; + + /** + * Reject + */ + "EIPtr": { [_: string]: number } | null; + + /** + * Accept + */ + "EV": { [_: EmbeddedValue]: number } | null; + + /** + * Accept + */ + "EVPtr": { [_: EmbeddedValue]: number } | null; + + /** + * Accept + */ + "EVP": { [_: EmbeddedValuePtr]: number } | null; + + /** + * Accept + */ + "EVPPtr": { [_: EmbeddedValuePtr]: number } | null; + + /** + * Reject + */ + "EP": { [_: string]: number } | null; + + /** + * Accept + */ + "EPPtr": { [_: EmbeddedPointer]: number } | null; + + /** + * Accept + */ + "EPP": { [_: EmbeddedPointerPtr]: number } | null; + + /** + * Accept + */ + "EPPPtr": { [_: EmbeddedPointerPtr]: number } | null; + + /** + * Accept + */ + "ECI": { [_: EmbeddedCustomInterface]: number } | null; + + /** + * Accept + */ + "ECIPtr": { [_: EmbeddedCustomInterface]: number } | null; + + /** + * Accept + */ + "EOI": { [_: EmbeddedOriginalInterface]: number } | null; + + /** + * Accept + */ + "EOIPtr": { [_: EmbeddedOriginalInterface]: number } | null; + + /** + * Reject + */ + "WT": { [_: string]: number } | null; + + /** + * Reject + */ + "WA": { [_: string]: number } | null; + + /** + * Accept + */ + "ST": { [_: StringType]: number } | null; + + /** + * Accept + */ + "SA": { [_: StringAlias]: number } | null; + + /** + * Accept + */ + "IntT": { [_: `${number}`]: number } | null; + + /** + * Accept + */ + "IntA": { [_: `${number}`]: number } | null; + + /** + * Reject + */ + "VT": { [_: string]: number } | null; + + /** + * Reject + */ + "VTPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "VPT": { [_: string]: number } | null; + + /** + * Reject + */ + "VPTPtr": { [_: string]: number } | null; + + /** + * Accept + */ + "VA": { [_: ValueAlias]: number } | null; + + /** + * Accept + */ + "VAPtr": { [_: ValueAlias]: number } | null; + + /** + * Accept, hide + */ + "VPA": { [_: string]: number } | null; + + /** + * Reject + */ + "VPAPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "PT": { [_: string]: number } | null; + + /** + * Reject + */ + "PTPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "PPT": { [_: string]: number } | null; + + /** + * Reject + */ + "PPTPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "PA": { [_: string]: number } | null; + + /** + * Accept + */ + "PAPtr": { [_: PointerAlias]: number } | null; + + /** + * Accept, hide + */ + "PPA": { [_: string]: number } | null; + + /** + * Reject + */ + "PPAPtr": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "IT": { [_: string]: number } | null; + + /** + * Reject + */ + "ITPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "IPT": { [_: string]: number } | null; + + /** + * Reject + */ + "IPTPtr": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "IA": { [_: string]: number } | null; + + /** + * Reject + */ + "IAPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "IPA": { [_: string]: number } | null; + + /** + * Reject + */ + "IPAPtr": { [_: string]: number } | null; + + /** + * Soft reject + */ + "TPR": { [_: string]: number } | null; + + /** + * Soft reject + */ + "TPRPtr": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "TPS": { [_: string]: number } | null; + + /** + * Soft reject + */ + "TPSPtr": { [_: string]: number } | null; + + /** + * Soft reject + */ + "TPT": { [_: string]: number } | null; + + /** + * Soft reject + */ + "TPTPtr": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "TPU": { [_: string]: number } | null; + + /** + * Soft reject + */ + "TPUPtr": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "TPV": { [_: string]: number } | null; + + /** + * Soft reject + */ + "TPVPtr": { [_: string]: number } | null; + + /** + * Soft reject + */ + "TPW": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "TPWPtr": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "TPX": { [_: string]: number } | null; + + /** + * Soft reject + */ + "TPXPtr": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "TPY": { [_: string]: number } | null; + + /** + * Soft reject + */ + "TPYPtr": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "TPZ": { [_: string]: number } | null; + + /** + * Soft reject + */ + "TPZPtr": { [_: string]: number } | null; +} + +export type PointerAlias = PointerTextMarshaler; + +export type PointerTextMarshaler = string; + +export type StringAlias = string; + +export type StringType = string; + +export type ValueAlias = ValueTextMarshaler; + +export type ValueTextMarshaler = string; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.ts new file mode 100644 index 000000000..8669b92be --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.ts @@ -0,0 +1,15 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +export function Method(): Promise<$models.Maps<$models.PointerTextMarshaler, number, number, $models.ValueTextMarshaler, $models.PointerTextMarshaler | null, $models.ValueTextMarshaler, $models.StringType, $models.ValueTextMarshaler, $models.PointerTextMarshaler | null>> & { cancel(): void } { + let $resultPromise = $Call.ByID(4021345184) as any; + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.ts new file mode 100644 index 000000000..7c55b767b --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.ts @@ -0,0 +1,33 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +export type { + AliasJsonMarshaler, + AliasMarshaler, + AliasNonMarshaler, + AliasTextMarshaler, + Data, + ImplicitJsonButText, + ImplicitJsonMarshaler, + ImplicitMarshaler, + ImplicitNonJson, + ImplicitNonMarshaler, + ImplicitNonText, + ImplicitTextButJson, + ImplicitTextMarshaler, + NonMarshaler, + PointerJsonMarshaler, + PointerMarshaler, + PointerTextMarshaler, + UnderlyingJsonMarshaler, + UnderlyingMarshaler, + UnderlyingTextMarshaler, + ValueJsonMarshaler, + ValueMarshaler, + ValueTextMarshaler +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.ts new file mode 100644 index 000000000..02d639994 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.ts @@ -0,0 +1,309 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as encoding$0 from "../../../../../../../../encoding/models.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as json$0 from "../../../../../../../../encoding/json/models.js"; + +/** + * any + */ +export type AliasJsonMarshaler = any; + +/** + * any + */ +export type AliasMarshaler = any; + +/** + * struct{} + */ +export interface AliasNonMarshaler { +} + +/** + * string + */ +export type AliasTextMarshaler = string; + +export interface Data { + "NM": NonMarshaler; + + /** + * NonMarshaler | null + */ + "NMPtr": NonMarshaler | null; + "VJM": ValueJsonMarshaler; + + /** + * ValueJsonMarshaler | null + */ + "VJMPtr": ValueJsonMarshaler | null; + "PJM": PointerJsonMarshaler; + + /** + * PointerJsonMarshaler | null + */ + "PJMPtr": PointerJsonMarshaler | null; + "VTM": ValueTextMarshaler; + + /** + * ValueTextMarshaler | null + */ + "VTMPtr": ValueTextMarshaler | null; + "PTM": PointerTextMarshaler; + + /** + * PointerTextMarshaler | null + */ + "PTMPtr": PointerTextMarshaler | null; + "VM": ValueMarshaler; + + /** + * ValueMarshaler | null + */ + "VMPtr": ValueMarshaler | null; + "PM": PointerMarshaler; + + /** + * PointerMarshaler | null + */ + "PMPtr": PointerMarshaler | null; + "UJM": UnderlyingJsonMarshaler; + + /** + * UnderlyingJsonMarshaler | null + */ + "UJMPtr": UnderlyingJsonMarshaler | null; + "UTM": UnderlyingTextMarshaler; + + /** + * UnderlyingTextMarshaler | null + */ + "UTMPtr": UnderlyingTextMarshaler | null; + "UM": UnderlyingMarshaler; + + /** + * UnderlyingMarshaler | null + */ + "UMPtr": UnderlyingMarshaler | null; + + /** + * any + */ + "JM": any; + + /** + * any | null + */ + "JMPtr": any | null; + + /** + * string + */ + "TM": string; + + /** + * string | null + */ + "TMPtr": string | null; + + /** + * any + */ + "CJM": any; + + /** + * any | null + */ + "CJMPtr": any | null; + + /** + * string + */ + "CTM": string; + + /** + * string | null + */ + "CTMPtr": string | null; + + /** + * any + */ + "CM": any; + + /** + * any | null + */ + "CMPtr": any | null; + "ANM": AliasNonMarshaler; + + /** + * AliasNonMarshaler | null + */ + "ANMPtr": AliasNonMarshaler | null; + "AJM": AliasJsonMarshaler; + + /** + * AliasJsonMarshaler | null + */ + "AJMPtr": AliasJsonMarshaler | null; + "ATM": AliasTextMarshaler; + + /** + * AliasTextMarshaler | null + */ + "ATMPtr": AliasTextMarshaler | null; + "AM": AliasMarshaler; + + /** + * AliasMarshaler | null + */ + "AMPtr": AliasMarshaler | null; + "ImJM": ImplicitJsonMarshaler; + + /** + * ImplicitJsonMarshaler | null + */ + "ImJMPtr": ImplicitJsonMarshaler | null; + "ImTM": ImplicitTextMarshaler; + + /** + * ImplicitTextMarshaler | null + */ + "ImTMPtr": ImplicitTextMarshaler | null; + "ImM": ImplicitMarshaler; + + /** + * ImplicitMarshaler | null + */ + "ImMPtr": ImplicitMarshaler | null; + "ImNJ": ImplicitNonJson; + + /** + * ImplicitNonJson | null + */ + "ImNJPtr": ImplicitNonJson | null; + "ImNT": ImplicitNonText; + + /** + * ImplicitNonText | null + */ + "ImNTPtr": ImplicitNonText | null; + "ImNM": ImplicitNonMarshaler; + + /** + * ImplicitNonMarshaler | null + */ + "ImNMPtr": ImplicitNonMarshaler | null; + "ImJbT": ImplicitJsonButText; + + /** + * ImplicitJsonButText | null + */ + "ImJbTPtr": ImplicitJsonButText | null; + "ImTbJ": ImplicitTextButJson; + + /** + * ImplicitTextButJson | null + */ + "ImTbJPtr": ImplicitTextButJson | null; +} + +/** + * any + */ +export type ImplicitJsonButText = any; + +/** + * any + */ +export type ImplicitJsonMarshaler = any; + +/** + * any + */ +export type ImplicitMarshaler = any; + +/** + * string + */ +export type ImplicitNonJson = string; + +/** + * class{ Marshaler, TextMarshaler } + */ +export interface ImplicitNonMarshaler { + "Marshaler": json$0.Marshaler; + "TextMarshaler": encoding$0.TextMarshaler; +} + +/** + * any + */ +export type ImplicitNonText = any; + +/** + * any + */ +export type ImplicitTextButJson = any; + +/** + * string + */ +export type ImplicitTextMarshaler = string; + +/** + * class {} + */ +export interface NonMarshaler { +} + +/** + * any + */ +export type PointerJsonMarshaler = any; + +/** + * any + */ +export type PointerMarshaler = any; + +/** + * string + */ +export type PointerTextMarshaler = string; + +/** + * any + */ +export type UnderlyingJsonMarshaler = any; + +/** + * any + */ +export type UnderlyingMarshaler = any; + +/** + * string + */ +export type UnderlyingTextMarshaler = string; + +/** + * any + */ +export type ValueJsonMarshaler = any; + +/** + * any + */ +export type ValueMarshaler = any; + +/** + * string + */ +export type ValueTextMarshaler = string; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.ts new file mode 100644 index 000000000..105e077e3 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.ts @@ -0,0 +1,15 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +export function Method(): Promise<$models.Data> & { cancel(): void } { + let $resultPromise = $Call.ByID(4021345184) as any; + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.ts index 6bd662438..bf611e486 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.ts @@ -6,4 +6,9 @@ export { SomeMethods }; -export * from "./models.js"; +export type { + HowDifferent, + Impersonator, + Person, + PrivatePerson +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.ts deleted file mode 100644 index 35a843ab0..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.ts +++ /dev/null @@ -1,54 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as other$0 from "./other/models.js"; - -/** - * HowDifferent is a curious kind of person - * that lets other people decide how they are different. - */ -export type HowDifferent = other$0.OtherPerson<{ [_: string]: How | null } | null>; - -/** - * Impersonator gets their fields from other people. - */ -export type Impersonator = other$0.OtherPerson; - -/** - * Person is not a number. - */ -export interface Person { - /** - * They have a name. - */ - "Name": string; - - /** - * Exactly 4 sketchy friends. - */ - "Friends": Impersonator[]; -} - -/** - * PrivatePerson gets their fields from hidden sources. - */ -export type PrivatePerson = personImpl; - -export interface personImpl { - /** - * Nickname conceals a person's identity. - */ - "Nickname": string; - - /** - * They have a name. - */ - "Name": string; - - /** - * Exactly 4 sketchy friends. - */ - "Friends": Impersonator[]; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.ts index 9e517b644..c42cce373 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.ts @@ -1,9 +1,64 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - HowDifferent, - Impersonator, - Person, - PrivatePerson -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as other$0 from "./other/models.js"; + +/** + * HowDifferent is a curious kind of person + * that lets other people decide how they are different. + */ +export interface HowDifferent { + /** + * They have a name as well. + */ + "Name": string; + + /** + * But they may have many differences. + */ + "Differences": ({ [_: string]: How } | null)[] | null; +} + +/** + * Impersonator gets their fields from other people. + */ +export type Impersonator = other$0.OtherPerson; + +/** + * Person is not a number. + */ +export interface Person { + /** + * They have a name. + */ + "Name": string; + + /** + * Exactly 4 sketchy friends. + */ + "Friends": Impersonator[]; +} + +/** + * PrivatePerson gets their fields from hidden sources. + */ +export type PrivatePerson = personImpl; + +export interface personImpl { + /** + * Nickname conceals a person's identity. + */ + "Nickname": string; + + /** + * They have a name. + */ + "Name": string; + + /** + * Exactly 4 sketchy friends. + */ + "Friends": Impersonator[]; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.ts index 9e85cc3c8..b9f2889db 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.ts @@ -6,4 +6,6 @@ export { OtherMethods }; -export * from "./models.js"; +export type { + OtherPerson +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.ts deleted file mode 100644 index 756721e0f..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.ts +++ /dev/null @@ -1,17 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * OtherPerson is like a person, but different. - */ -export interface OtherPerson { - /** - * They have a name as well. - */ - "Name": string; - - /** - * But they may have many differences. - */ - "Differences": (T | null)[] | null; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.ts index 596daa5b5..6ca5b82a2 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.ts @@ -1,6 +1,17 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - OtherPerson -} from "./internal.js"; +/** + * OtherPerson is like a person, but different. + */ +export interface OtherPerson { + /** + * They have a name as well. + */ + "Name": string; + + /** + * But they may have many differences. + */ + "Differences": T[] | null; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.ts index 5a21244eb..81f2b2430 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * LikeThisOne is an example method that does nothing. diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.ts index c2b76d806..c649bfb82 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.ts index 8e624c826..14252454b 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export type { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.ts deleted file mode 100644 index 3ab21d612..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.ts +++ /dev/null @@ -1,11 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -export interface Person { - "Name": string; - "Address": services$0.Address | null; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.ts index b27d0d189..3ab21d612 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.ts @@ -1,6 +1,11 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; + +export interface Person { + "Name": string; + "Address": services$0.Address | null; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.ts index 1a5bd5ebf..8857d2bc5 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.ts @@ -6,4 +6,6 @@ export { OtherService }; -export * from "./models.js"; +export type { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.ts index da9b10c49..b76080cf3 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.ts @@ -1,6 +1,8 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Address -} from "./internal.js"; +export interface Address { + "Street": string; + "State": string; + "Country": string; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.ts index fcbad044f..d8ddc9193 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.ts @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.ts index 25e0a2856..59d1e0f13 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; export function ArrayInt($in: number[]): Promise & { cancel(): void } { let $resultPromise = $Call.ByID(3862002418, $in) as any; @@ -102,8 +102,8 @@ export function MapIntInt($in: { [_: `${number}`]: number } | null): Promise & { cancel(): void } { - let $resultPromise = $Call.ByID(550413585, $in) as any; +export function MapIntIntPointer($in: { [_: `${number}`]: number | null } | null): Promise & { cancel(): void } { + let $resultPromise = $Call.ByID(2163571325, $in) as any; return $resultPromise; } diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.ts index 8e624c826..14252454b 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export type { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.ts deleted file mode 100644 index 5664b79ab..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.ts +++ /dev/null @@ -1,8 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -export interface Person { - "Name": string; - "Parent": Person | null; - "Details": {"Age": number, "Address": {"Street": string}}; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.ts index b27d0d189..5664b79ab 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.ts @@ -1,6 +1,8 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Person -} from "./internal.js"; +export interface Person { + "Name": string; + "Parent": Person | null; + "Details": {"Age": number, "Address": {"Street": string}}; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.ts index 25e0a2856..59d1e0f13 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; export function ArrayInt($in: number[]): Promise & { cancel(): void } { let $resultPromise = $Call.ByID(3862002418, $in) as any; @@ -102,8 +102,8 @@ export function MapIntInt($in: { [_: `${number}`]: number } | null): Promise & { cancel(): void } { - let $resultPromise = $Call.ByID(550413585, $in) as any; +export function MapIntIntPointer($in: { [_: `${number}`]: number | null } | null): Promise & { cancel(): void } { + let $resultPromise = $Call.ByID(2163571325, $in) as any; return $resultPromise; } diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.ts index 8e624c826..14252454b 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export type { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.ts deleted file mode 100644 index 5664b79ab..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.ts +++ /dev/null @@ -1,8 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -export interface Person { - "Name": string; - "Parent": Person | null; - "Details": {"Age": number, "Address": {"Street": string}}; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.ts index b27d0d189..5664b79ab 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.ts @@ -1,6 +1,8 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Person -} from "./internal.js"; +export interface Person { + "Name": string; + "Parent": Person | null; + "Details": {"Age": number, "Address": {"Street": string}}; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.ts index c2b76d806..c649bfb82 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.ts index 8e624c826..14252454b 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export type { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.ts deleted file mode 100644 index f29117203..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.ts +++ /dev/null @@ -1,15 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -/** - * Person is a person! - * They have a name and an address - */ -export interface Person { - "Name": string; - "Address": services$0.Address | null; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.ts index b27d0d189..f29117203 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.ts @@ -1,6 +1,15 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; + +/** + * Person is a person! + * They have a name and an address + */ +export interface Person { + "Name": string; + "Address": services$0.Address | null; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.ts index 1a5bd5ebf..8857d2bc5 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.ts @@ -6,4 +6,6 @@ export { OtherService }; -export * from "./models.js"; +export type { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.ts deleted file mode 100644 index b76080cf3..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.ts +++ /dev/null @@ -1,8 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -export interface Address { - "Street": string; - "State": string; - "Country": string; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.ts index da9b10c49..b76080cf3 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.ts @@ -1,6 +1,8 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Address -} from "./internal.js"; +export interface Address { + "Street": string; + "State": string; + "Country": string; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.ts index b619fa79b..0fdb6e4c6 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.ts @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/warnings.log b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/warnings.log new file mode 100644 index 000000000..dbefd8749 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/warnings.log @@ -0,0 +1,47 @@ +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *R is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *S is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *T is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *U is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *V is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *X is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *Y is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *Z is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *any is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *complex64 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *encoding.TextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *float32 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.CustomInterface is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.EmbeddedInterface is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfaceAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfaceType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.NonTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValueType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *int is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *string is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *uint is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type R is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type T is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type W is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type any is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type bool is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type complex64 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type float32 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.EmbeddedPointer is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.NonTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValueType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.WrongAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.WrongType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/encoding/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/encoding/index.ts new file mode 100644 index 000000000..ba2885969 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/encoding/index.ts @@ -0,0 +1,6 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export type { + TextMarshaler +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/encoding/json/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/encoding/json/index.ts new file mode 100644 index 000000000..00ec01151 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/encoding/json/index.ts @@ -0,0 +1,6 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export type { + Marshaler +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/encoding/json/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/encoding/json/models.ts new file mode 100644 index 000000000..8e7f0b3f1 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/encoding/json/models.ts @@ -0,0 +1,8 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * Marshaler is the interface implemented by types that + * can marshal themselves into valid JSON. + */ +export type Marshaler = any; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/encoding/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/encoding/models.ts new file mode 100644 index 000000000..51089b14d --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/encoding/models.ts @@ -0,0 +1,10 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * TextMarshaler is the interface implemented by an object that can + * marshal itself into a textual form. + * + * MarshalText encodes the receiver into UTF-8-encoded text and returns the result. + */ +export type TextMarshaler = any; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.ts index efda674e4..a07b47c37 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/greetservice.ts @@ -12,7 +12,11 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as nobindingshere$0 from "../no_bindings_here/models.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; /** * Get someone. @@ -38,6 +42,11 @@ export function GetButDifferent(): Promise<$models.GenericPerson> & { c return $resultPromise; } +export function GetButForeignPrivateAlias(): Promise & { cancel(): void } { + let $resultPromise = $Call.ByName("main.GreetService.GetButForeignPrivateAlias") as any; + return $resultPromise; +} + /** * Greet a lot of unusual things. */ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.ts index 8e624c826..dc8c81e2a 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/index.ts @@ -6,4 +6,14 @@ export { GreetService }; -export * from "./models.js"; +export type { + Alias, + AliasStruct, + AliasedPerson, + EmptyAliasStruct, + EmptyStruct, + GenericPerson, + OtherAliasStruct, + Person, + StrangelyAliasedPerson +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.ts deleted file mode 100644 index 2e7590270..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/internal.ts +++ /dev/null @@ -1,81 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * A nice type Alias. - */ -export type Alias = number; - -/** - * A struct alias. - * This should be rendered as a typedef or interface in every mode. - */ -export interface AliasStruct { - /** - * A field with a comment. - */ - "Foo": number[] | null; - - /** - * Definitely not Foo. - */ - "Bar"?: string; - "Baz"?: string; - - /** - * A nested alias struct. - */ - "Other": OtherAliasStruct; -} - -/** - * A class alias. - */ -export type AliasedPerson = Person; - -/** - * An empty struct alias. - */ -export interface EmptyAliasStruct { -} - -/** - * An empty struct. - */ -export interface EmptyStruct { -} - -/** - * A generic struct containing an alias. - */ -export interface GenericPerson { - "Name": T | null; - "AliasedField": Alias; -} - -/** - * Another struct alias. - */ -export interface OtherAliasStruct { - "NoMoreIdeas": number[] | null; -} - -/** - * A non-generic struct containing an alias. - */ -export interface Person { - /** - * The Person's name. - */ - "Name": string; - - /** - * A random alias field. - */ - "AliasedField": Alias; -} - -/** - * Another class alias, but ordered after its aliased class. - */ -export type StrangelyAliasedPerson = Person; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.ts index 564f2b548..e5b3f2b1b 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/models.ts @@ -1,14 +1,81 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Alias, - AliasStruct, - AliasedPerson, - EmptyAliasStruct, - EmptyStruct, - GenericPerson, - OtherAliasStruct, - Person, - StrangelyAliasedPerson -} from "./internal.js"; +/** + * A nice type Alias. + */ +export type Alias = number; + +/** + * A struct alias. + * This should be rendered as a typedef or interface in every mode. + */ +export interface AliasStruct { + /** + * A field with a comment. + */ + "Foo": number[] | null; + + /** + * Definitely not Foo. + */ + "Bar"?: string; + "Baz"?: string; + + /** + * A nested alias struct. + */ + "Other": OtherAliasStruct; +} + +/** + * A class alias. + */ +export type AliasedPerson = Person; + +/** + * An empty struct alias. + */ +export interface EmptyAliasStruct { +} + +/** + * An empty struct. + */ +export interface EmptyStruct { +} + +/** + * A generic struct containing an alias. + */ +export interface GenericPerson { + "Name": T; + "AliasedField": Alias; +} + +/** + * Another struct alias. + */ +export interface OtherAliasStruct { + "NoMoreIdeas": number[] | null; +} + +/** + * A non-generic struct containing an alias. + */ +export interface Person { + /** + * The Person's name. + */ + "Name": string; + + /** + * A random alias field. + */ + "AliasedField": Alias; +} + +/** + * Another class alias, but ordered after its aliased class. + */ +export type StrangelyAliasedPerson = Person; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.ts index 81d63b298..dde723eae 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.ts index 8e624c826..f645e5730 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/index.ts @@ -6,4 +6,12 @@ export { GreetService }; -export * from "./models.js"; +export { + Title +} from "./models.js"; + +export type { + Embedded1, + Embedded3, + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.ts deleted file mode 100644 index 7cdb88164..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/internal.ts +++ /dev/null @@ -1,121 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -export interface Embedded1 { - /** - * Friends should be shadowed in Person by a field of lesser depth - */ - "Friends": number; - - /** - * Vanish should be omitted from Person because there is another field with same depth and no tag - */ - "Vanish": number; - - /** - * StillThere should be shadowed in Person by other field with same depth and a json tag - */ - "StillThere": string; - - /** - * NamingThingsIsHard is a law of programming - */ - "NamingThingsIsHard": `${boolean}`; -} - -export type Embedded3 = string; - -/** - * Person represents a person - */ -export interface Person { - /** - * Titles is optional in JSON - */ - "Titles"?: Title[] | null; - - /** - * Names has a - * multiline comment - */ - "Names": string[] | null; - - /** - * Partner has a custom and complex JSON key - */ - "Partner": Person | null; - "Friends": (Person | null)[] | null; - - /** - * NamingThingsIsHard is a law of programming - */ - "NamingThingsIsHard": `${boolean}`; - - /** - * StillThereButRenamed should shadow in Person the other field with same depth and no json tag - */ - "StillThere": Embedded3 | null; - - /** - * StrangeNumber maps to "-" - */ - "-": number; - - /** - * Embedded3 should appear with key "Embedded3" - */ - "Embedded3": Embedded3; - - /** - * StrangerNumber is serialized as a string - */ - "StrangerNumber": `${number}`; - - /** - * StrangestString is optional and serialized as a JSON string - */ - "StrangestString"?: `"${string}"`; - - /** - * StringStrangest is serialized as a JSON string and optional - */ - "StringStrangest"?: `"${string}"`; - - /** - * embedded4 should be optional and appear with key "emb4" - */ - "emb4"?: embedded4; -} - -/** - * Title is a title - */ -export enum Title { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero = "", - - /** - * Mister is a title - */ - Mister = "Mr", - Miss = "Miss", - Ms = "Ms", - Mrs = "Mrs", - Dr = "Dr", -}; - -export interface embedded4 { - /** - * NamingThingsIsHard is a law of programming - */ - "NamingThingsIsHard": `${boolean}`; - - /** - * Friends should not be shadowed in Person as embedded4 is not embedded - * from encoding/json's point of view; - * however, it should be shadowed in Embedded1 - */ - "Friends": boolean; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.ts index 34aee6781..7cdb88164 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_json/models.ts @@ -1,12 +1,121 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Title -} from "./internal.js"; +export interface Embedded1 { + /** + * Friends should be shadowed in Person by a field of lesser depth + */ + "Friends": number; -export type { - Embedded1, - Embedded3, - Person -} from "./internal.js"; + /** + * Vanish should be omitted from Person because there is another field with same depth and no tag + */ + "Vanish": number; + + /** + * StillThere should be shadowed in Person by other field with same depth and a json tag + */ + "StillThere": string; + + /** + * NamingThingsIsHard is a law of programming + */ + "NamingThingsIsHard": `${boolean}`; +} + +export type Embedded3 = string; + +/** + * Person represents a person + */ +export interface Person { + /** + * Titles is optional in JSON + */ + "Titles"?: Title[] | null; + + /** + * Names has a + * multiline comment + */ + "Names": string[] | null; + + /** + * Partner has a custom and complex JSON key + */ + "Partner": Person | null; + "Friends": (Person | null)[] | null; + + /** + * NamingThingsIsHard is a law of programming + */ + "NamingThingsIsHard": `${boolean}`; + + /** + * StillThereButRenamed should shadow in Person the other field with same depth and no json tag + */ + "StillThere": Embedded3 | null; + + /** + * StrangeNumber maps to "-" + */ + "-": number; + + /** + * Embedded3 should appear with key "Embedded3" + */ + "Embedded3": Embedded3; + + /** + * StrangerNumber is serialized as a string + */ + "StrangerNumber": `${number}`; + + /** + * StrangestString is optional and serialized as a JSON string + */ + "StrangestString"?: `"${string}"`; + + /** + * StringStrangest is serialized as a JSON string and optional + */ + "StringStrangest"?: `"${string}"`; + + /** + * embedded4 should be optional and appear with key "emb4" + */ + "emb4"?: embedded4; +} + +/** + * Title is a title + */ +export enum Title { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = "", + + /** + * Mister is a title + */ + Mister = "Mr", + Miss = "Miss", + Ms = "Ms", + Mrs = "Mrs", + Dr = "Dr", +}; + +export interface embedded4 { + /** + * NamingThingsIsHard is a law of programming + */ + "NamingThingsIsHard": `${boolean}`; + + /** + * Friends should not be shadowed in Person as embedded4 is not embedded + * from encoding/json's point of view; + * however, it should be shadowed in Embedded1 + */ + "Friends": boolean; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.ts index 6c8d19201..c4b9cd802 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.ts index 8e624c826..14252454b 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export type { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.ts index b27d0d189..6691fb86c 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/complex_method/models.ts @@ -1,6 +1,9 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Person -} from "./internal.js"; +/** + * Person represents a person + */ +export interface Person { + "Name": string; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.ts index 2603bdcde..e322a90c2 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Make a cycle. diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.ts index 8e624c826..bbf592890 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/index.ts @@ -6,4 +6,8 @@ export { GreetService }; -export * from "./models.js"; +export type { + StructA, + StructC, + StructE +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.ts deleted file mode 100644 index 256987ac8..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/internal.ts +++ /dev/null @@ -1,21 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -export interface StructA { - "B": structB | null; -} - -export interface StructC { - "D": structD; -} - -export interface StructE { -} - -export interface structB { - "A": StructA | null; -} - -export interface structD { - "E": StructE; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.ts index cae6922a9..256987ac8 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_imports/models.ts @@ -1,8 +1,21 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - StructA, - StructC, - StructE -} from "./internal.js"; +export interface StructA { + "B": structB | null; +} + +export interface StructC { + "D": structD; +} + +export interface StructE { +} + +export interface structB { + "A": StructA | null; +} + +export interface structD { + "E": StructE; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.ts index 98aff5a4a..8585c78d7 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Make a cycle. diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.ts index 8e624c826..16cef660c 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/index.ts @@ -6,4 +6,8 @@ export { GreetService }; -export * from "./models.js"; +export type { + Alias, + Cyclic, + GenericCyclic +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.ts deleted file mode 100644 index b378c3550..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/internal.ts +++ /dev/null @@ -1,8 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -export type Alias = Cyclic | null; - -export type Cyclic = ({ [_: string]: Alias } | null)[] | null; - -export type GenericCyclic = {"X": GenericCyclic | null, "Y": (T | null)[] | null}[] | null; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.ts index e4c804503..5395305fc 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/cyclic_types/models.ts @@ -1,8 +1,8 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Alias, - Cyclic, - GenericCyclic -} from "./internal.js"; +export type Alias = Cyclic | null; + +export type Cyclic = ({ [_: string]: Alias } | null)[] | null; + +export type GenericCyclic = {"X": GenericCyclic | null, "Y": T[] | null}[] | null; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.ts new file mode 100644 index 000000000..bb2426022 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/index.ts @@ -0,0 +1,13 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +console.log("Hello everywhere!"); +console.log("Hello everywhere again!"); +console.log("Hello Interfaces!"); +console.log("Hello TS!"); +console.log("Hello TS Interfaces!"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.ts new file mode 100644 index 000000000..cdb60560b --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/internalservice.ts @@ -0,0 +1,20 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * An exported but internal service. + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +export function Method($0: $models.InternalModel): Promise & { cancel(): void } { + let $resultPromise = $Call.ByName("main.InternalService.Method", $0) as any; + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.ts new file mode 100644 index 000000000..efe76e58b --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/models.ts @@ -0,0 +1,16 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * An exported but internal model. + */ +export interface InternalModel { + "Field": string; +} + +/** + * An unexported model. + */ +export interface unexportedModel { + "Field": string; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.ts new file mode 100644 index 000000000..82d89784a --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/index.ts @@ -0,0 +1,6 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export type { + Dummy +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.ts similarity index 55% rename from v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.ts rename to v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.ts index b76080cf3..71070d754 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/otherpackage/models.ts @@ -1,8 +1,5 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export interface Address { - "Street": string; - "State": string; - "Country": string; +export interface Dummy { } diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.ts new file mode 100644 index 000000000..feddd7b11 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/service.ts @@ -0,0 +1,24 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as otherpackage$0 from "./otherpackage/models.js"; + +function InternalMethod($0: string): Promise & { cancel(): void } { + let $resultPromise = $Call.ByName("main.Service.InternalMethod", $0) as any; + return $resultPromise; +} + +export function VisibleMethod($0: otherpackage$0.Dummy): Promise & { cancel(): void } { + let $resultPromise = $Call.ByName("main.Service.VisibleMethod", $0) as any; + return $resultPromise; +} + +export async function CustomMethod(arg: string): Promise { + await InternalMethod("Hello " + arg + "!"); +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js new file mode 100644 index 000000000..138385f53 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("everywhere"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js new file mode 100644 index 000000000..19d5c2f42 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_all.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("everywhere again"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_i.js b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_i.js new file mode 100644 index 000000000..442f20472 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_i.js @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("Interfaces"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_t.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_t.ts new file mode 100644 index 000000000..253d3f2f6 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_t.ts @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("TS"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_ti.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_ti.ts new file mode 100644 index 000000000..7400e97aa --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/test_ti.ts @@ -0,0 +1,3 @@ +import { CustomMethod } from "./service.js"; + +CustomMethod("TS Interfaces"); diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.ts new file mode 100644 index 000000000..97059f1fa --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/directives/unexportedservice.ts @@ -0,0 +1,20 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * An unexported service. + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +export function Method($0: $models.unexportedModel): Promise & { cancel(): void } { + let $resultPromise = $Call.ByName("main.unexportedService.Method", $0) as any; + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.ts index 13a989ddb..4294d1e30 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.ts index 8e624c826..e66941c16 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/index.ts @@ -6,4 +6,11 @@ export { GreetService }; -export * from "./models.js"; +export { + Age, + Title +} from "./models.js"; + +export type { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.ts deleted file mode 100644 index 7ac95c046..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/internal.ts +++ /dev/null @@ -1,29 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * Person represents a person - */ -export interface Person { - "Title": Title; - "Name": string; -} - -/** - * Title is a title - */ -export enum Title { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero = "", - - /** - * Mister is a title - */ - Mister = "Mr", - Miss = "Miss", - Ms = "Ms", - Mrs = "Mrs", - Dr = "Dr", -}; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.ts index 224a05595..74d673e16 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum/models.ts @@ -1,10 +1,55 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Title -} from "./internal.js"; +/** + * Age is an integer with some predefined values + */ +export type Age = number; -export type { - Person -} from "./internal.js"; +/** + * Predefined constants for type Age. + * @namespace + */ +export const Age = { + NewBorn: 0, + Teenager: 12, + YoungAdult: 18, + + /** + * Oh no, some grey hair! + */ + MiddleAged: 50, + + /** + * Unbelievable! + */ + Mathusalem: 1000, +}; + +/** + * Person represents a person + */ +export interface Person { + "Title": Title; + "Name": string; + "Age": Age; +} + +/** + * Title is a title + */ +export enum Title { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = "", + + /** + * Mister is a title + */ + Mister = "Mr", + Miss = "Miss", + Ms = "Ms", + Mrs = "Mrs", + Dr = "Dr", +}; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.ts index c9d993ab7..01c612edc 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/index.ts @@ -1,4 +1,6 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export * from "./models.js"; +export { + Title +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.ts deleted file mode 100644 index 887aee9ba..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/internal.ts +++ /dev/null @@ -1,18 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -export enum Title { - /** - * The Go zero value for the underlying type of the enum. - */ - $zero = "", - - /** - * Mister is a title - */ - Mister = "Mr", - Miss = "Miss", - Ms = "Ms", - Mrs = "Mrs", - Dr = "Dr", -}; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.ts index e8981fc5e..887aee9ba 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_from_imported_package/services/models.ts @@ -1,6 +1,18 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export { - Title -} from "./internal.js"; +export enum Title { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = "", + + /** + * Mister is a title + */ + Mister = "Mr", + Miss = "Miss", + Ms = "Ms", + Mrs = "Mrs", + Dr = "Dr", +}; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.ts index fa882c8ed..4602f3a69 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.ts index 8e624c826..14252454b 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export type { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.ts deleted file mode 100644 index 99b989f07..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/internal.ts +++ /dev/null @@ -1,14 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -/** - * Person is a person - */ -export interface Person { - "Name": string; - "Address": services$0.Address | null; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.ts index b27d0d189..99b989f07 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/models.ts @@ -1,6 +1,14 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; + +/** + * Person is a person + */ +export interface Person { + "Name": string; + "Address": services$0.Address | null; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.ts index 1a5bd5ebf..8857d2bc5 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/index.ts @@ -6,4 +6,6 @@ export { OtherService }; -export * from "./models.js"; +export type { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.ts deleted file mode 100644 index b76080cf3..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/internal.ts +++ /dev/null @@ -1,8 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -export interface Address { - "Street": string; - "State": string; - "Country": string; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.ts index da9b10c49..b76080cf3 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/models.ts @@ -1,6 +1,8 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Address -} from "./internal.js"; +export interface Address { + "Street": string; + "State": string; + "Country": string; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.ts index 446d288c6..0ea61fe3a 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_imported_package/services/otherservice.ts @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.ts index fa882c8ed..4602f3a69 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.ts index 8e624c826..14252454b 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export type { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.ts deleted file mode 100644 index 70b85519b..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/internal.ts +++ /dev/null @@ -1,11 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as other$0 from "./services/other/models.js"; - -export interface Person { - "Name": string; - "Address": other$0.Address | null; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.ts index b27d0d189..70b85519b 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/models.ts @@ -1,6 +1,11 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as other$0 from "./services/other/models.js"; + +export interface Person { + "Name": string; + "Address": other$0.Address | null; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.ts index 1a5bd5ebf..8857d2bc5 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/index.ts @@ -6,4 +6,6 @@ export { OtherService }; -export * from "./models.js"; +export type { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.ts deleted file mode 100644 index b76080cf3..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/internal.ts +++ /dev/null @@ -1,8 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -export interface Address { - "Street": string; - "State": string; - "Country": string; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.ts index da9b10c49..b76080cf3 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/models.ts @@ -1,6 +1,8 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Address -} from "./internal.js"; +export interface Address { + "Street": string; + "State": string; + "Country": string; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.ts index 45712d381..1bf854765 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/function_from_nested_imported_package/services/other/otherservice.ts @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.ts new file mode 100644 index 000000000..1dcdadc91 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/index.ts @@ -0,0 +1,23 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +export type { + EmbeddedCustomInterface, + EmbeddedOriginalInterface, + EmbeddedPointer, + EmbeddedPointerPtr, + EmbeddedValue, + EmbeddedValuePtr, + Maps, + PointerAlias, + PointerTextMarshaler, + StringAlias, + StringType, + ValueAlias, + ValueTextMarshaler +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.ts new file mode 100644 index 000000000..9a9db9f4a --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/models.ts @@ -0,0 +1,473 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export type EmbeddedCustomInterface = string; + +export type EmbeddedOriginalInterface = string; + +export type EmbeddedPointer = string; + +export type EmbeddedPointerPtr = string; + +export type EmbeddedValue = string; + +export type EmbeddedValuePtr = string; + +export interface Maps { + /** + * Reject + */ + "Bool": { [_: string]: number } | null; + + /** + * Accept + */ + "Int": { [_: `${number}`]: number } | null; + + /** + * Accept + */ + "Uint": { [_: `${number}`]: number } | null; + + /** + * Reject + */ + "Float": { [_: string]: number } | null; + + /** + * Reject + */ + "Complex": { [_: string]: number } | null; + + /** + * Accept + */ + "Byte": { [_: `${number}`]: number } | null; + + /** + * Accept + */ + "Rune": { [_: `${number}`]: number } | null; + + /** + * Accept + */ + "String": { [_: string]: number } | null; + + /** + * Reject + */ + "IntPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "UintPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "FloatPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "ComplexPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "StringPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "NTM": { [_: string]: number } | null; + + /** + * Reject + */ + "NTMPtr": { [_: string]: number } | null; + + /** + * Accept + */ + "VTM": { [_: ValueTextMarshaler]: number } | null; + + /** + * Accept + */ + "VTMPtr": { [_: ValueTextMarshaler]: number } | null; + + /** + * Reject + */ + "PTM": { [_: string]: number } | null; + + /** + * Accept + */ + "PTMPtr": { [_: PointerTextMarshaler]: number } | null; + + /** + * Accept, hide + */ + "JTM": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "JTMPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "A": { [_: string]: number } | null; + + /** + * Reject + */ + "APtr": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "TM": { [_: string]: number } | null; + + /** + * Reject + */ + "TMPtr": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "CI": { [_: string]: number } | null; + + /** + * Reject + */ + "CIPtr": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "EI": { [_: string]: number } | null; + + /** + * Reject + */ + "EIPtr": { [_: string]: number } | null; + + /** + * Accept + */ + "EV": { [_: EmbeddedValue]: number } | null; + + /** + * Accept + */ + "EVPtr": { [_: EmbeddedValue]: number } | null; + + /** + * Accept + */ + "EVP": { [_: EmbeddedValuePtr]: number } | null; + + /** + * Accept + */ + "EVPPtr": { [_: EmbeddedValuePtr]: number } | null; + + /** + * Reject + */ + "EP": { [_: string]: number } | null; + + /** + * Accept + */ + "EPPtr": { [_: EmbeddedPointer]: number } | null; + + /** + * Accept + */ + "EPP": { [_: EmbeddedPointerPtr]: number } | null; + + /** + * Accept + */ + "EPPPtr": { [_: EmbeddedPointerPtr]: number } | null; + + /** + * Accept + */ + "ECI": { [_: EmbeddedCustomInterface]: number } | null; + + /** + * Accept + */ + "ECIPtr": { [_: EmbeddedCustomInterface]: number } | null; + + /** + * Accept + */ + "EOI": { [_: EmbeddedOriginalInterface]: number } | null; + + /** + * Accept + */ + "EOIPtr": { [_: EmbeddedOriginalInterface]: number } | null; + + /** + * Reject + */ + "WT": { [_: string]: number } | null; + + /** + * Reject + */ + "WA": { [_: string]: number } | null; + + /** + * Accept + */ + "ST": { [_: StringType]: number } | null; + + /** + * Accept + */ + "SA": { [_: StringAlias]: number } | null; + + /** + * Accept + */ + "IntT": { [_: `${number}`]: number } | null; + + /** + * Accept + */ + "IntA": { [_: `${number}`]: number } | null; + + /** + * Reject + */ + "VT": { [_: string]: number } | null; + + /** + * Reject + */ + "VTPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "VPT": { [_: string]: number } | null; + + /** + * Reject + */ + "VPTPtr": { [_: string]: number } | null; + + /** + * Accept + */ + "VA": { [_: ValueAlias]: number } | null; + + /** + * Accept + */ + "VAPtr": { [_: ValueAlias]: number } | null; + + /** + * Accept, hide + */ + "VPA": { [_: string]: number } | null; + + /** + * Reject + */ + "VPAPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "PT": { [_: string]: number } | null; + + /** + * Reject + */ + "PTPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "PPT": { [_: string]: number } | null; + + /** + * Reject + */ + "PPTPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "PA": { [_: string]: number } | null; + + /** + * Accept + */ + "PAPtr": { [_: PointerAlias]: number } | null; + + /** + * Accept, hide + */ + "PPA": { [_: string]: number } | null; + + /** + * Reject + */ + "PPAPtr": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "IT": { [_: string]: number } | null; + + /** + * Reject + */ + "ITPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "IPT": { [_: string]: number } | null; + + /** + * Reject + */ + "IPTPtr": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "IA": { [_: string]: number } | null; + + /** + * Reject + */ + "IAPtr": { [_: string]: number } | null; + + /** + * Reject + */ + "IPA": { [_: string]: number } | null; + + /** + * Reject + */ + "IPAPtr": { [_: string]: number } | null; + + /** + * Soft reject + */ + "TPR": { [_: string]: number } | null; + + /** + * Soft reject + */ + "TPRPtr": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "TPS": { [_: string]: number } | null; + + /** + * Soft reject + */ + "TPSPtr": { [_: string]: number } | null; + + /** + * Soft reject + */ + "TPT": { [_: string]: number } | null; + + /** + * Soft reject + */ + "TPTPtr": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "TPU": { [_: string]: number } | null; + + /** + * Soft reject + */ + "TPUPtr": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "TPV": { [_: string]: number } | null; + + /** + * Soft reject + */ + "TPVPtr": { [_: string]: number } | null; + + /** + * Soft reject + */ + "TPW": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "TPWPtr": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "TPX": { [_: string]: number } | null; + + /** + * Soft reject + */ + "TPXPtr": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "TPY": { [_: string]: number } | null; + + /** + * Soft reject + */ + "TPYPtr": { [_: string]: number } | null; + + /** + * Accept, hide + */ + "TPZ": { [_: string]: number } | null; + + /** + * Soft reject + */ + "TPZPtr": { [_: string]: number } | null; +} + +export type PointerAlias = PointerTextMarshaler; + +export type PointerTextMarshaler = string; + +export type StringAlias = string; + +export type StringType = string; + +export type ValueAlias = ValueTextMarshaler; + +export type ValueTextMarshaler = string; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.ts new file mode 100644 index 000000000..8ebd680ee --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys/service.ts @@ -0,0 +1,15 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +export function Method(): Promise<$models.Maps<$models.PointerTextMarshaler, number, number, $models.ValueTextMarshaler, $models.PointerTextMarshaler | null, $models.ValueTextMarshaler, $models.StringType, $models.ValueTextMarshaler, $models.PointerTextMarshaler | null>> & { cancel(): void } { + let $resultPromise = $Call.ByName("main.Service.Method") as any; + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.ts new file mode 100644 index 000000000..7c55b767b --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/index.ts @@ -0,0 +1,33 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as Service from "./service.js"; +export { + Service +}; + +export type { + AliasJsonMarshaler, + AliasMarshaler, + AliasNonMarshaler, + AliasTextMarshaler, + Data, + ImplicitJsonButText, + ImplicitJsonMarshaler, + ImplicitMarshaler, + ImplicitNonJson, + ImplicitNonMarshaler, + ImplicitNonText, + ImplicitTextButJson, + ImplicitTextMarshaler, + NonMarshaler, + PointerJsonMarshaler, + PointerMarshaler, + PointerTextMarshaler, + UnderlyingJsonMarshaler, + UnderlyingMarshaler, + UnderlyingTextMarshaler, + ValueJsonMarshaler, + ValueMarshaler, + ValueTextMarshaler +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.ts new file mode 100644 index 000000000..02d639994 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/models.ts @@ -0,0 +1,309 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as encoding$0 from "../../../../../../../../encoding/models.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as json$0 from "../../../../../../../../encoding/json/models.js"; + +/** + * any + */ +export type AliasJsonMarshaler = any; + +/** + * any + */ +export type AliasMarshaler = any; + +/** + * struct{} + */ +export interface AliasNonMarshaler { +} + +/** + * string + */ +export type AliasTextMarshaler = string; + +export interface Data { + "NM": NonMarshaler; + + /** + * NonMarshaler | null + */ + "NMPtr": NonMarshaler | null; + "VJM": ValueJsonMarshaler; + + /** + * ValueJsonMarshaler | null + */ + "VJMPtr": ValueJsonMarshaler | null; + "PJM": PointerJsonMarshaler; + + /** + * PointerJsonMarshaler | null + */ + "PJMPtr": PointerJsonMarshaler | null; + "VTM": ValueTextMarshaler; + + /** + * ValueTextMarshaler | null + */ + "VTMPtr": ValueTextMarshaler | null; + "PTM": PointerTextMarshaler; + + /** + * PointerTextMarshaler | null + */ + "PTMPtr": PointerTextMarshaler | null; + "VM": ValueMarshaler; + + /** + * ValueMarshaler | null + */ + "VMPtr": ValueMarshaler | null; + "PM": PointerMarshaler; + + /** + * PointerMarshaler | null + */ + "PMPtr": PointerMarshaler | null; + "UJM": UnderlyingJsonMarshaler; + + /** + * UnderlyingJsonMarshaler | null + */ + "UJMPtr": UnderlyingJsonMarshaler | null; + "UTM": UnderlyingTextMarshaler; + + /** + * UnderlyingTextMarshaler | null + */ + "UTMPtr": UnderlyingTextMarshaler | null; + "UM": UnderlyingMarshaler; + + /** + * UnderlyingMarshaler | null + */ + "UMPtr": UnderlyingMarshaler | null; + + /** + * any + */ + "JM": any; + + /** + * any | null + */ + "JMPtr": any | null; + + /** + * string + */ + "TM": string; + + /** + * string | null + */ + "TMPtr": string | null; + + /** + * any + */ + "CJM": any; + + /** + * any | null + */ + "CJMPtr": any | null; + + /** + * string + */ + "CTM": string; + + /** + * string | null + */ + "CTMPtr": string | null; + + /** + * any + */ + "CM": any; + + /** + * any | null + */ + "CMPtr": any | null; + "ANM": AliasNonMarshaler; + + /** + * AliasNonMarshaler | null + */ + "ANMPtr": AliasNonMarshaler | null; + "AJM": AliasJsonMarshaler; + + /** + * AliasJsonMarshaler | null + */ + "AJMPtr": AliasJsonMarshaler | null; + "ATM": AliasTextMarshaler; + + /** + * AliasTextMarshaler | null + */ + "ATMPtr": AliasTextMarshaler | null; + "AM": AliasMarshaler; + + /** + * AliasMarshaler | null + */ + "AMPtr": AliasMarshaler | null; + "ImJM": ImplicitJsonMarshaler; + + /** + * ImplicitJsonMarshaler | null + */ + "ImJMPtr": ImplicitJsonMarshaler | null; + "ImTM": ImplicitTextMarshaler; + + /** + * ImplicitTextMarshaler | null + */ + "ImTMPtr": ImplicitTextMarshaler | null; + "ImM": ImplicitMarshaler; + + /** + * ImplicitMarshaler | null + */ + "ImMPtr": ImplicitMarshaler | null; + "ImNJ": ImplicitNonJson; + + /** + * ImplicitNonJson | null + */ + "ImNJPtr": ImplicitNonJson | null; + "ImNT": ImplicitNonText; + + /** + * ImplicitNonText | null + */ + "ImNTPtr": ImplicitNonText | null; + "ImNM": ImplicitNonMarshaler; + + /** + * ImplicitNonMarshaler | null + */ + "ImNMPtr": ImplicitNonMarshaler | null; + "ImJbT": ImplicitJsonButText; + + /** + * ImplicitJsonButText | null + */ + "ImJbTPtr": ImplicitJsonButText | null; + "ImTbJ": ImplicitTextButJson; + + /** + * ImplicitTextButJson | null + */ + "ImTbJPtr": ImplicitTextButJson | null; +} + +/** + * any + */ +export type ImplicitJsonButText = any; + +/** + * any + */ +export type ImplicitJsonMarshaler = any; + +/** + * any + */ +export type ImplicitMarshaler = any; + +/** + * string + */ +export type ImplicitNonJson = string; + +/** + * class{ Marshaler, TextMarshaler } + */ +export interface ImplicitNonMarshaler { + "Marshaler": json$0.Marshaler; + "TextMarshaler": encoding$0.TextMarshaler; +} + +/** + * any + */ +export type ImplicitNonText = any; + +/** + * any + */ +export type ImplicitTextButJson = any; + +/** + * string + */ +export type ImplicitTextMarshaler = string; + +/** + * class {} + */ +export interface NonMarshaler { +} + +/** + * any + */ +export type PointerJsonMarshaler = any; + +/** + * any + */ +export type PointerMarshaler = any; + +/** + * string + */ +export type PointerTextMarshaler = string; + +/** + * any + */ +export type UnderlyingJsonMarshaler = any; + +/** + * any + */ +export type UnderlyingMarshaler = any; + +/** + * string + */ +export type UnderlyingTextMarshaler = string; + +/** + * any + */ +export type ValueJsonMarshaler = any; + +/** + * any + */ +export type ValueMarshaler = any; + +/** + * string + */ +export type ValueTextMarshaler = string; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.ts new file mode 100644 index 000000000..f1801dbe9 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/marshalers/service.ts @@ -0,0 +1,15 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import {Call as $Call} from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +export function Method(): Promise<$models.Data> & { cancel(): void } { + let $resultPromise = $Call.ByName("main.Service.Method") as any; + return $resultPromise; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.ts index 6bd662438..bf611e486 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/index.ts @@ -6,4 +6,9 @@ export { SomeMethods }; -export * from "./models.js"; +export type { + HowDifferent, + Impersonator, + Person, + PrivatePerson +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.ts deleted file mode 100644 index 35a843ab0..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/internal.ts +++ /dev/null @@ -1,54 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as other$0 from "./other/models.js"; - -/** - * HowDifferent is a curious kind of person - * that lets other people decide how they are different. - */ -export type HowDifferent = other$0.OtherPerson<{ [_: string]: How | null } | null>; - -/** - * Impersonator gets their fields from other people. - */ -export type Impersonator = other$0.OtherPerson; - -/** - * Person is not a number. - */ -export interface Person { - /** - * They have a name. - */ - "Name": string; - - /** - * Exactly 4 sketchy friends. - */ - "Friends": Impersonator[]; -} - -/** - * PrivatePerson gets their fields from hidden sources. - */ -export type PrivatePerson = personImpl; - -export interface personImpl { - /** - * Nickname conceals a person's identity. - */ - "Nickname": string; - - /** - * They have a name. - */ - "Name": string; - - /** - * Exactly 4 sketchy friends. - */ - "Friends": Impersonator[]; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.ts index 9e517b644..c42cce373 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/models.ts @@ -1,9 +1,64 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - HowDifferent, - Impersonator, - Person, - PrivatePerson -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as other$0 from "./other/models.js"; + +/** + * HowDifferent is a curious kind of person + * that lets other people decide how they are different. + */ +export interface HowDifferent { + /** + * They have a name as well. + */ + "Name": string; + + /** + * But they may have many differences. + */ + "Differences": ({ [_: string]: How } | null)[] | null; +} + +/** + * Impersonator gets their fields from other people. + */ +export type Impersonator = other$0.OtherPerson; + +/** + * Person is not a number. + */ +export interface Person { + /** + * They have a name. + */ + "Name": string; + + /** + * Exactly 4 sketchy friends. + */ + "Friends": Impersonator[]; +} + +/** + * PrivatePerson gets their fields from hidden sources. + */ +export type PrivatePerson = personImpl; + +export interface personImpl { + /** + * Nickname conceals a person's identity. + */ + "Nickname": string; + + /** + * They have a name. + */ + "Name": string; + + /** + * Exactly 4 sketchy friends. + */ + "Friends": Impersonator[]; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.ts index 9e85cc3c8..b9f2889db 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/index.ts @@ -6,4 +6,6 @@ export { OtherMethods }; -export * from "./models.js"; +export type { + OtherPerson +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.ts deleted file mode 100644 index 756721e0f..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/internal.ts +++ /dev/null @@ -1,17 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -/** - * OtherPerson is like a person, but different. - */ -export interface OtherPerson { - /** - * They have a name as well. - */ - "Name": string; - - /** - * But they may have many differences. - */ - "Differences": (T | null)[] | null; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.ts index 596daa5b5..6ca5b82a2 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/other/models.ts @@ -1,6 +1,17 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - OtherPerson -} from "./internal.js"; +/** + * OtherPerson is like a person, but different. + */ +export interface OtherPerson { + /** + * They have a name as well. + */ + "Name": string; + + /** + * But they may have many differences. + */ + "Differences": T[] | null; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.ts index 06e5eeb15..60f7459e2 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here/somemethods.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * LikeThisOne is an example method that does nothing. diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.ts index fa882c8ed..4602f3a69 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.ts index 8e624c826..14252454b 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export type { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.ts deleted file mode 100644 index 3ab21d612..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/internal.ts +++ /dev/null @@ -1,11 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -export interface Person { - "Name": string; - "Address": services$0.Address | null; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.ts index b27d0d189..3ab21d612 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/models.ts @@ -1,6 +1,11 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; + +export interface Person { + "Name": string; + "Address": services$0.Address | null; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.ts index 1a5bd5ebf..8857d2bc5 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/index.ts @@ -6,4 +6,6 @@ export { OtherService }; -export * from "./models.js"; +export type { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.ts deleted file mode 100644 index b76080cf3..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/internal.ts +++ /dev/null @@ -1,8 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -export interface Address { - "Street": string; - "State": string; - "Country": string; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.ts index da9b10c49..b76080cf3 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/models.ts @@ -1,6 +1,8 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Address -} from "./internal.js"; +export interface Address { + "Street": string; + "State": string; + "Country": string; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.ts index d35147b8a..6e0546e29 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_multiple_other/services/otherservice.ts @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.ts index 4f4a45697..e05f6102b 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; export function ArrayInt($in: number[]): Promise & { cancel(): void } { let $resultPromise = $Call.ByName("main.GreetService.ArrayInt", $in) as any; @@ -102,8 +102,8 @@ export function MapIntInt($in: { [_: `${number}`]: number } | null): Promise & { cancel(): void } { - let $resultPromise = $Call.ByName("main.GreetService.MapIntPointerInt", $in) as any; +export function MapIntIntPointer($in: { [_: `${number}`]: number | null } | null): Promise & { cancel(): void } { + let $resultPromise = $Call.ByName("main.GreetService.MapIntIntPointer", $in) as any; return $resultPromise; } diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.ts index 8e624c826..14252454b 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export type { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.ts deleted file mode 100644 index 5664b79ab..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/internal.ts +++ /dev/null @@ -1,8 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -export interface Person { - "Name": string; - "Parent": Person | null; - "Details": {"Age": number, "Address": {"Street": string}}; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.ts index b27d0d189..5664b79ab 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_non_pointer_single/models.ts @@ -1,6 +1,8 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Person -} from "./internal.js"; +export interface Person { + "Name": string; + "Parent": Person | null; + "Details": {"Age": number, "Address": {"Street": string}}; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.ts index 4f4a45697..e05f6102b 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; export function ArrayInt($in: number[]): Promise & { cancel(): void } { let $resultPromise = $Call.ByName("main.GreetService.ArrayInt", $in) as any; @@ -102,8 +102,8 @@ export function MapIntInt($in: { [_: `${number}`]: number } | null): Promise & { cancel(): void } { - let $resultPromise = $Call.ByName("main.GreetService.MapIntPointerInt", $in) as any; +export function MapIntIntPointer($in: { [_: `${number}`]: number | null } | null): Promise & { cancel(): void } { + let $resultPromise = $Call.ByName("main.GreetService.MapIntIntPointer", $in) as any; return $resultPromise; } diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.ts index 8e624c826..14252454b 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export type { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.ts deleted file mode 100644 index 5664b79ab..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/internal.ts +++ /dev/null @@ -1,8 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -export interface Person { - "Name": string; - "Parent": Person | null; - "Details": {"Age": number, "Address": {"Street": string}}; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.ts index b27d0d189..5664b79ab 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/struct_literal_single/models.ts @@ -1,6 +1,8 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Person -} from "./internal.js"; +export interface Person { + "Name": string; + "Parent": Person | null; + "Details": {"Age": number, "Address": {"Street": string}}; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.ts index fa882c8ed..4602f3a69 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/greetservice.ts @@ -12,7 +12,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Greet does XYZ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.ts index 8e624c826..14252454b 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/index.ts @@ -6,4 +6,6 @@ export { GreetService }; -export * from "./models.js"; +export type { + Person +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.ts deleted file mode 100644 index f29117203..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/internal.ts +++ /dev/null @@ -1,15 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Unused imports -import * as services$0 from "./services/models.js"; - -/** - * Person is a person! - * They have a name and an address - */ -export interface Person { - "Name": string; - "Address": services$0.Address | null; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.ts index b27d0d189..f29117203 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/models.ts @@ -1,6 +1,15 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Person -} from "./internal.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as services$0 from "./services/models.js"; + +/** + * Person is a person! + * They have a name and an address + */ +export interface Person { + "Name": string; + "Address": services$0.Address | null; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.ts index 1a5bd5ebf..8857d2bc5 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/index.ts @@ -6,4 +6,6 @@ export { OtherService }; -export * from "./models.js"; +export type { + Address +} from "./models.js"; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.ts deleted file mode 100644 index b76080cf3..000000000 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/internal.ts +++ /dev/null @@ -1,8 +0,0 @@ -// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL -// This file is automatically generated. DO NOT EDIT - -export interface Address { - "Street": string; - "State": string; - "Country": string; -} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.ts index da9b10c49..b76080cf3 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/models.ts @@ -1,6 +1,8 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export type { - Address -} from "./internal.js"; +export interface Address { + "Street": string; + "State": string; + "Country": string; +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.ts index 9ea33e12e..6af5a977a 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/variable_single_from_other_function/services/otherservice.ts @@ -13,7 +13,7 @@ import {Call as $Call} from "/wails/runtime.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports -import * as $models from "./internal.js"; +import * as $models from "./models.js"; /** * Yay does this and that diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/warnings.log b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/warnings.log new file mode 100644 index 000000000..dbefd8749 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/warnings.log @@ -0,0 +1,47 @@ +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *R is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *S is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *T is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *U is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *V is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *X is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *Y is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *Z is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *any is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *complex64 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *encoding.TextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *float32 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.CustomInterface is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.EmbeddedInterface is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfaceAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfaceType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.NonTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValueType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *int is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *string is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type *uint is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type R is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type T is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type W is used as a map key, but some of its instantiations might not implement encoding.TextMarshaler: this might result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type any is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type bool is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type complex64 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type float32 is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.EmbeddedPointer is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.InterfacePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.NonTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerPtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerTextMarshaler is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.PointerType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValuePtrType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.ValueType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.WrongAlias is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors +package github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys: type github.com/wailsapp/wails/v3/internal/generator/testcases/map_keys.WrongType is used as a map key, but does not implement encoding.TextMarshaler: this will likely result in runtime errors diff --git a/v3/internal/generator/testdata/package-lock.json b/v3/internal/generator/testdata/package-lock.json index 642c0555b..0e30f5fd3 100644 --- a/v3/internal/generator/testdata/package-lock.json +++ b/v3/internal/generator/testdata/package-lock.json @@ -8,14 +8,2224 @@ "name": "testdata", "version": "0.0.0", "devDependencies": { + "madge": "^8.0.0", + "typescript": "^5.7.3" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.7.tgz", + "integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.7.tgz", + "integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@dependents/detective-less": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@dependents/detective-less/-/detective-less-5.0.0.tgz", + "integrity": "sha512-D/9dozteKcutI5OdxJd8rU+fL6XgaaRg60sPPJWkT33OCiRfkCu5wO5B/yXTaaL2e6EB0lcCBGe5E0XscZCvvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@ts-graphviz/adapter": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@ts-graphviz/adapter/-/adapter-2.0.6.tgz", + "integrity": "sha512-kJ10lIMSWMJkLkkCG5gt927SnGZcBuG0s0HHswGzcHTgvtUe7yk5/3zTEr0bafzsodsOq5Gi6FhQeV775nC35Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ts-graphviz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/ts-graphviz" + } + ], + "license": "MIT", + "dependencies": { + "@ts-graphviz/common": "^2.1.5" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@ts-graphviz/ast": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@ts-graphviz/ast/-/ast-2.0.7.tgz", + "integrity": "sha512-e6+2qtNV99UT6DJSoLbHfkzfyqY84aIuoV8Xlb9+hZAjgpum8iVHprGeAMQ4rF6sKUAxrmY8rfF/vgAwoPc3gw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ts-graphviz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/ts-graphviz" + } + ], + "license": "MIT", + "dependencies": { + "@ts-graphviz/common": "^2.1.5" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@ts-graphviz/common": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@ts-graphviz/common/-/common-2.1.5.tgz", + "integrity": "sha512-S6/9+T6x8j6cr/gNhp+U2olwo1n0jKj/682QVqsh7yXWV6ednHYqxFw0ZsY3LyzT0N8jaZ6jQY9YD99le3cmvg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ts-graphviz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/ts-graphviz" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@ts-graphviz/core": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@ts-graphviz/core/-/core-2.0.7.tgz", + "integrity": "sha512-w071DSzP94YfN6XiWhOxnLpYT3uqtxJBDYdh6Jdjzt+Ce6DNspJsPQgpC7rbts/B8tEkq0LHoYuIF/O5Jh5rPg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ts-graphviz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/ts-graphviz" + } + ], + "license": "MIT", + "dependencies": { + "@ts-graphviz/ast": "^2.0.7", + "@ts-graphviz/common": "^2.1.5" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", + "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.13", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", + "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", + "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.13", + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.11", + "postcss": "^8.4.48", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", + "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/app-module-path": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", + "integrity": "sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ast-module-types": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-6.0.0.tgz", + "integrity": "sha512-LFRg7178Fw5R4FAEwZxVqiRI8IxSM+Ay2UBrHoCerXNme+kMMMfz7T3xDGV/c2fer87hcrtgJGsnSOfUrPK6ng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dependency-tree": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/dependency-tree/-/dependency-tree-11.0.1.tgz", + "integrity": "sha512-eCt7HSKIC9NxgIykG2DRq3Aewn9UhVS14MB3rEn6l/AsEI1FBg6ZGSlCU0SZ6Tjm2kkhj6/8c2pViinuyKELhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^12.0.0", + "filing-cabinet": "^5.0.1", + "precinct": "^12.0.2", "typescript": "^5.4.5" + }, + "bin": { + "dependency-tree": "bin/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/dependency-tree/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/detective-amd": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-6.0.0.tgz", + "integrity": "sha512-NTqfYfwNsW7AQltKSEaWR66hGkTeD52Kz3eRQ+nfkA9ZFZt3iifRCWh+yZ/m6t3H42JFwVFTrml/D64R2PAIOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ast-module-types": "^6.0.0", + "escodegen": "^2.1.0", + "get-amd-module-type": "^6.0.0", + "node-source-walk": "^7.0.0" + }, + "bin": { + "detective-amd": "bin/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/detective-cjs": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-6.0.0.tgz", + "integrity": "sha512-R55jTS6Kkmy6ukdrbzY4x+I7KkXiuDPpFzUViFV/tm2PBGtTCjkh9ZmTuJc1SaziMHJOe636dtiZLEuzBL9drg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ast-module-types": "^6.0.0", + "node-source-walk": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/detective-es6": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-5.0.0.tgz", + "integrity": "sha512-NGTnzjvgeMW1khUSEXCzPDoraLenWbUjCFjwxReH+Ir+P6LGjYtaBbAvITWn2H0VSC+eM7/9LFOTAkrta6hNYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "node-source-walk": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/detective-postcss": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-7.0.0.tgz", + "integrity": "sha512-pSXA6dyqmBPBuERpoOKKTUUjQCZwZPLRbd1VdsTbt6W+m/+6ROl4BbE87yQBUtLoK7yX8pvXHdKyM/xNIW9F7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-url": "^1.2.4", + "postcss-values-parser": "^6.0.2" + }, + "engines": { + "node": "^14.0.0 || >=16.0.0" + }, + "peerDependencies": { + "postcss": "^8.4.38" + } + }, + "node_modules/detective-sass": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-6.0.0.tgz", + "integrity": "sha512-h5GCfFMkPm4ZUUfGHVPKNHKT8jV7cSmgK+s4dgQH4/dIUNh9/huR1fjEQrblOQNDalSU7k7g+tiW9LJ+nVEUhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/detective-scss": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-5.0.0.tgz", + "integrity": "sha512-Y64HyMqntdsCh1qAH7ci95dk0nnpA29g319w/5d/oYcHolcGUVJbIhOirOFjfN1KnMAXAFm5FIkZ4l2EKFGgxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/detective-stylus": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-5.0.0.tgz", + "integrity": "sha512-KMHOsPY6aq3196WteVhkY5FF+6Nnc/r7q741E+Gq+Ax9mhE2iwj8Hlw8pl+749hPDRDBHZ2WlgOjP+twIG61vQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/detective-typescript": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-13.0.0.tgz", + "integrity": "sha512-tcMYfiFWoUejSbvSblw90NDt76/4mNftYCX0SMnVRYzSXv8Fvo06hi4JOPdNvVNxRtCAKg3MJ3cBJh+ygEMH+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "^7.6.0", + "ast-module-types": "^6.0.0", + "node-source-walk": "^7.0.0" + }, + "engines": { + "node": "^14.14.0 || >=16.0.0" + }, + "peerDependencies": { + "typescript": "^5.4.4" + } + }, + "node_modules/detective-vue2": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/detective-vue2/-/detective-vue2-2.1.1.tgz", + "integrity": "sha512-/TQ+cs4qmSyhgESjyBXxoUuh36XjS06+UhCItWcGGOpXmU3KBRGRknG+tDzv2dASn1+UJUm2rhpDFa9TWT0dFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@dependents/detective-less": "^5.0.0", + "@vue/compiler-sfc": "^3.5.13", + "detective-es6": "^5.0.0", + "detective-sass": "^6.0.0", + "detective-scss": "^5.0.0", + "detective-stylus": "^5.0.0", + "detective-typescript": "^13.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "typescript": "^5.4.4" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", + "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/filing-cabinet": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/filing-cabinet/-/filing-cabinet-5.0.2.tgz", + "integrity": "sha512-RZlFj8lzyu6jqtFBeXNqUjjNG6xm+gwXue3T70pRxw1W40kJwlgq0PSWAmh0nAnn5DHuBIecLXk9+1VKS9ICXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "app-module-path": "^2.2.0", + "commander": "^12.0.0", + "enhanced-resolve": "^5.16.0", + "module-definition": "^6.0.0", + "module-lookup-amd": "^9.0.1", + "resolve": "^1.22.8", + "resolve-dependency-path": "^4.0.0", + "sass-lookup": "^6.0.1", + "stylus-lookup": "^6.0.0", + "tsconfig-paths": "^4.2.0", + "typescript": "^5.4.4" + }, + "bin": { + "filing-cabinet": "bin/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/filing-cabinet/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-amd-module-type": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-6.0.0.tgz", + "integrity": "sha512-hFM7oivtlgJ3d6XWD6G47l8Wyh/C6vFw5G24Kk1Tbq85yh5gcM8Fne5/lFhiuxB+RT6+SI7I1ThB9lG4FBh3jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ast-module-types": "^6.0.0", + "node-source-walk": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true, + "license": "ISC" + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gonzales-pe": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", + "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "gonzales": "bin/gonzales.js" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-url-superb": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-4.0.0.tgz", + "integrity": "sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/madge": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/madge/-/madge-8.0.0.tgz", + "integrity": "sha512-9sSsi3TBPhmkTCIpVQF0SPiChj1L7Rq9kU2KDG1o6v2XH9cCw086MopjVCD+vuoL5v8S77DTbVopTO8OUiQpIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "commander": "^7.2.0", + "commondir": "^1.0.1", + "debug": "^4.3.4", + "dependency-tree": "^11.0.0", + "ora": "^5.4.1", + "pluralize": "^8.0.0", + "pretty-ms": "^7.0.1", + "rc": "^1.2.8", + "stream-to-array": "^2.3.0", + "ts-graphviz": "^2.1.2", + "walkdir": "^0.4.1" + }, + "bin": { + "madge": "bin/cli.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "individual", + "url": "https://www.paypal.me/pahen" + }, + "peerDependencies": { + "typescript": "^5.4.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/module-definition": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-6.0.0.tgz", + "integrity": "sha512-sEGP5nKEXU7fGSZUML/coJbrO+yQtxcppDAYWRE9ovWsTbFoUHB2qDUx564WUzDaBHXsD46JBbIK5WVTwCyu3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ast-module-types": "^6.0.0", + "node-source-walk": "^7.0.0" + }, + "bin": { + "module-definition": "bin/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/module-lookup-amd": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/module-lookup-amd/-/module-lookup-amd-9.0.2.tgz", + "integrity": "sha512-p7PzSVEWiW9fHRX9oM+V4aV5B2nCVddVNv4DZ/JB6t9GsXY4E+ZVhPpnwUX7bbJyGeeVZqhS8q/JZ/H77IqPFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^12.1.0", + "glob": "^7.2.3", + "requirejs": "^2.3.7", + "requirejs-config-file": "^4.0.0" + }, + "bin": { + "lookup-amd": "bin/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/module-lookup-amd/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-source-walk": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-7.0.0.tgz", + "integrity": "sha512-1uiY543L+N7Og4yswvlm5NCKgPKDEXd9AUR9Jh3gen6oOeBsesr6LqhXom1er3eRzSUcVRWXzhv8tSNrIfGHKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.24.4" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", + "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-values-parser": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-6.0.2.tgz", + "integrity": "sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "color-name": "^1.1.4", + "is-url-superb": "^4.0.0", + "quote-unquote": "^1.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "postcss": "^8.2.9" + } + }, + "node_modules/precinct": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/precinct/-/precinct-12.1.2.tgz", + "integrity": "sha512-x2qVN3oSOp3D05ihCd8XdkIPuEQsyte7PSxzLqiRgktu79S5Dr1I75/S+zAup8/0cwjoiJTQztE9h0/sWp9bJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@dependents/detective-less": "^5.0.0", + "commander": "^12.1.0", + "detective-amd": "^6.0.0", + "detective-cjs": "^6.0.0", + "detective-es6": "^5.0.0", + "detective-postcss": "^7.0.0", + "detective-sass": "^6.0.0", + "detective-scss": "^5.0.0", + "detective-stylus": "^5.0.0", + "detective-typescript": "^13.0.0", + "detective-vue2": "^2.0.3", + "module-definition": "^6.0.0", + "node-source-walk": "^7.0.0", + "postcss": "^8.4.40", + "typescript": "^5.5.4" + }, + "bin": { + "precinct": "bin/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/precinct/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/pretty-ms": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", + "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-ms": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quote-unquote": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/quote-unquote/-/quote-unquote-1.0.0.tgz", + "integrity": "sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==", + "dev": true, + "license": "MIT" + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/requirejs": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.7.tgz", + "integrity": "sha512-DouTG8T1WanGok6Qjg2SXuCMzszOo0eHeH9hDZ5Y4x8Je+9JB38HdTLT4/VA8OaUhBa0JPVHJ0pyBkM1z+pDsw==", + "dev": true, + "license": "MIT", + "bin": { + "r_js": "bin/r.js", + "r.js": "bin/r.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/requirejs-config-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz", + "integrity": "sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esprima": "^4.0.0", + "stringify-object": "^3.2.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-dependency-path": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-dependency-path/-/resolve-dependency-path-4.0.0.tgz", + "integrity": "sha512-hlY1SybBGm5aYN3PC4rp15MzsJLM1w+MEA/4KU3UBPfz4S0lL3FL6mgv7JgaA8a+ZTeEQAiF1a1BuN2nkqiIlg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/sass-lookup": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/sass-lookup/-/sass-lookup-6.0.1.tgz", + "integrity": "sha512-nl9Wxbj9RjEJA5SSV0hSDoU2zYGtE+ANaDS4OFUR7nYrquvBFvPKZZtQHe3lvnxCcylEDV00KUijjdMTUElcVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^12.0.0" + }, + "bin": { + "sass-lookup": "bin/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/sass-lookup/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stream-to-array": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/stream-to-array/-/stream-to-array-2.3.0.tgz", + "integrity": "sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.1.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stylus-lookup": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/stylus-lookup/-/stylus-lookup-6.0.0.tgz", + "integrity": "sha512-RaWKxAvPnIXrdby+UWCr1WRfa+lrPMSJPySte4Q6a+rWyjeJyFOLJxr5GrAVfcMCsfVlCuzTAJ/ysYT8p8do7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^12.0.0" + }, + "bin": { + "stylus-lookup": "bin/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/stylus-lookup/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-graphviz": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/ts-graphviz/-/ts-graphviz-2.1.6.tgz", + "integrity": "sha512-XyLVuhBVvdJTJr2FJJV2L1pc4MwSjMhcunRVgDE9k4wbb2ee7ORYnPewxMWUav12vxyfUM686MSGsqnVRIInuw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ts-graphviz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/ts-graphviz" + } + ], + "license": "MIT", + "dependencies": { + "@ts-graphviz/adapter": "^2.0.6", + "@ts-graphviz/ast": "^2.0.7", + "@ts-graphviz/common": "^2.1.5", + "@ts-graphviz/core": "^2.0.7" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -23,6 +2233,40 @@ "engines": { "node": ">=14.17" } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/walkdir": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz", + "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" } } } diff --git a/v3/internal/generator/testdata/tsconfig.json b/v3/internal/generator/testdata/tsconfig.json index 8df583208..8bfb46227 100644 --- a/v3/internal/generator/testdata/tsconfig.json +++ b/v3/internal/generator/testdata/tsconfig.json @@ -5,7 +5,7 @@ "skipLibCheck": true, "target": "ES6", - "lib": ["ES6"], + "lib": ["ES6", "DOM"], "module": "ES6", "moduleResolution": "Node", diff --git a/v3/internal/generator/typedefs.go b/v3/internal/generator/typedefs.go deleted file mode 100644 index de75b6cf4..000000000 --- a/v3/internal/generator/typedefs.go +++ /dev/null @@ -1,34 +0,0 @@ -package generator - -import ( - "path/filepath" - - "github.com/wailsapp/wails/v3/internal/generator/collect" -) - -// generateTypedefs generates a JS/TS typedef file for the given list of models. -// A call to info.Collect must complete before entering generateTypedefs. -func (generator *Generator) generateTypedefs(info *collect.PackageInfo, models []*collect.ModelInfo) { - // Merge all import maps. - imports := collect.NewImportMap(info) - for _, model := range models { - imports.Merge(model.Imports) - } - - // Clear irrelevant imports. - imports.ImportModels = false - - file, err := generator.creator.Create(filepath.Join(info.Path, generator.renderer.InternalFile())) - if err != nil { - generator.logger.Errorf("%v", err) - generator.logger.Errorf("package %s: models generation failed", info.Path) - return - } - defer file.Close() - - err = generator.renderer.Typedefs(file, imports, models) - if err != nil { - generator.logger.Errorf("%v", err) - generator.logger.Errorf("package %s: models generation failed", info.Path) - } -}