From 801acd01dfe7b6e0dab21e49e4d44e1b38d30333 Mon Sep 17 00:00:00 2001 From: Fabio Massaioli Date: Tue, 3 Feb 2026 21:05:04 +0100 Subject: [PATCH] fix(v3/generator): binding generation for cross-package type aliases (#4948) * Add test case for aliases of imported types * Replace `typeutil.Map` with object-keyed map in `addTypeImpl` method * Replace `typeutil.Map` with object-keyed map in `needsCreateImpl` method * Update UNRELEASED_CHANGELOG.md * Update binding generator test data --------- Co-authored-by: Lea Anthony --- v3/UNRELEASED_CHANGELOG.md | 1 + v3/internal/generator/collect/imports.go | 17 ++++--- v3/internal/generator/render/create.go | 15 ++++--- .../generator/testcases/aliases/main.go | 9 ++++ .../testcases/aliases/subpkg/subpkg.go | 6 +++ .../testcases/aliases/greetservice.js | 27 ++++++++--- .../generator/testcases/aliases/index.js | 1 + .../generator/testcases/aliases/models.js | 26 +++++++++++ .../testcases/aliases/subpkg/index.js | 7 +++ .../testcases/aliases/subpkg/models.js | 45 +++++++++++++++++++ .../testcases/aliases/greetservice.js | 27 ++++++++--- .../generator/testcases/aliases/index.js | 1 + .../generator/testcases/aliases/models.js | 26 +++++++++++ .../testcases/aliases/subpkg/index.js | 7 +++ .../testcases/aliases/subpkg/models.js | 45 +++++++++++++++++++ .../testcases/aliases/greetservice.js | 7 +++ .../generator/testcases/aliases/index.js | 5 +++ .../generator/testcases/aliases/models.js | 10 +++++ .../testcases/aliases/subpkg/index.js | 10 +++++ .../testcases/aliases/subpkg/models.js | 13 ++++++ .../testcases/aliases/greetservice.js | 7 +++ .../generator/testcases/aliases/index.js | 5 +++ .../generator/testcases/aliases/models.js | 10 +++++ .../testcases/aliases/subpkg/index.js | 10 +++++ .../testcases/aliases/subpkg/models.js | 13 ++++++ .../testcases/aliases/greetservice.ts | 24 +++++++--- .../generator/testcases/aliases/index.ts | 1 + .../generator/testcases/aliases/models.ts | 23 ++++++++++ .../testcases/aliases/subpkg/index.ts | 6 +++ .../testcases/aliases/subpkg/models.ts | 37 +++++++++++++++ .../testcases/aliases/greetservice.ts | 24 +++++++--- .../generator/testcases/aliases/index.ts | 1 + .../generator/testcases/aliases/models.ts | 23 ++++++++++ .../testcases/aliases/subpkg/index.ts | 6 +++ .../testcases/aliases/subpkg/models.ts | 37 +++++++++++++++ .../testcases/aliases/greetservice.ts | 4 ++ .../generator/testcases/aliases/index.ts | 1 + .../generator/testcases/aliases/models.ts | 10 +++++ .../testcases/aliases/subpkg/index.ts | 6 +++ .../testcases/aliases/subpkg/models.ts | 9 ++++ .../testcases/aliases/greetservice.ts | 4 ++ .../generator/testcases/aliases/index.ts | 1 + .../generator/testcases/aliases/models.ts | 10 +++++ .../testcases/aliases/subpkg/index.ts | 6 +++ .../testcases/aliases/subpkg/models.ts | 9 ++++ 45 files changed, 548 insertions(+), 44 deletions(-) create mode 100644 v3/internal/generator/testcases/aliases/subpkg/subpkg.go create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.js create mode 100644 v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.js create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.ts create mode 100644 v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.ts diff --git a/v3/UNRELEASED_CHANGELOG.md b/v3/UNRELEASED_CHANGELOG.md index 8e4648038..59ce1698d 100644 --- a/v3/UNRELEASED_CHANGELOG.md +++ b/v3/UNRELEASED_CHANGELOG.md @@ -23,6 +23,7 @@ After processing, the content will be moved to the main changelog and this file ## Fixed +- Fix binding generation for cross-package type aliases (#4578) by @fbbdev ## Deprecated diff --git a/v3/internal/generator/collect/imports.go b/v3/internal/generator/collect/imports.go index 349ef68af..4196b5e5e 100644 --- a/v3/internal/generator/collect/imports.go +++ b/v3/internal/generator/collect/imports.go @@ -3,8 +3,6 @@ package collect import ( "go/types" "path/filepath" - - "golang.org/x/tools/go/types/typeutil" ) type ( @@ -122,12 +120,12 @@ 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, new(typeutil.Map)) + imports.addTypeImpl(typ, make(map[*types.TypeName]bool)) } // addTypeImpl provides the actual implementation of AddType. // The visited parameter is used to break cycles. -func (imports *ImportMap) addTypeImpl(typ types.Type, visited *typeutil.Map) { +func (imports *ImportMap) addTypeImpl(typ types.Type, visited map[*types.TypeName]bool) { collector := imports.collector if collector == nil { panic("AddType called on ImportMap with nil collector") @@ -136,17 +134,18 @@ func (imports *ImportMap) addTypeImpl(typ types.Type, visited *typeutil.Map) { for { // Avoid recursion where possible. switch t := typ.(type) { case *types.Alias, *types.Named: - if visited.Set(typ, true) != nil { - // Break type cycles. - return - } - obj := typ.(interface{ Obj() *types.TypeName }).Obj() if obj.Pkg() == nil { // Ignore universe type. return } + if visited[obj] { + // Break type cycles. + return + } + visited[obj] = true + // Special case: application.Void will render as TS void hence no dependencies and no model if collector.IsVoidAlias(obj) { return diff --git a/v3/internal/generator/render/create.go b/v3/internal/generator/render/create.go index 4b0f3484e..85d38a536 100644 --- a/v3/internal/generator/render/create.go +++ b/v3/internal/generator/render/create.go @@ -7,7 +7,6 @@ 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. @@ -22,12 +21,12 @@ 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, new(typeutil.Map)) + return m.needsCreateImpl(typ, make(map[*types.TypeName]bool)) } // needsCreateImpl provides the actual implementation of NeedsCreate. // The visited parameter is used to break cycles. -func (m *module) needsCreateImpl(typ types.Type, visited *typeutil.Map) bool { +func (m *module) needsCreateImpl(typ types.Type, visited map[*types.TypeName]bool) bool { switch t := typ.(type) { case *types.Alias: if m.collector.IsVoidAlias(t.Obj()) { @@ -37,20 +36,22 @@ func (m *module) needsCreateImpl(typ types.Type, visited *typeutil.Map) bool { return m.needsCreateImpl(types.Unalias(typ), visited) case *types.Named: - if visited.Set(typ, true) != nil { + obj := t.Obj() + if visited[obj] { // 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. + // since the cycle will not contribute to the final answer. return false } + visited[obj] = true - if t.Obj().Pkg() == nil { + if obj.Pkg() == nil { // Builtin named type: render underlying type. return m.needsCreateImpl(t.Underlying(), visited) } - if m.collector.IsVoidAlias(t.Obj()) { + if m.collector.IsVoidAlias(obj) { return false } diff --git a/v3/internal/generator/testcases/aliases/main.go b/v3/internal/generator/testcases/aliases/main.go index f50d1634a..3fd5941af 100644 --- a/v3/internal/generator/testcases/aliases/main.go +++ b/v3/internal/generator/testcases/aliases/main.go @@ -5,6 +5,7 @@ import ( "encoding" "log" + "github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg" nobindingshere "github.com/wailsapp/wails/v3/internal/generator/testcases/no_bindings_here" "github.com/wailsapp/wails/v3/pkg/application" ) @@ -75,6 +76,9 @@ type IndirectPersonAlias = GenericPersonAlias[bool] // An alias that wraps a class through a typeparam alias. type TPIndirectPersonAlias = GenericAlias[GenericPerson[bool]] +// An alias referencing another package that is not used elsewhere. +type SubPackageAlias = subpkg.SubStruct + // A class whose fields have various aliased types. type AliasGroup struct { GAi GenericAlias[int] @@ -85,6 +89,7 @@ type AliasGroup struct { GPA GenericPersonAlias[bool] IPA IndirectPersonAlias TPIPA TPIndirectPersonAlias + SPA SubPackageAlias } // Get someone. @@ -106,6 +111,10 @@ func (GreetService) GetButForeignPrivateAlias() (_ nobindingshere.PrivatePerson) return } +func (GreetService) GetButSubPackageAlias() (_ SubPackageAlias) { + return +} + func (GreetService) GetButGenericAliases() (_ AliasGroup) { return } diff --git a/v3/internal/generator/testcases/aliases/subpkg/subpkg.go b/v3/internal/generator/testcases/aliases/subpkg/subpkg.go new file mode 100644 index 000000000..379e8b84c --- /dev/null +++ b/v3/internal/generator/testcases/aliases/subpkg/subpkg.go @@ -0,0 +1,6 @@ +package subpkg + +// SubStruct is a type in a subpackage that is only referenced through an alias. +type SubStruct struct { + SomeField []string +} 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 fcbd41a3a..212ef1b21 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 @@ -11,6 +11,9 @@ // @ts-ignore: Unused imports import { Call as $Call, CancellablePromise as $CancellablePromise, Create as $Create } from "/wails/runtime.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as subpkg$0 from "./subpkg/models.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports import * as nobindingshere$0 from "../no_bindings_here/models.js"; @@ -69,6 +72,15 @@ export function GetButGenericAliases() { })); } +/** + * @returns {$CancellablePromise<$models.SubPackageAlias>} + */ +export function GetButSubPackageAlias() { + return $Call.ByID(1443276371).then(/** @type {($result: any) => any} */(($result) => { + return $$createType4($result); + })); +} + /** * Greet a lot of unusual things. * @param {$models.EmptyAliasStruct} $0 @@ -77,7 +89,7 @@ export function GetButGenericAliases() { */ export function Greet($0, $1) { return $Call.ByID(1411160069, $0, $1).then(/** @type {($result: any) => any} */(($result) => { - return $$createType7($result); + return $$createType8($result); })); } @@ -86,12 +98,13 @@ const $$createType0 = $models.Person.createFrom; const $$createType1 = $models.GenericPerson.createFrom($Create.Any); const $$createType2 = nobindingshere$0.personImpl.createFrom; const $$createType3 = $models.AliasGroup.createFrom; -const $$createType4 = $Create.Array($Create.Any); +const $$createType4 = subpkg$0.SubStruct.createFrom; const $$createType5 = $Create.Array($Create.Any); -const $$createType6 = $Create.Struct({ - "NoMoreIdeas": $$createType5, -}); +const $$createType6 = $Create.Array($Create.Any); const $$createType7 = $Create.Struct({ - "Foo": $$createType4, - "Other": $$createType6, + "NoMoreIdeas": $$createType6, +}); +const $$createType8 = $Create.Struct({ + "Foo": $$createType5, + "Other": $$createType7, }); 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 4278c7958..acfbc8a9b 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 @@ -16,6 +16,7 @@ export { IndirectPersonAlias, Person, StrangelyAliasedPerson, + SubPackageAlias, TPIndirectPersonAlias } 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/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 3de57786d..d0d9c339d 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 @@ -6,6 +6,10 @@ // @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 subpkg$0 from "./subpkg/models.js"; + /** * A nice type Alias. * @typedef {number} Alias @@ -76,6 +80,13 @@ export class AliasGroup { */ this["TPIPA"] = (new TPIndirectPersonAlias()); } + if (!("SPA" in $$source)) { + /** + * @member + * @type {SubPackageAlias} + */ + this["SPA"] = (new SubPackageAlias()); + } Object.assign(this, $$source); } @@ -93,6 +104,7 @@ export class AliasGroup { const $$createField5_0 = $$createType8; const $$createField6_0 = $$createType8; const $$createField7_0 = $$createType0; + const $$createField8_0 = $$createType9; let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; if ("GAP" in $$parsedSource) { $$parsedSource["GAP"] = $$createField1_0($$parsedSource["GAP"]); @@ -115,6 +127,9 @@ export class AliasGroup { if ("TPIPA" in $$parsedSource) { $$parsedSource["TPIPA"] = $$createField7_0($$parsedSource["TPIPA"]); } + if ("SPA" in $$parsedSource) { + $$parsedSource["SPA"] = $$createField8_0($$parsedSource["SPA"]); + } return new AliasGroup(/** @type {Partial} */($$parsedSource)); } } @@ -312,6 +327,16 @@ export const StrangelyAliasedPerson = Person; * @typedef {Person} StrangelyAliasedPerson */ +/** + * An alias referencing another package that is not used elsewhere. + */ +export const SubPackageAlias = subpkg$0.SubStruct; + +/** + * An alias referencing another package that is not used elsewhere. + * @typedef {subpkg$0.SubStruct} SubPackageAlias + */ + /** * An alias that wraps a class through a typeparam alias. */ @@ -332,3 +357,4 @@ const $$createType5 = $Create.Nullable($$createType4); const $$createType6 = $Create.Map($Create.Any, $Create.Any); const $$createType7 = $Create.Array($Create.Any); const $$createType8 = GenericPerson.createFrom($$createType7); +const $$createType9 = subpkg$0.SubStruct.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.js new file mode 100644 index 000000000..a3d65abcf --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/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 { + SubStruct +} 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/aliases/subpkg/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.js new file mode 100644 index 000000000..c582d6149 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.js @@ -0,0 +1,45 @@ +// @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"; + +/** + * SubStruct is a type in a subpackage that is only referenced through an alias. + */ +export class SubStruct { + /** + * Creates a new SubStruct instance. + * @param {Partial} [$$source = {}] - The source object to create the SubStruct. + */ + constructor($$source = {}) { + if (!("SomeField" in $$source)) { + /** + * @member + * @type {string[]} + */ + this["SomeField"] = []; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new SubStruct instance from a string or object. + * @param {any} [$$source = {}] + * @returns {SubStruct} + */ + static createFrom($$source = {}) { + const $$createField0_0 = $$createType0; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("SomeField" in $$parsedSource) { + $$parsedSource["SomeField"] = $$createField0_0($$parsedSource["SomeField"]); + } + return new SubStruct(/** @type {Partial} */($$parsedSource)); + } +} + +// Private type creation functions +const $$createType0 = $Create.Array($Create.Any); 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 2352f40bc..72760c645 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 @@ -11,6 +11,9 @@ // @ts-ignore: Unused imports import { Call as $Call, CancellablePromise as $CancellablePromise, Create as $Create } from "/wails/runtime.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as subpkg$0 from "./subpkg/models.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports import * as nobindingshere$0 from "../no_bindings_here/models.js"; @@ -69,6 +72,15 @@ export function GetButGenericAliases() { })); } +/** + * @returns {$CancellablePromise<$models.SubPackageAlias>} + */ +export function GetButSubPackageAlias() { + return $Call.ByName("main.GreetService.GetButSubPackageAlias").then(/** @type {($result: any) => any} */(($result) => { + return $$createType4($result); + })); +} + /** * Greet a lot of unusual things. * @param {$models.EmptyAliasStruct} $0 @@ -77,7 +89,7 @@ export function GetButGenericAliases() { */ export function Greet($0, $1) { return $Call.ByName("main.GreetService.Greet", $0, $1).then(/** @type {($result: any) => any} */(($result) => { - return $$createType7($result); + return $$createType8($result); })); } @@ -86,12 +98,13 @@ const $$createType0 = $models.Person.createFrom; const $$createType1 = $models.GenericPerson.createFrom($Create.Any); const $$createType2 = nobindingshere$0.personImpl.createFrom; const $$createType3 = $models.AliasGroup.createFrom; -const $$createType4 = $Create.Array($Create.Any); +const $$createType4 = subpkg$0.SubStruct.createFrom; const $$createType5 = $Create.Array($Create.Any); -const $$createType6 = $Create.Struct({ - "NoMoreIdeas": $$createType5, -}); +const $$createType6 = $Create.Array($Create.Any); const $$createType7 = $Create.Struct({ - "Foo": $$createType4, - "Other": $$createType6, + "NoMoreIdeas": $$createType6, +}); +const $$createType8 = $Create.Struct({ + "Foo": $$createType5, + "Other": $$createType7, }); 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 4278c7958..acfbc8a9b 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 @@ -16,6 +16,7 @@ export { IndirectPersonAlias, Person, StrangelyAliasedPerson, + SubPackageAlias, TPIndirectPersonAlias } 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/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 3de57786d..d0d9c339d 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 @@ -6,6 +6,10 @@ // @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 subpkg$0 from "./subpkg/models.js"; + /** * A nice type Alias. * @typedef {number} Alias @@ -76,6 +80,13 @@ export class AliasGroup { */ this["TPIPA"] = (new TPIndirectPersonAlias()); } + if (!("SPA" in $$source)) { + /** + * @member + * @type {SubPackageAlias} + */ + this["SPA"] = (new SubPackageAlias()); + } Object.assign(this, $$source); } @@ -93,6 +104,7 @@ export class AliasGroup { const $$createField5_0 = $$createType8; const $$createField6_0 = $$createType8; const $$createField7_0 = $$createType0; + const $$createField8_0 = $$createType9; let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; if ("GAP" in $$parsedSource) { $$parsedSource["GAP"] = $$createField1_0($$parsedSource["GAP"]); @@ -115,6 +127,9 @@ export class AliasGroup { if ("TPIPA" in $$parsedSource) { $$parsedSource["TPIPA"] = $$createField7_0($$parsedSource["TPIPA"]); } + if ("SPA" in $$parsedSource) { + $$parsedSource["SPA"] = $$createField8_0($$parsedSource["SPA"]); + } return new AliasGroup(/** @type {Partial} */($$parsedSource)); } } @@ -312,6 +327,16 @@ export const StrangelyAliasedPerson = Person; * @typedef {Person} StrangelyAliasedPerson */ +/** + * An alias referencing another package that is not used elsewhere. + */ +export const SubPackageAlias = subpkg$0.SubStruct; + +/** + * An alias referencing another package that is not used elsewhere. + * @typedef {subpkg$0.SubStruct} SubPackageAlias + */ + /** * An alias that wraps a class through a typeparam alias. */ @@ -332,3 +357,4 @@ const $$createType5 = $Create.Nullable($$createType4); const $$createType6 = $Create.Map($Create.Any, $Create.Any); const $$createType7 = $Create.Array($Create.Any); const $$createType8 = GenericPerson.createFrom($$createType7); +const $$createType9 = subpkg$0.SubStruct.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.js new file mode 100644 index 000000000..a3d65abcf --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/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 { + SubStruct +} 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/aliases/subpkg/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.js new file mode 100644 index 000000000..c582d6149 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.js @@ -0,0 +1,45 @@ +// @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"; + +/** + * SubStruct is a type in a subpackage that is only referenced through an alias. + */ +export class SubStruct { + /** + * Creates a new SubStruct instance. + * @param {Partial} [$$source = {}] - The source object to create the SubStruct. + */ + constructor($$source = {}) { + if (!("SomeField" in $$source)) { + /** + * @member + * @type {string[]} + */ + this["SomeField"] = []; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new SubStruct instance from a string or object. + * @param {any} [$$source = {}] + * @returns {SubStruct} + */ + static createFrom($$source = {}) { + const $$createField0_0 = $$createType0; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("SomeField" in $$parsedSource) { + $$parsedSource["SomeField"] = $$createField0_0($$parsedSource["SomeField"]); + } + return new SubStruct(/** @type {Partial} */($$parsedSource)); + } +} + +// Private type creation functions +const $$createType0 = $Create.Array($Create.Any); 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 16b76f94c..cafc6aa33 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 @@ -59,6 +59,13 @@ export function GetButGenericAliases() { return $Call.ByID(914093800); } +/** + * @returns {$CancellablePromise<$models.SubPackageAlias>} + */ +export function GetButSubPackageAlias() { + return $Call.ByID(1443276371); +} + /** * 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 5a5c62644..32457ecf3 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 @@ -90,6 +90,11 @@ import * as $models from "./models.js"; * @typedef {$models.StrangelyAliasedPerson} StrangelyAliasedPerson */ +/** + * An alias referencing another package that is not used elsewhere. + * @typedef {$models.SubPackageAlias} SubPackageAlias + */ + /** * An alias that wraps a class through a typeparam alias. * @typedef {$models.TPIndirectPersonAlias} TPIndirectPersonAlias 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 1ba2af395..cd517d65b 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,6 +2,10 @@ // 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 subpkg$0 from "./subpkg/models.js"; + /** * A nice type Alias. * @typedef {number} Alias @@ -18,6 +22,7 @@ * @property {GenericPersonAlias} GPA * @property {IndirectPersonAlias} IPA * @property {TPIndirectPersonAlias} TPIPA + * @property {SubPackageAlias} SPA */ /** @@ -102,6 +107,11 @@ * @typedef {Person} StrangelyAliasedPerson */ +/** + * An alias referencing another package that is not used elsewhere. + * @typedef {subpkg$0.SubStruct} SubPackageAlias + */ + /** * An alias that wraps a class through a typeparam alias. * @typedef {GenericAlias>} TPIndirectPersonAlias diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.js new file mode 100644 index 000000000..e6b65eedd --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.js @@ -0,0 +1,10 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as $models from "./models.js"; + +/** + * SubStruct is a type in a subpackage that is only referenced through an alias. + * @typedef {$models.SubStruct} SubStruct + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.js new file mode 100644 index 000000000..d711593fc --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.js @@ -0,0 +1,13 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * SubStruct is a type in a subpackage that is only referenced through an alias. + * @typedef {Object} SubStruct + * @property {string[] | null} SomeField + */ + +// 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 cc81267aa..c4ae72eae 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 @@ -59,6 +59,13 @@ export function GetButGenericAliases() { return $Call.ByName("main.GreetService.GetButGenericAliases"); } +/** + * @returns {$CancellablePromise<$models.SubPackageAlias>} + */ +export function GetButSubPackageAlias() { + return $Call.ByName("main.GreetService.GetButSubPackageAlias"); +} + /** * 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 5a5c62644..32457ecf3 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 @@ -90,6 +90,11 @@ import * as $models from "./models.js"; * @typedef {$models.StrangelyAliasedPerson} StrangelyAliasedPerson */ +/** + * An alias referencing another package that is not used elsewhere. + * @typedef {$models.SubPackageAlias} SubPackageAlias + */ + /** * An alias that wraps a class through a typeparam alias. * @typedef {$models.TPIndirectPersonAlias} TPIndirectPersonAlias 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 1ba2af395..cd517d65b 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,6 +2,10 @@ // 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 subpkg$0 from "./subpkg/models.js"; + /** * A nice type Alias. * @typedef {number} Alias @@ -18,6 +22,7 @@ * @property {GenericPersonAlias} GPA * @property {IndirectPersonAlias} IPA * @property {TPIndirectPersonAlias} TPIPA + * @property {SubPackageAlias} SPA */ /** @@ -102,6 +107,11 @@ * @typedef {Person} StrangelyAliasedPerson */ +/** + * An alias referencing another package that is not used elsewhere. + * @typedef {subpkg$0.SubStruct} SubPackageAlias + */ + /** * An alias that wraps a class through a typeparam alias. * @typedef {GenericAlias>} TPIndirectPersonAlias diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.js new file mode 100644 index 000000000..e6b65eedd --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.js @@ -0,0 +1,10 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as $models from "./models.js"; + +/** + * SubStruct is a type in a subpackage that is only referenced through an alias. + * @typedef {$models.SubStruct} SubStruct + */ diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.js new file mode 100644 index 000000000..d711593fc --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.js @@ -0,0 +1,13 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * SubStruct is a type in a subpackage that is only referenced through an alias. + * @typedef {Object} SubStruct + * @property {string[] | null} SomeField + */ + +// 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=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 3c6865881..ccc8ac9fe 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 @@ -10,6 +10,9 @@ // @ts-ignore: Unused imports import { Call as $Call, CancellablePromise as $CancellablePromise, Create as $Create } from "/wails/runtime.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as subpkg$0 from "./subpkg/models.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports import * as nobindingshere$0 from "../no_bindings_here/models.js"; @@ -57,12 +60,18 @@ export function GetButGenericAliases(): $CancellablePromise<$models.AliasGroup> }); } +export function GetButSubPackageAlias(): $CancellablePromise<$models.SubPackageAlias> { + return $Call.ByID(1443276371).then(($result: any) => { + return $$createType4($result); + }); +} + /** * Greet a lot of unusual things. */ export function Greet($0: $models.EmptyAliasStruct, $1: $models.EmptyStruct): $CancellablePromise<$models.AliasStruct> { return $Call.ByID(1411160069, $0, $1).then(($result: any) => { - return $$createType7($result); + return $$createType8($result); }); } @@ -71,12 +80,13 @@ const $$createType0 = $models.Person.createFrom; const $$createType1 = $models.GenericPerson.createFrom($Create.Any); const $$createType2 = nobindingshere$0.personImpl.createFrom; const $$createType3 = $models.AliasGroup.createFrom; -const $$createType4 = $Create.Array($Create.Any); +const $$createType4 = subpkg$0.SubStruct.createFrom; const $$createType5 = $Create.Array($Create.Any); -const $$createType6 = $Create.Struct({ - "NoMoreIdeas": $$createType5, -}); +const $$createType6 = $Create.Array($Create.Any); const $$createType7 = $Create.Struct({ - "Foo": $$createType4, - "Other": $$createType6, + "NoMoreIdeas": $$createType6, +}); +const $$createType8 = $Create.Struct({ + "Foo": $$createType5, + "Other": $$createType7, }); 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 13f61da0f..f01ba91e8 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 @@ -15,6 +15,7 @@ export { IndirectPersonAlias, Person, StrangelyAliasedPerson, + SubPackageAlias, TPIndirectPersonAlias } 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/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 63ca43914..60484d6d6 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 @@ -5,6 +5,10 @@ // @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 subpkg$0 from "./subpkg/models.js"; + /** * A nice type Alias. */ @@ -22,6 +26,7 @@ export class AliasGroup { "GPA": GenericPersonAlias; "IPA": IndirectPersonAlias; "TPIPA": TPIndirectPersonAlias; + "SPA": SubPackageAlias; /** Creates a new AliasGroup instance. */ constructor($$source: Partial = {}) { @@ -49,6 +54,9 @@ export class AliasGroup { if (!("TPIPA" in $$source)) { this["TPIPA"] = (new TPIndirectPersonAlias()); } + if (!("SPA" in $$source)) { + this["SPA"] = (new SubPackageAlias()); + } Object.assign(this, $$source); } @@ -64,6 +72,7 @@ export class AliasGroup { const $$createField5_0 = $$createType8; const $$createField6_0 = $$createType8; const $$createField7_0 = $$createType0; + const $$createField8_0 = $$createType9; let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; if ("GAP" in $$parsedSource) { $$parsedSource["GAP"] = $$createField1_0($$parsedSource["GAP"]); @@ -86,6 +95,9 @@ export class AliasGroup { if ("TPIPA" in $$parsedSource) { $$parsedSource["TPIPA"] = $$createField7_0($$parsedSource["TPIPA"]); } + if ("SPA" in $$parsedSource) { + $$parsedSource["SPA"] = $$createField8_0($$parsedSource["SPA"]); + } return new AliasGroup($$parsedSource as Partial); } } @@ -268,6 +280,16 @@ export const StrangelyAliasedPerson = Person; */ export type StrangelyAliasedPerson = Person; +/** + * An alias referencing another package that is not used elsewhere. + */ +export const SubPackageAlias = subpkg$0.SubStruct; + +/** + * An alias referencing another package that is not used elsewhere. + */ +export type SubPackageAlias = subpkg$0.SubStruct; + /** * An alias that wraps a class through a typeparam alias. */ @@ -288,3 +310,4 @@ const $$createType5 = $Create.Nullable($$createType4); const $$createType6 = $Create.Map($Create.Any, $Create.Any); const $$createType7 = $Create.Array($Create.Any); const $$createType8 = GenericPerson.createFrom($$createType7); +const $$createType9 = subpkg$0.SubStruct.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.ts new file mode 100644 index 000000000..19a8a0184 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.ts @@ -0,0 +1,6 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export { + SubStruct +} 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/subpkg/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.ts new file mode 100644 index 000000000..03ba700d1 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.ts @@ -0,0 +1,37 @@ +// 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"; + +/** + * SubStruct is a type in a subpackage that is only referenced through an alias. + */ +export class SubStruct { + "SomeField": string[]; + + /** Creates a new SubStruct instance. */ + constructor($$source: Partial = {}) { + if (!("SomeField" in $$source)) { + this["SomeField"] = []; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new SubStruct instance from a string or object. + */ + static createFrom($$source: any = {}): SubStruct { + const $$createField0_0 = $$createType0; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("SomeField" in $$parsedSource) { + $$parsedSource["SomeField"] = $$createField0_0($$parsedSource["SomeField"]); + } + return new SubStruct($$parsedSource as Partial); + } +} + +// Private type creation functions +const $$createType0 = $Create.Array($Create.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 b33d68383..ac113f0da 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 @@ -10,6 +10,9 @@ // @ts-ignore: Unused imports import { Call as $Call, CancellablePromise as $CancellablePromise, Create as $Create } from "/wails/runtime.js"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as subpkg$0 from "./subpkg/models.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports import * as nobindingshere$0 from "../no_bindings_here/models.js"; @@ -57,12 +60,18 @@ export function GetButGenericAliases(): $CancellablePromise<$models.AliasGroup> }); } +export function GetButSubPackageAlias(): $CancellablePromise<$models.SubPackageAlias> { + return $Call.ByName("main.GreetService.GetButSubPackageAlias").then(($result: any) => { + return $$createType4($result); + }); +} + /** * Greet a lot of unusual things. */ export function Greet($0: $models.EmptyAliasStruct, $1: $models.EmptyStruct): $CancellablePromise<$models.AliasStruct> { return $Call.ByName("main.GreetService.Greet", $0, $1).then(($result: any) => { - return $$createType7($result); + return $$createType8($result); }); } @@ -71,12 +80,13 @@ const $$createType0 = $models.Person.createFrom; const $$createType1 = $models.GenericPerson.createFrom($Create.Any); const $$createType2 = nobindingshere$0.personImpl.createFrom; const $$createType3 = $models.AliasGroup.createFrom; -const $$createType4 = $Create.Array($Create.Any); +const $$createType4 = subpkg$0.SubStruct.createFrom; const $$createType5 = $Create.Array($Create.Any); -const $$createType6 = $Create.Struct({ - "NoMoreIdeas": $$createType5, -}); +const $$createType6 = $Create.Array($Create.Any); const $$createType7 = $Create.Struct({ - "Foo": $$createType4, - "Other": $$createType6, + "NoMoreIdeas": $$createType6, +}); +const $$createType8 = $Create.Struct({ + "Foo": $$createType5, + "Other": $$createType7, }); 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 13f61da0f..f01ba91e8 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 @@ -15,6 +15,7 @@ export { IndirectPersonAlias, Person, StrangelyAliasedPerson, + SubPackageAlias, TPIndirectPersonAlias } 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/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 63ca43914..60484d6d6 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 @@ -5,6 +5,10 @@ // @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 subpkg$0 from "./subpkg/models.js"; + /** * A nice type Alias. */ @@ -22,6 +26,7 @@ export class AliasGroup { "GPA": GenericPersonAlias; "IPA": IndirectPersonAlias; "TPIPA": TPIndirectPersonAlias; + "SPA": SubPackageAlias; /** Creates a new AliasGroup instance. */ constructor($$source: Partial = {}) { @@ -49,6 +54,9 @@ export class AliasGroup { if (!("TPIPA" in $$source)) { this["TPIPA"] = (new TPIndirectPersonAlias()); } + if (!("SPA" in $$source)) { + this["SPA"] = (new SubPackageAlias()); + } Object.assign(this, $$source); } @@ -64,6 +72,7 @@ export class AliasGroup { const $$createField5_0 = $$createType8; const $$createField6_0 = $$createType8; const $$createField7_0 = $$createType0; + const $$createField8_0 = $$createType9; let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; if ("GAP" in $$parsedSource) { $$parsedSource["GAP"] = $$createField1_0($$parsedSource["GAP"]); @@ -86,6 +95,9 @@ export class AliasGroup { if ("TPIPA" in $$parsedSource) { $$parsedSource["TPIPA"] = $$createField7_0($$parsedSource["TPIPA"]); } + if ("SPA" in $$parsedSource) { + $$parsedSource["SPA"] = $$createField8_0($$parsedSource["SPA"]); + } return new AliasGroup($$parsedSource as Partial); } } @@ -268,6 +280,16 @@ export const StrangelyAliasedPerson = Person; */ export type StrangelyAliasedPerson = Person; +/** + * An alias referencing another package that is not used elsewhere. + */ +export const SubPackageAlias = subpkg$0.SubStruct; + +/** + * An alias referencing another package that is not used elsewhere. + */ +export type SubPackageAlias = subpkg$0.SubStruct; + /** * An alias that wraps a class through a typeparam alias. */ @@ -288,3 +310,4 @@ const $$createType5 = $Create.Nullable($$createType4); const $$createType6 = $Create.Map($Create.Any, $Create.Any); const $$createType7 = $Create.Array($Create.Any); const $$createType8 = GenericPerson.createFrom($$createType7); +const $$createType9 = subpkg$0.SubStruct.createFrom; diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.ts new file mode 100644 index 000000000..19a8a0184 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.ts @@ -0,0 +1,6 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export { + SubStruct +} 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/subpkg/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.ts new file mode 100644 index 000000000..03ba700d1 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.ts @@ -0,0 +1,37 @@ +// 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"; + +/** + * SubStruct is a type in a subpackage that is only referenced through an alias. + */ +export class SubStruct { + "SomeField": string[]; + + /** Creates a new SubStruct instance. */ + constructor($$source: Partial = {}) { + if (!("SomeField" in $$source)) { + this["SomeField"] = []; + } + + Object.assign(this, $$source); + } + + /** + * Creates a new SubStruct instance from a string or object. + */ + static createFrom($$source: any = {}): SubStruct { + const $$createField0_0 = $$createType0; + let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source; + if ("SomeField" in $$parsedSource) { + $$parsedSource["SomeField"] = $$createField0_0($$parsedSource["SomeField"]); + } + return new SubStruct($$parsedSource as Partial); + } +} + +// Private type creation functions +const $$createType0 = $Create.Array($Create.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 c371520b0..82fd04182 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 @@ -47,6 +47,10 @@ export function GetButGenericAliases(): $CancellablePromise<$models.AliasGroup> return $Call.ByID(914093800); } +export function GetButSubPackageAlias(): $CancellablePromise<$models.SubPackageAlias> { + return $Call.ByID(1443276371); +} + /** * 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 75cbdc737..fe7bfae7b 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 @@ -22,5 +22,6 @@ export type { OtherAliasStruct, Person, StrangelyAliasedPerson, + SubPackageAlias, TPIndirectPersonAlias } 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/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 26b204c1f..14b8879f7 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,6 +1,10 @@ // 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 subpkg$0 from "./subpkg/models.js"; + /** * A nice type Alias. */ @@ -18,6 +22,7 @@ export interface AliasGroup { "GPA": GenericPersonAlias; "IPA": IndirectPersonAlias; "TPIPA": TPIndirectPersonAlias; + "SPA": SubPackageAlias; } /** @@ -119,6 +124,11 @@ export interface Person { */ export type StrangelyAliasedPerson = Person; +/** + * An alias referencing another package that is not used elsewhere. + */ +export type SubPackageAlias = subpkg$0.SubStruct; + /** * An alias that wraps a class through a typeparam alias. */ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.ts new file mode 100644 index 000000000..842f00546 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.ts @@ -0,0 +1,6 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export type { + SubStruct +} 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/subpkg/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.ts new file mode 100644 index 000000000..729b548db --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.ts @@ -0,0 +1,9 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * SubStruct is a type in a subpackage that is only referenced through an alias. + */ +export interface SubStruct { + "SomeField": string[] | null; +} 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 d19c65d22..ba719d105 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 @@ -47,6 +47,10 @@ export function GetButGenericAliases(): $CancellablePromise<$models.AliasGroup> return $Call.ByName("main.GreetService.GetButGenericAliases"); } +export function GetButSubPackageAlias(): $CancellablePromise<$models.SubPackageAlias> { + return $Call.ByName("main.GreetService.GetButSubPackageAlias"); +} + /** * 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 75cbdc737..fe7bfae7b 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 @@ -22,5 +22,6 @@ export type { OtherAliasStruct, Person, StrangelyAliasedPerson, + SubPackageAlias, TPIndirectPersonAlias } 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/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 26b204c1f..14b8879f7 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,6 +1,10 @@ // 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 subpkg$0 from "./subpkg/models.js"; + /** * A nice type Alias. */ @@ -18,6 +22,7 @@ export interface AliasGroup { "GPA": GenericPersonAlias; "IPA": IndirectPersonAlias; "TPIPA": TPIndirectPersonAlias; + "SPA": SubPackageAlias; } /** @@ -119,6 +124,11 @@ export interface Person { */ export type StrangelyAliasedPerson = Person; +/** + * An alias referencing another package that is not used elsewhere. + */ +export type SubPackageAlias = subpkg$0.SubStruct; + /** * An alias that wraps a class through a typeparam alias. */ diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.ts new file mode 100644 index 000000000..842f00546 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/index.ts @@ -0,0 +1,6 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export type { + SubStruct +} 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/subpkg/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.ts new file mode 100644 index 000000000..729b548db --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/aliases/subpkg/models.ts @@ -0,0 +1,9 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * SubStruct is a type in a subpackage that is only referenced through an alias. + */ +export interface SubStruct { + "SomeField": string[] | null; +}