diff --git a/v3/UNRELEASED_CHANGELOG.md b/v3/UNRELEASED_CHANGELOG.md index c194c0e9e..7fceefca9 100644 --- a/v3/UNRELEASED_CHANGELOG.md +++ b/v3/UNRELEASED_CHANGELOG.md @@ -25,6 +25,7 @@ After processing, the content will be moved to the main changelog and this file ## Changed +- **BREAKING**: Map keys in generated JS/TS bindings are now marked optional to accurately reflect Go map semantics. Map value access in Typescript now returns `T | undefined` instead of `T`, requiring null checks or assertions (#4943) by `@fbbdev` ## Fixed @@ -35,6 +36,7 @@ After processing, the content will be moved to the main changelog and this file - Fix HTML5 internal drag-and-drop being broken when file drop was enabled on Linux - Fix DPI scaling on Linux/GTK4 by implementing proper PhysicalBounds calculation and fractional scaling support via `gdk_monitor_get_scale` (GTK 4.14+) - Fix menu items duplicating when creating new windows on Linux/GTK4 +- Fix generation of mapped types with enum keys in JS/TS bindings (#4437) by @fbbdev ## Deprecated diff --git a/v3/internal/generator/collect/imports.go b/v3/internal/generator/collect/imports.go index 4196b5e5e..e7777ab23 100644 --- a/v3/internal/generator/collect/imports.go +++ b/v3/internal/generator/collect/imports.go @@ -211,7 +211,7 @@ func (imports *ImportMap) addTypeImpl(typ types.Type, visited map[*types.TypeNam case *types.Map: if IsMapKey(t.Key()) { - if IsStringAlias(t.Key()) { + if IsStringAlias(t.Key()) || IsNumberAlias(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) diff --git a/v3/internal/generator/collect/model.go b/v3/internal/generator/collect/model.go index 4e5b32cb5..5acabf17b 100644 --- a/v3/internal/generator/collect/model.go +++ b/v3/internal/generator/collect/model.go @@ -71,6 +71,7 @@ type ( IsMapKey bool IsTypeParam bool IsStringAlias bool + IsNumberAlias bool IsClass bool IsAny bool } @@ -178,6 +179,7 @@ func (info *ModelInfo) Collect() *ModelInfo { IsMapKey: IsMapKey(ityp), IsTypeParam: IsTypeParam(ityp), IsStringAlias: IsStringAlias(ityp), + IsNumberAlias: IsNumberAlias(ityp), IsClass: IsClass(ityp), IsAny: IsAny(ityp), } diff --git a/v3/internal/generator/collect/predicates.go b/v3/internal/generator/collect/predicates.go index 8a4b3197c..6a22646fd 100644 --- a/v3/internal/generator/collect/predicates.go +++ b/v3/internal/generator/collect/predicates.go @@ -400,6 +400,68 @@ func IsStringAlias(typ types.Type) bool { return ok && basic.Info()&types.IsString != 0 } +// IsNumberAlias returns true when +// either typ will be rendered to JS/TS as an alias for the TS type `number`, +// 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: +// IsNumberAlias MUST NOT be used to check +// whether an arbitrary instance of [types.Type] +// renders as a JS/TS number type. +// +// Notice that IsNumberAlias returns false for all type parameters: +// detecting those that must be always instantiated as number aliases +// is technically possible, but very difficult. +func IsNumberAlias(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 numbers. + 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 number 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 numeric types are rendered as numbers. + if basic, ok := typ.(*types.Basic); ok { + return basic.Info()&(types.IsInteger|types.IsUnsigned|types.IsFloat) != 0 + } + + // json.Marshalers can only be rendered as any. + // TextMarshalers that aren't json.Marshalers render as strings not numbers. + if MaybeJSONMarshaler(typ) != NonMarshaler || MaybeTextMarshaler(typ) != NonMarshaler { + return false + } + + // Named types whose underlying type is numeric are rendered as numbers. + basic, ok := typ.Underlying().(*types.Basic) + return ok && basic.Info()&(types.IsInteger|types.IsUnsigned|types.IsFloat) != 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 { diff --git a/v3/internal/generator/render/type.go b/v3/internal/generator/render/type.go index f694a11c3..24a1e7af9 100644 --- a/v3/internal/generator/render/type.go +++ b/v3/internal/generator/render/type.go @@ -149,7 +149,7 @@ func (m *module) renderMapType(typ *types.Map) (result string, nullable bool) { case *types.Alias, *types.Named, *types.Pointer: if collect.IsMapKey(k) { - if collect.IsStringAlias(k) { + if collect.IsStringAlias(k) || collect.IsNumberAlias(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 { @@ -165,7 +165,7 @@ func (m *module) renderMapType(typ *types.Map) (result string, nullable bool) { } } - return fmt.Sprintf("{ [_: %s]: %s }%s", key, elem, null), m.UseInterfaces + return fmt.Sprintf("{ [_ in %s]?: %s }%s", key, elem, null), m.UseInterfaces } // renderNamedType outputs the TS representation diff --git a/v3/internal/generator/testcases/enum_map_keys/bound_types.json b/v3/internal/generator/testcases/enum_map_keys/bound_types.json new file mode 100644 index 000000000..429c3a59c --- /dev/null +++ b/v3/internal/generator/testcases/enum_map_keys/bound_types.json @@ -0,0 +1,3 @@ +[ + ".EnumMapService" +] diff --git a/v3/internal/generator/testcases/enum_map_keys/main.go b/v3/internal/generator/testcases/enum_map_keys/main.go new file mode 100644 index 000000000..6667dc892 --- /dev/null +++ b/v3/internal/generator/testcases/enum_map_keys/main.go @@ -0,0 +1,133 @@ +package main + +import ( + _ "embed" + "log" + + "github.com/wailsapp/wails/v3/pkg/application" +) + +// Status represents different status values +type Status string + +const ( + StatusPending Status = "pending" + StatusRunning Status = "running" + StatusCompleted Status = "completed" + StatusFailed Status = "failed" +) + +// Priority represents priority levels +type Priority int + +const ( + PriorityLow Priority = 1 + PriorityMedium Priority = 2 + PriorityHigh Priority = 3 +) + +// Color represents color values +type Color uint8 + +const ( + Red Color = 1 + Green Color = 2 + Blue Color = 3 +) + +// EnumMapService tests various enum map key scenarios +type EnumMapService struct{} + +// GetStatusMessages returns a map with string enum keys +func (*EnumMapService) GetStatusMessages() map[Status]string { + return map[Status]string{ + StatusPending: "Task is pending", + StatusRunning: "Task is running", + StatusCompleted: "Task completed successfully", + StatusFailed: "Task failed", + } +} + +// GetPriorityWeights returns a map with integer enum keys +func (*EnumMapService) GetPriorityWeights() map[Priority]float64 { + return map[Priority]float64{ + PriorityLow: 1.0, + PriorityMedium: 2.5, + PriorityHigh: 5.0, + } +} + +// GetColorCodes returns a map with uint8 enum keys +func (*EnumMapService) GetColorCodes() map[Color]string { + return map[Color]string{ + Red: "#FF0000", + Green: "#00FF00", + Blue: "#0000FF", + } +} + +// GetNestedEnumMap returns a map with enum keys and complex values +func (*EnumMapService) GetNestedEnumMap() map[Status]map[Priority]string { + return map[Status]map[Priority]string{ + StatusPending: { + PriorityLow: "Waiting in queue", + PriorityMedium: "Scheduled soon", + PriorityHigh: "Next in line", + }, + StatusRunning: { + PriorityLow: "Processing slowly", + PriorityMedium: "Processing normally", + PriorityHigh: "Processing urgently", + }, + } +} + +// GetOptionalEnumMap returns a map with enum keys to optional values +func (*EnumMapService) GetOptionalEnumMap() map[Status]*string { + running := "Currently running" + return map[Status]*string{ + StatusPending: nil, + StatusRunning: &running, + StatusCompleted: nil, + StatusFailed: nil, + } +} + +// Person represents a person with status +type Person struct { + Name string + Status Status +} + +// GetPersonsByStatus returns a map with enum keys to struct values +func (*EnumMapService) GetPersonsByStatus() map[Status][]Person { + return map[Status][]Person{ + StatusPending: { + {Name: "Alice", Status: StatusPending}, + {Name: "Bob", Status: StatusPending}, + }, + StatusRunning: { + {Name: "Charlie", Status: StatusRunning}, + }, + StatusCompleted: { + {Name: "Dave", Status: StatusCompleted}, + {Name: "Eve", Status: StatusCompleted}, + }, + } +} + +func main() { + app := application.New(application.Options{ + Services: []application.Service{ + application.NewService(&EnumMapService{}), + }, + }) + + app.Window.New() + + err := app.Run() + + if err != nil { + log.Fatal(err) + } +} diff --git a/v3/internal/generator/testcases/map_keys/main.go b/v3/internal/generator/testcases/map_keys/main.go index b5d331bad..31c353bfc 100644 --- a/v3/internal/generator/testcases/map_keys/main.go +++ b/v3/internal/generator/testcases/map_keys/main.go @@ -245,13 +245,13 @@ type Maps[R comparable, S BasicConstraint, T BadTildeConstraint, U GoodTildeCons GAZ map[PointerCstrAlias[R, Z]]int // Accept, hide GAZPtr map[PointerCstrPtrAlias[R, Z]]int // Soft reject - GACi map[ComparableCstrAlias[int]]int // Accept, hide + GACi map[ComparableCstrAlias[int]]int // Accept 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 + GABi map[BasicCstrAlias[int]]int // Accept GABs map[BasicCstrAlias[string]]int // Accept GABiPtr map[BasicCstrPtrAlias[int]]int // Reject GABT map[BadTildeCstrAlias[struct{}]]int // Reject @@ -268,7 +268,7 @@ type Maps[R comparable, S BasicConstraint, T BadTildeConstraint, U GoodTildeCons 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 + GAMi map[MixedCstrAlias[uint]]int // Accept GAMS map[MixedCstrAlias[StringType]]int // Accept GAMV map[MixedCstrAlias[ValueTextMarshaler]]int // Accept GAMSPtr map[MixedCstrPtrAlias[StringType]]int // Reject diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/eventdata.d.ts b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/eventdata.d.ts index d265e3adc..3e53d9287 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/eventdata.d.ts +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/eventdata.d.ts @@ -19,7 +19,7 @@ declare module "/wails/runtime.js" { namespace Events { interface CustomEvents { "events_only:class": events_only$0.SomeClass; - "events_only:map": { [_: string]: number[] }; + "events_only:map": { [_ in string]?: number[] }; "events_only:nodata": void; "events_only:other": more$0.StringPtr[]; "events_only:string": string; 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 d0d9c339d..31bb61c83 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 @@ -183,7 +183,7 @@ export class EmptyStruct { /** * A generic alias that wraps a map. * @template T,U - * @typedef {{ [_: string]: U }} GenericMapAlias + * @typedef {{ [_ in string]?: U }} GenericMapAlias */ /** 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 35fac10f2..b15a5517a 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 @@ -22,7 +22,7 @@ import * as $models from "./models.js"; * @param {string} str * @param {$models.Person[]} people * @param {{"AnotherCount": number, "AnotherOne": $models.Person | null}} $2 - * @param {{ [_: `${number}`]: boolean | null }} assoc + * @param {{ [_ in `${number}`]?: boolean | null }} assoc * @param {(number | null)[]} $4 * @param {string[]} other * @returns {$CancellablePromise<[$models.Person, any, number[]]>} 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 47d41f572..824b9e78c 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 @@ -11,7 +11,7 @@ import { Create as $Create } from "/wails/runtime.js"; */ /** - * @typedef {{ [_: string]: Alias }[]} Cyclic + * @typedef {{ [_ in string]?: Alias }[]} Cyclic */ /** diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/enummapservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/enummapservice.js new file mode 100644 index 000000000..9afec2c30 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/enummapservice.js @@ -0,0 +1,87 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * EnumMapService tests various enum map key scenarios + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @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 $models from "./models.js"; + +/** + * GetColorCodes returns a map with uint8 enum keys + * @returns {$CancellablePromise<{ [_ in $models.Color]?: string }>} + */ +export function GetColorCodes() { + return $Call.ByID(2794981443).then(/** @type {($result: any) => any} */(($result) => { + return $$createType0($result); + })); +} + +/** + * GetNestedEnumMap returns a map with enum keys and complex values + * @returns {$CancellablePromise<{ [_ in $models.Status]?: { [_ in $models.Priority]?: string } }>} + */ +export function GetNestedEnumMap() { + return $Call.ByID(3603489560).then(/** @type {($result: any) => any} */(($result) => { + return $$createType2($result); + })); +} + +/** + * GetOptionalEnumMap returns a map with enum keys to optional values + * @returns {$CancellablePromise<{ [_ in $models.Status]?: string | null }>} + */ +export function GetOptionalEnumMap() { + return $Call.ByID(1871606385).then(/** @type {($result: any) => any} */(($result) => { + return $$createType3($result); + })); +} + +/** + * GetPersonsByStatus returns a map with enum keys to struct values + * @returns {$CancellablePromise<{ [_ in $models.Status]?: $models.Person[] }>} + */ +export function GetPersonsByStatus() { + return $Call.ByID(2189502217).then(/** @type {($result: any) => any} */(($result) => { + return $$createType6($result); + })); +} + +/** + * GetPriorityWeights returns a map with integer enum keys + * @returns {$CancellablePromise<{ [_ in $models.Priority]?: number }>} + */ +export function GetPriorityWeights() { + return $Call.ByID(1542216941).then(/** @type {($result: any) => any} */(($result) => { + return $$createType7($result); + })); +} + +/** + * GetStatusMessages returns a map with string enum keys + * @returns {$CancellablePromise<{ [_ in $models.Status]?: string }>} + */ +export function GetStatusMessages() { + return $Call.ByID(1788640810).then(/** @type {($result: any) => any} */(($result) => { + return $$createType8($result); + })); +} + +// 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, $$createType1); +const $$createType3 = $Create.Map($Create.Any, $Create.Any); +const $$createType4 = $models.Person.createFrom; +const $$createType5 = $Create.Array($$createType4); +const $$createType6 = $Create.Map($Create.Any, $$createType5); +const $$createType7 = $Create.Map($Create.Any, $Create.Any); +const $$createType8 = $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/enum_map_keys/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/index.js new file mode 100644 index 000000000..21da516bd --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/index.js @@ -0,0 +1,15 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as EnumMapService from "./enummapservice.js"; +export { + EnumMapService +}; + +export { + Color, + Person, + Priority, + Status +} 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_map_keys/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/models.js new file mode 100644 index 000000000..f2c58312c --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/models.js @@ -0,0 +1,94 @@ +// @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"; + +/** + * Color represents color values + * @readonly + * @enum {number} + */ +export const Color = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: 0, + + Red: 1, + Green: 2, + Blue: 3, +}; + +/** + * Person represents a person with status + */ +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 (!("Status" in $$source)) { + /** + * @member + * @type {Status} + */ + this["Status"] = Status.$zero; + } + + 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)); + } +} + +/** + * Priority represents priority levels + * @readonly + * @enum {number} + */ +export const Priority = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: 0, + + PriorityLow: 1, + PriorityMedium: 2, + PriorityHigh: 3, +}; + +/** + * Status represents different status values + * @readonly + * @enum {string} + */ +export const Status = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: "", + + StatusPending: "pending", + StatusRunning: "running", + StatusCompleted: "completed", + StatusFailed: "failed", +}; 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 index 9fd9745c1..3e1e0ecdb 100644 --- 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 @@ -52,6 +52,14 @@ import * as $models from "./models.js"; * @typedef {$models.GoodTildeCstrAlias} GoodTildeCstrAlias */ +/** + * @typedef {$models.IntAlias} IntAlias + */ + +/** + * @typedef {$models.IntType} IntType + */ + /** * @template Y * @typedef {$models.InterfaceCstrAlias} InterfaceCstrAlias 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 index 1dc5bfc38..61bc3d532 100644 --- 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 @@ -45,6 +45,14 @@ import { Create as $Create } from "/wails/runtime.js"; * @typedef {U} GoodTildeCstrAlias */ +/** + * @typedef {number} IntAlias + */ + +/** + * @typedef {number} IntType + */ + /** * @template Y * @typedef {Y} InterfaceCstrAlias @@ -63,7 +71,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["Bool"] = {}; } @@ -71,7 +79,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: `${number}`]: number }} + * @type {{ [_ in `${number}`]?: number }} */ this["Int"] = {}; } @@ -79,7 +87,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: `${number}`]: number }} + * @type {{ [_ in `${number}`]?: number }} */ this["Uint"] = {}; } @@ -87,7 +95,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["Float"] = {}; } @@ -95,7 +103,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["Complex"] = {}; } @@ -103,7 +111,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: `${number}`]: number }} + * @type {{ [_ in `${number}`]?: number }} */ this["Byte"] = {}; } @@ -111,7 +119,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: `${number}`]: number }} + * @type {{ [_ in `${number}`]?: number }} */ this["Rune"] = {}; } @@ -119,7 +127,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["String"] = {}; } @@ -127,7 +135,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["IntPtr"] = {}; } @@ -135,7 +143,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["UintPtr"] = {}; } @@ -143,7 +151,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["FloatPtr"] = {}; } @@ -151,7 +159,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["ComplexPtr"] = {}; } @@ -159,7 +167,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["StringPtr"] = {}; } @@ -167,7 +175,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["NTM"] = {}; } @@ -175,7 +183,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["NTMPtr"] = {}; } @@ -183,7 +191,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: ValueTextMarshaler]: number }} + * @type {{ [_ in ValueTextMarshaler]?: number }} */ this["VTM"] = {}; } @@ -191,7 +199,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: ValueTextMarshaler]: number }} + * @type {{ [_ in ValueTextMarshaler]?: number }} */ this["VTMPtr"] = {}; } @@ -199,7 +207,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["PTM"] = {}; } @@ -207,7 +215,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: PointerTextMarshaler]: number }} + * @type {{ [_ in PointerTextMarshaler]?: number }} */ this["PTMPtr"] = {}; } @@ -215,7 +223,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["JTM"] = {}; } @@ -223,7 +231,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["JTMPtr"] = {}; } @@ -231,7 +239,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["A"] = {}; } @@ -239,7 +247,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["APtr"] = {}; } @@ -247,7 +255,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TM"] = {}; } @@ -255,7 +263,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TMPtr"] = {}; } @@ -263,7 +271,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["CI"] = {}; } @@ -271,7 +279,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["CIPtr"] = {}; } @@ -279,7 +287,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["EI"] = {}; } @@ -287,7 +295,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["EIPtr"] = {}; } @@ -295,7 +303,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: EmbeddedValue]: number }} + * @type {{ [_ in EmbeddedValue]?: number }} */ this["EV"] = {}; } @@ -303,7 +311,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: EmbeddedValue]: number }} + * @type {{ [_ in EmbeddedValue]?: number }} */ this["EVPtr"] = {}; } @@ -311,7 +319,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: EmbeddedValuePtr]: number }} + * @type {{ [_ in EmbeddedValuePtr]?: number }} */ this["EVP"] = {}; } @@ -319,7 +327,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: EmbeddedValuePtr]: number }} + * @type {{ [_ in EmbeddedValuePtr]?: number }} */ this["EVPPtr"] = {}; } @@ -327,7 +335,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["EP"] = {}; } @@ -335,7 +343,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: EmbeddedPointer]: number }} + * @type {{ [_ in EmbeddedPointer]?: number }} */ this["EPPtr"] = {}; } @@ -343,7 +351,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: EmbeddedPointerPtr]: number }} + * @type {{ [_ in EmbeddedPointerPtr]?: number }} */ this["EPP"] = {}; } @@ -351,7 +359,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: EmbeddedPointerPtr]: number }} + * @type {{ [_ in EmbeddedPointerPtr]?: number }} */ this["EPPPtr"] = {}; } @@ -359,7 +367,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: EmbeddedCustomInterface]: number }} + * @type {{ [_ in EmbeddedCustomInterface]?: number }} */ this["ECI"] = {}; } @@ -367,7 +375,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: EmbeddedCustomInterface]: number }} + * @type {{ [_ in EmbeddedCustomInterface]?: number }} */ this["ECIPtr"] = {}; } @@ -375,7 +383,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: EmbeddedOriginalInterface]: number }} + * @type {{ [_ in EmbeddedOriginalInterface]?: number }} */ this["EOI"] = {}; } @@ -383,7 +391,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: EmbeddedOriginalInterface]: number }} + * @type {{ [_ in EmbeddedOriginalInterface]?: number }} */ this["EOIPtr"] = {}; } @@ -391,7 +399,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["WT"] = {}; } @@ -399,7 +407,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["WA"] = {}; } @@ -407,7 +415,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: StringType]: number }} + * @type {{ [_ in StringType]?: number }} */ this["ST"] = {}; } @@ -415,7 +423,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: StringAlias]: number }} + * @type {{ [_ in StringAlias]?: number }} */ this["SA"] = {}; } @@ -423,7 +431,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: `${number}`]: number }} + * @type {{ [_ in IntType]?: number }} */ this["IntT"] = {}; } @@ -431,7 +439,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: `${number}`]: number }} + * @type {{ [_ in IntAlias]?: number }} */ this["IntA"] = {}; } @@ -439,7 +447,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["VT"] = {}; } @@ -447,7 +455,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["VTPtr"] = {}; } @@ -455,7 +463,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["VPT"] = {}; } @@ -463,7 +471,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["VPTPtr"] = {}; } @@ -471,7 +479,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: ValueAlias]: number }} + * @type {{ [_ in ValueAlias]?: number }} */ this["VA"] = {}; } @@ -479,7 +487,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: ValueAlias]: number }} + * @type {{ [_ in ValueAlias]?: number }} */ this["VAPtr"] = {}; } @@ -487,7 +495,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["VPA"] = {}; } @@ -495,7 +503,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["VPAPtr"] = {}; } @@ -503,7 +511,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["PT"] = {}; } @@ -511,7 +519,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["PTPtr"] = {}; } @@ -519,7 +527,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["PPT"] = {}; } @@ -527,7 +535,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["PPTPtr"] = {}; } @@ -535,7 +543,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["PA"] = {}; } @@ -543,7 +551,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: PointerAlias]: number }} + * @type {{ [_ in PointerAlias]?: number }} */ this["PAPtr"] = {}; } @@ -551,7 +559,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["PPA"] = {}; } @@ -559,7 +567,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["PPAPtr"] = {}; } @@ -567,7 +575,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["IT"] = {}; } @@ -575,7 +583,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["ITPtr"] = {}; } @@ -583,7 +591,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["IPT"] = {}; } @@ -591,7 +599,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["IPTPtr"] = {}; } @@ -599,7 +607,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["IA"] = {}; } @@ -607,7 +615,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["IAPtr"] = {}; } @@ -615,7 +623,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["IPA"] = {}; } @@ -623,7 +631,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["IPAPtr"] = {}; } @@ -631,7 +639,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPR"] = {}; } @@ -639,7 +647,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPRPtr"] = {}; } @@ -647,7 +655,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPS"] = {}; } @@ -655,7 +663,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPSPtr"] = {}; } @@ -663,7 +671,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPT"] = {}; } @@ -671,7 +679,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPTPtr"] = {}; } @@ -679,7 +687,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPU"] = {}; } @@ -687,7 +695,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPUPtr"] = {}; } @@ -695,7 +703,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPV"] = {}; } @@ -703,7 +711,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPVPtr"] = {}; } @@ -711,7 +719,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPW"] = {}; } @@ -719,7 +727,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPWPtr"] = {}; } @@ -727,7 +735,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPX"] = {}; } @@ -735,7 +743,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPXPtr"] = {}; } @@ -743,7 +751,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPY"] = {}; } @@ -751,7 +759,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPYPtr"] = {}; } @@ -759,7 +767,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPZ"] = {}; } @@ -767,7 +775,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPZPtr"] = {}; } @@ -775,7 +783,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAR"] = {}; } @@ -783,7 +791,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GARPtr"] = {}; } @@ -791,7 +799,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAS"] = {}; } @@ -799,7 +807,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GASPtr"] = {}; } @@ -807,7 +815,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAT"] = {}; } @@ -815,7 +823,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GATPtr"] = {}; } @@ -823,7 +831,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAU"] = {}; } @@ -831,7 +839,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAUPtr"] = {}; } @@ -839,7 +847,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAV"] = {}; } @@ -847,7 +855,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAVPtr"] = {}; } @@ -855,7 +863,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAW"] = {}; } @@ -863,7 +871,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAWPtr"] = {}; } @@ -871,7 +879,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAX"] = {}; } @@ -879,7 +887,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAXPtr"] = {}; } @@ -887,7 +895,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAY"] = {}; } @@ -895,7 +903,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAYPtr"] = {}; } @@ -903,7 +911,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAZ"] = {}; } @@ -911,15 +919,15 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAZPtr"] = {}; } if (!("GACi" in $$source)) { /** - * Accept, hide + * Accept * @member - * @type {{ [_: `${number}`]: number }} + * @type {{ [_ in ComparableCstrAlias]?: number }} */ this["GACi"] = {}; } @@ -927,7 +935,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: ComparableCstrAlias]: number }} + * @type {{ [_ in ComparableCstrAlias]?: number }} */ this["GACV"] = {}; } @@ -935,7 +943,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GACP"] = {}; } @@ -943,7 +951,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GACiPtr"] = {}; } @@ -951,7 +959,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GACVPtr"] = {}; } @@ -959,15 +967,15 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GACPPtr"] = {}; } if (!("GABi" in $$source)) { /** - * Accept, hide + * Accept * @member - * @type {{ [_: `${number}`]: number }} + * @type {{ [_ in BasicCstrAlias]?: number }} */ this["GABi"] = {}; } @@ -975,7 +983,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: BasicCstrAlias]: number }} + * @type {{ [_ in BasicCstrAlias]?: number }} */ this["GABs"] = {}; } @@ -983,7 +991,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GABiPtr"] = {}; } @@ -991,7 +999,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GABT"] = {}; } @@ -999,7 +1007,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GABTPtr"] = {}; } @@ -1007,7 +1015,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: GoodTildeCstrAlias]: number }} + * @type {{ [_ in GoodTildeCstrAlias]?: number }} */ this["GAGT"] = {}; } @@ -1015,7 +1023,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAGTPtr"] = {}; } @@ -1023,7 +1031,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: NonBasicCstrAlias]: number }} + * @type {{ [_ in NonBasicCstrAlias]?: number }} */ this["GANBV"] = {}; } @@ -1031,7 +1039,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GANBP"] = {}; } @@ -1039,7 +1047,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GANBVPtr"] = {}; } @@ -1047,7 +1055,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GANBPPtr"] = {}; } @@ -1055,7 +1063,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: PointableCstrAlias]: number }} + * @type {{ [_ in PointableCstrAlias]?: number }} */ this["GAPlV1"] = {}; } @@ -1063,7 +1071,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: PointableCstrAlias]: number }} + * @type {{ [_ in PointableCstrAlias]?: number }} */ this["GAPlV2"] = {}; } @@ -1071,7 +1079,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAPlP1"] = {}; } @@ -1079,7 +1087,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: PointableCstrAlias]: number }} + * @type {{ [_ in PointableCstrAlias]?: number }} */ this["GAPlP2"] = {}; } @@ -1087,7 +1095,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAPlVPtr"] = {}; } @@ -1095,15 +1103,15 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAPlPPtr"] = {}; } if (!("GAMi" in $$source)) { /** - * Accept, hide + * Accept * @member - * @type {{ [_: `${number}`]: number }} + * @type {{ [_ in MixedCstrAlias]?: number }} */ this["GAMi"] = {}; } @@ -1111,7 +1119,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: MixedCstrAlias]: number }} + * @type {{ [_ in MixedCstrAlias]?: number }} */ this["GAMS"] = {}; } @@ -1119,7 +1127,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: MixedCstrAlias]: number }} + * @type {{ [_ in MixedCstrAlias]?: number }} */ this["GAMV"] = {}; } @@ -1127,7 +1135,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAMSPtr"] = {}; } @@ -1135,7 +1143,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAMVPtr"] = {}; } @@ -1143,7 +1151,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAII"] = {}; } @@ -1151,7 +1159,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: InterfaceCstrAlias]: number }} + * @type {{ [_ in InterfaceCstrAlias]?: number }} */ this["GAIV"] = {}; } @@ -1159,7 +1167,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAIP"] = {}; } @@ -1167,7 +1175,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAIIPtr"] = {}; } @@ -1175,7 +1183,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAIVPtr"] = {}; } @@ -1183,7 +1191,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAIPPtr"] = {}; } @@ -1191,7 +1199,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAPrV"] = {}; } @@ -1199,7 +1207,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAPrP"] = {}; } @@ -1207,7 +1215,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAPrVPtr"] = {}; } @@ -1215,7 +1223,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAPrPPtr"] = {}; } 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 b42e223fa..c443e292a 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 @@ -33,7 +33,7 @@ export class HowDifferent { /** * But they may have many differences. * @member - * @type {{ [_: string]: How }[]} + * @type {{ [_ in string]?: How }[]} */ this["Differences"] = []; } 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 855602e98..d4501598a 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 @@ -145,7 +145,7 @@ export function IntPointerInputNamedOutputs($in) { } /** - * @param {{ [_: `${number}`]: number }} $in + * @param {{ [_ in `${number}`]?: number }} $in * @returns {$CancellablePromise} */ export function MapIntInt($in) { @@ -153,7 +153,7 @@ export function MapIntInt($in) { } /** - * @param {{ [_: `${number}`]: number | null }} $in + * @param {{ [_ in `${number}`]?: number | null }} $in * @returns {$CancellablePromise} */ export function MapIntIntPointer($in) { @@ -161,7 +161,7 @@ export function MapIntIntPointer($in) { } /** - * @param {{ [_: `${number}`]: number[] }} $in + * @param {{ [_ in `${number}`]?: number[] }} $in * @returns {$CancellablePromise} */ export function MapIntSliceInt($in) { @@ -169,8 +169,8 @@ export function MapIntSliceInt($in) { } /** - * @param {{ [_: `${number}`]: number[] }} $in - * @returns {$CancellablePromise<{ [_: `${number}`]: number[] }>} + * @param {{ [_ in `${number}`]?: number[] }} $in + * @returns {$CancellablePromise<{ [_ in `${number}`]?: number[] }>} */ export function MapIntSliceIntInMapIntSliceIntOut($in) { return $Call.ByID(881980169, $in).then(/** @type {($result: any) => any} */(($result) => { @@ -210,7 +210,7 @@ export function PointerFloat64InFloat64Out($in) { } /** - * @param {{ [_: `${number}`]: number } | null} $in + * @param {{ [_ in `${number}`]?: number } | null} $in * @returns {$CancellablePromise} */ export function PointerMapIntInt($in) { 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 855602e98..d4501598a 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 @@ -145,7 +145,7 @@ export function IntPointerInputNamedOutputs($in) { } /** - * @param {{ [_: `${number}`]: number }} $in + * @param {{ [_ in `${number}`]?: number }} $in * @returns {$CancellablePromise} */ export function MapIntInt($in) { @@ -153,7 +153,7 @@ export function MapIntInt($in) { } /** - * @param {{ [_: `${number}`]: number | null }} $in + * @param {{ [_ in `${number}`]?: number | null }} $in * @returns {$CancellablePromise} */ export function MapIntIntPointer($in) { @@ -161,7 +161,7 @@ export function MapIntIntPointer($in) { } /** - * @param {{ [_: `${number}`]: number[] }} $in + * @param {{ [_ in `${number}`]?: number[] }} $in * @returns {$CancellablePromise} */ export function MapIntSliceInt($in) { @@ -169,8 +169,8 @@ export function MapIntSliceInt($in) { } /** - * @param {{ [_: `${number}`]: number[] }} $in - * @returns {$CancellablePromise<{ [_: `${number}`]: number[] }>} + * @param {{ [_ in `${number}`]?: number[] }} $in + * @returns {$CancellablePromise<{ [_ in `${number}`]?: number[] }>} */ export function MapIntSliceIntInMapIntSliceIntOut($in) { return $Call.ByID(881980169, $in).then(/** @type {($result: any) => any} */(($result) => { @@ -210,7 +210,7 @@ export function PointerFloat64InFloat64Out($in) { } /** - * @param {{ [_: `${number}`]: number } | null} $in + * @param {{ [_ in `${number}`]?: number } | null} $in * @returns {$CancellablePromise} */ export function PointerMapIntInt($in) { diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/eventdata.d.ts b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/eventdata.d.ts index d265e3adc..3e53d9287 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/eventdata.d.ts +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/eventdata.d.ts @@ -19,7 +19,7 @@ declare module "/wails/runtime.js" { namespace Events { interface CustomEvents { "events_only:class": events_only$0.SomeClass; - "events_only:map": { [_: string]: number[] }; + "events_only:map": { [_ in string]?: number[] }; "events_only:nodata": void; "events_only:other": more$0.StringPtr[]; "events_only:string": string; 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 d0d9c339d..31bb61c83 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 @@ -183,7 +183,7 @@ export class EmptyStruct { /** * A generic alias that wraps a map. * @template T,U - * @typedef {{ [_: string]: U }} GenericMapAlias + * @typedef {{ [_ in string]?: U }} GenericMapAlias */ /** 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 fae9496c1..979c8281d 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 @@ -22,7 +22,7 @@ import * as $models from "./models.js"; * @param {string} str * @param {$models.Person[]} people * @param {{"AnotherCount": number, "AnotherOne": $models.Person | null}} $2 - * @param {{ [_: `${number}`]: boolean | null }} assoc + * @param {{ [_ in `${number}`]?: boolean | null }} assoc * @param {(number | null)[]} $4 * @param {string[]} other * @returns {$CancellablePromise<[$models.Person, any, number[]]>} 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 47d41f572..824b9e78c 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 @@ -11,7 +11,7 @@ import { Create as $Create } from "/wails/runtime.js"; */ /** - * @typedef {{ [_: string]: Alias }[]} Cyclic + * @typedef {{ [_ in string]?: Alias }[]} Cyclic */ /** diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/enummapservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/enummapservice.js new file mode 100644 index 000000000..91f1b3eec --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/enummapservice.js @@ -0,0 +1,87 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * EnumMapService tests various enum map key scenarios + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @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 $models from "./models.js"; + +/** + * GetColorCodes returns a map with uint8 enum keys + * @returns {$CancellablePromise<{ [_ in $models.Color]?: string }>} + */ +export function GetColorCodes() { + return $Call.ByName("main.EnumMapService.GetColorCodes").then(/** @type {($result: any) => any} */(($result) => { + return $$createType0($result); + })); +} + +/** + * GetNestedEnumMap returns a map with enum keys and complex values + * @returns {$CancellablePromise<{ [_ in $models.Status]?: { [_ in $models.Priority]?: string } }>} + */ +export function GetNestedEnumMap() { + return $Call.ByName("main.EnumMapService.GetNestedEnumMap").then(/** @type {($result: any) => any} */(($result) => { + return $$createType2($result); + })); +} + +/** + * GetOptionalEnumMap returns a map with enum keys to optional values + * @returns {$CancellablePromise<{ [_ in $models.Status]?: string | null }>} + */ +export function GetOptionalEnumMap() { + return $Call.ByName("main.EnumMapService.GetOptionalEnumMap").then(/** @type {($result: any) => any} */(($result) => { + return $$createType3($result); + })); +} + +/** + * GetPersonsByStatus returns a map with enum keys to struct values + * @returns {$CancellablePromise<{ [_ in $models.Status]?: $models.Person[] }>} + */ +export function GetPersonsByStatus() { + return $Call.ByName("main.EnumMapService.GetPersonsByStatus").then(/** @type {($result: any) => any} */(($result) => { + return $$createType6($result); + })); +} + +/** + * GetPriorityWeights returns a map with integer enum keys + * @returns {$CancellablePromise<{ [_ in $models.Priority]?: number }>} + */ +export function GetPriorityWeights() { + return $Call.ByName("main.EnumMapService.GetPriorityWeights").then(/** @type {($result: any) => any} */(($result) => { + return $$createType7($result); + })); +} + +/** + * GetStatusMessages returns a map with string enum keys + * @returns {$CancellablePromise<{ [_ in $models.Status]?: string }>} + */ +export function GetStatusMessages() { + return $Call.ByName("main.EnumMapService.GetStatusMessages").then(/** @type {($result: any) => any} */(($result) => { + return $$createType8($result); + })); +} + +// 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, $$createType1); +const $$createType3 = $Create.Map($Create.Any, $Create.Any); +const $$createType4 = $models.Person.createFrom; +const $$createType5 = $Create.Array($$createType4); +const $$createType6 = $Create.Map($Create.Any, $$createType5); +const $$createType7 = $Create.Map($Create.Any, $Create.Any); +const $$createType8 = $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/enum_map_keys/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/index.js new file mode 100644 index 000000000..21da516bd --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/index.js @@ -0,0 +1,15 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as EnumMapService from "./enummapservice.js"; +export { + EnumMapService +}; + +export { + Color, + Person, + Priority, + Status +} 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_map_keys/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/models.js new file mode 100644 index 000000000..f2c58312c --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/models.js @@ -0,0 +1,94 @@ +// @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"; + +/** + * Color represents color values + * @readonly + * @enum {number} + */ +export const Color = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: 0, + + Red: 1, + Green: 2, + Blue: 3, +}; + +/** + * Person represents a person with status + */ +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 (!("Status" in $$source)) { + /** + * @member + * @type {Status} + */ + this["Status"] = Status.$zero; + } + + 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)); + } +} + +/** + * Priority represents priority levels + * @readonly + * @enum {number} + */ +export const Priority = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: 0, + + PriorityLow: 1, + PriorityMedium: 2, + PriorityHigh: 3, +}; + +/** + * Status represents different status values + * @readonly + * @enum {string} + */ +export const Status = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: "", + + StatusPending: "pending", + StatusRunning: "running", + StatusCompleted: "completed", + StatusFailed: "failed", +}; 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 index 9fd9745c1..3e1e0ecdb 100644 --- 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 @@ -52,6 +52,14 @@ import * as $models from "./models.js"; * @typedef {$models.GoodTildeCstrAlias} GoodTildeCstrAlias */ +/** + * @typedef {$models.IntAlias} IntAlias + */ + +/** + * @typedef {$models.IntType} IntType + */ + /** * @template Y * @typedef {$models.InterfaceCstrAlias} InterfaceCstrAlias 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 index 1dc5bfc38..61bc3d532 100644 --- 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 @@ -45,6 +45,14 @@ import { Create as $Create } from "/wails/runtime.js"; * @typedef {U} GoodTildeCstrAlias */ +/** + * @typedef {number} IntAlias + */ + +/** + * @typedef {number} IntType + */ + /** * @template Y * @typedef {Y} InterfaceCstrAlias @@ -63,7 +71,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["Bool"] = {}; } @@ -71,7 +79,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: `${number}`]: number }} + * @type {{ [_ in `${number}`]?: number }} */ this["Int"] = {}; } @@ -79,7 +87,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: `${number}`]: number }} + * @type {{ [_ in `${number}`]?: number }} */ this["Uint"] = {}; } @@ -87,7 +95,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["Float"] = {}; } @@ -95,7 +103,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["Complex"] = {}; } @@ -103,7 +111,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: `${number}`]: number }} + * @type {{ [_ in `${number}`]?: number }} */ this["Byte"] = {}; } @@ -111,7 +119,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: `${number}`]: number }} + * @type {{ [_ in `${number}`]?: number }} */ this["Rune"] = {}; } @@ -119,7 +127,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["String"] = {}; } @@ -127,7 +135,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["IntPtr"] = {}; } @@ -135,7 +143,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["UintPtr"] = {}; } @@ -143,7 +151,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["FloatPtr"] = {}; } @@ -151,7 +159,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["ComplexPtr"] = {}; } @@ -159,7 +167,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["StringPtr"] = {}; } @@ -167,7 +175,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["NTM"] = {}; } @@ -175,7 +183,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["NTMPtr"] = {}; } @@ -183,7 +191,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: ValueTextMarshaler]: number }} + * @type {{ [_ in ValueTextMarshaler]?: number }} */ this["VTM"] = {}; } @@ -191,7 +199,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: ValueTextMarshaler]: number }} + * @type {{ [_ in ValueTextMarshaler]?: number }} */ this["VTMPtr"] = {}; } @@ -199,7 +207,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["PTM"] = {}; } @@ -207,7 +215,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: PointerTextMarshaler]: number }} + * @type {{ [_ in PointerTextMarshaler]?: number }} */ this["PTMPtr"] = {}; } @@ -215,7 +223,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["JTM"] = {}; } @@ -223,7 +231,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["JTMPtr"] = {}; } @@ -231,7 +239,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["A"] = {}; } @@ -239,7 +247,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["APtr"] = {}; } @@ -247,7 +255,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TM"] = {}; } @@ -255,7 +263,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TMPtr"] = {}; } @@ -263,7 +271,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["CI"] = {}; } @@ -271,7 +279,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["CIPtr"] = {}; } @@ -279,7 +287,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["EI"] = {}; } @@ -287,7 +295,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["EIPtr"] = {}; } @@ -295,7 +303,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: EmbeddedValue]: number }} + * @type {{ [_ in EmbeddedValue]?: number }} */ this["EV"] = {}; } @@ -303,7 +311,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: EmbeddedValue]: number }} + * @type {{ [_ in EmbeddedValue]?: number }} */ this["EVPtr"] = {}; } @@ -311,7 +319,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: EmbeddedValuePtr]: number }} + * @type {{ [_ in EmbeddedValuePtr]?: number }} */ this["EVP"] = {}; } @@ -319,7 +327,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: EmbeddedValuePtr]: number }} + * @type {{ [_ in EmbeddedValuePtr]?: number }} */ this["EVPPtr"] = {}; } @@ -327,7 +335,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["EP"] = {}; } @@ -335,7 +343,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: EmbeddedPointer]: number }} + * @type {{ [_ in EmbeddedPointer]?: number }} */ this["EPPtr"] = {}; } @@ -343,7 +351,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: EmbeddedPointerPtr]: number }} + * @type {{ [_ in EmbeddedPointerPtr]?: number }} */ this["EPP"] = {}; } @@ -351,7 +359,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: EmbeddedPointerPtr]: number }} + * @type {{ [_ in EmbeddedPointerPtr]?: number }} */ this["EPPPtr"] = {}; } @@ -359,7 +367,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: EmbeddedCustomInterface]: number }} + * @type {{ [_ in EmbeddedCustomInterface]?: number }} */ this["ECI"] = {}; } @@ -367,7 +375,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: EmbeddedCustomInterface]: number }} + * @type {{ [_ in EmbeddedCustomInterface]?: number }} */ this["ECIPtr"] = {}; } @@ -375,7 +383,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: EmbeddedOriginalInterface]: number }} + * @type {{ [_ in EmbeddedOriginalInterface]?: number }} */ this["EOI"] = {}; } @@ -383,7 +391,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: EmbeddedOriginalInterface]: number }} + * @type {{ [_ in EmbeddedOriginalInterface]?: number }} */ this["EOIPtr"] = {}; } @@ -391,7 +399,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["WT"] = {}; } @@ -399,7 +407,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["WA"] = {}; } @@ -407,7 +415,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: StringType]: number }} + * @type {{ [_ in StringType]?: number }} */ this["ST"] = {}; } @@ -415,7 +423,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: StringAlias]: number }} + * @type {{ [_ in StringAlias]?: number }} */ this["SA"] = {}; } @@ -423,7 +431,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: `${number}`]: number }} + * @type {{ [_ in IntType]?: number }} */ this["IntT"] = {}; } @@ -431,7 +439,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: `${number}`]: number }} + * @type {{ [_ in IntAlias]?: number }} */ this["IntA"] = {}; } @@ -439,7 +447,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["VT"] = {}; } @@ -447,7 +455,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["VTPtr"] = {}; } @@ -455,7 +463,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["VPT"] = {}; } @@ -463,7 +471,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["VPTPtr"] = {}; } @@ -471,7 +479,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: ValueAlias]: number }} + * @type {{ [_ in ValueAlias]?: number }} */ this["VA"] = {}; } @@ -479,7 +487,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: ValueAlias]: number }} + * @type {{ [_ in ValueAlias]?: number }} */ this["VAPtr"] = {}; } @@ -487,7 +495,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["VPA"] = {}; } @@ -495,7 +503,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["VPAPtr"] = {}; } @@ -503,7 +511,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["PT"] = {}; } @@ -511,7 +519,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["PTPtr"] = {}; } @@ -519,7 +527,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["PPT"] = {}; } @@ -527,7 +535,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["PPTPtr"] = {}; } @@ -535,7 +543,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["PA"] = {}; } @@ -543,7 +551,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: PointerAlias]: number }} + * @type {{ [_ in PointerAlias]?: number }} */ this["PAPtr"] = {}; } @@ -551,7 +559,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["PPA"] = {}; } @@ -559,7 +567,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["PPAPtr"] = {}; } @@ -567,7 +575,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["IT"] = {}; } @@ -575,7 +583,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["ITPtr"] = {}; } @@ -583,7 +591,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["IPT"] = {}; } @@ -591,7 +599,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["IPTPtr"] = {}; } @@ -599,7 +607,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["IA"] = {}; } @@ -607,7 +615,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["IAPtr"] = {}; } @@ -615,7 +623,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["IPA"] = {}; } @@ -623,7 +631,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["IPAPtr"] = {}; } @@ -631,7 +639,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPR"] = {}; } @@ -639,7 +647,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPRPtr"] = {}; } @@ -647,7 +655,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPS"] = {}; } @@ -655,7 +663,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPSPtr"] = {}; } @@ -663,7 +671,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPT"] = {}; } @@ -671,7 +679,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPTPtr"] = {}; } @@ -679,7 +687,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPU"] = {}; } @@ -687,7 +695,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPUPtr"] = {}; } @@ -695,7 +703,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPV"] = {}; } @@ -703,7 +711,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPVPtr"] = {}; } @@ -711,7 +719,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPW"] = {}; } @@ -719,7 +727,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPWPtr"] = {}; } @@ -727,7 +735,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPX"] = {}; } @@ -735,7 +743,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPXPtr"] = {}; } @@ -743,7 +751,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPY"] = {}; } @@ -751,7 +759,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPYPtr"] = {}; } @@ -759,7 +767,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPZ"] = {}; } @@ -767,7 +775,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["TPZPtr"] = {}; } @@ -775,7 +783,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAR"] = {}; } @@ -783,7 +791,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GARPtr"] = {}; } @@ -791,7 +799,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAS"] = {}; } @@ -799,7 +807,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GASPtr"] = {}; } @@ -807,7 +815,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAT"] = {}; } @@ -815,7 +823,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GATPtr"] = {}; } @@ -823,7 +831,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAU"] = {}; } @@ -831,7 +839,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAUPtr"] = {}; } @@ -839,7 +847,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAV"] = {}; } @@ -847,7 +855,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAVPtr"] = {}; } @@ -855,7 +863,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAW"] = {}; } @@ -863,7 +871,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAWPtr"] = {}; } @@ -871,7 +879,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAX"] = {}; } @@ -879,7 +887,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAXPtr"] = {}; } @@ -887,7 +895,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAY"] = {}; } @@ -895,7 +903,7 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAYPtr"] = {}; } @@ -903,7 +911,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAZ"] = {}; } @@ -911,15 +919,15 @@ export class Maps { /** * Soft reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAZPtr"] = {}; } if (!("GACi" in $$source)) { /** - * Accept, hide + * Accept * @member - * @type {{ [_: `${number}`]: number }} + * @type {{ [_ in ComparableCstrAlias]?: number }} */ this["GACi"] = {}; } @@ -927,7 +935,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: ComparableCstrAlias]: number }} + * @type {{ [_ in ComparableCstrAlias]?: number }} */ this["GACV"] = {}; } @@ -935,7 +943,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GACP"] = {}; } @@ -943,7 +951,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GACiPtr"] = {}; } @@ -951,7 +959,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GACVPtr"] = {}; } @@ -959,15 +967,15 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GACPPtr"] = {}; } if (!("GABi" in $$source)) { /** - * Accept, hide + * Accept * @member - * @type {{ [_: `${number}`]: number }} + * @type {{ [_ in BasicCstrAlias]?: number }} */ this["GABi"] = {}; } @@ -975,7 +983,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: BasicCstrAlias]: number }} + * @type {{ [_ in BasicCstrAlias]?: number }} */ this["GABs"] = {}; } @@ -983,7 +991,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GABiPtr"] = {}; } @@ -991,7 +999,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GABT"] = {}; } @@ -999,7 +1007,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GABTPtr"] = {}; } @@ -1007,7 +1015,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: GoodTildeCstrAlias]: number }} + * @type {{ [_ in GoodTildeCstrAlias]?: number }} */ this["GAGT"] = {}; } @@ -1015,7 +1023,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAGTPtr"] = {}; } @@ -1023,7 +1031,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: NonBasicCstrAlias]: number }} + * @type {{ [_ in NonBasicCstrAlias]?: number }} */ this["GANBV"] = {}; } @@ -1031,7 +1039,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GANBP"] = {}; } @@ -1039,7 +1047,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GANBVPtr"] = {}; } @@ -1047,7 +1055,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GANBPPtr"] = {}; } @@ -1055,7 +1063,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: PointableCstrAlias]: number }} + * @type {{ [_ in PointableCstrAlias]?: number }} */ this["GAPlV1"] = {}; } @@ -1063,7 +1071,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: PointableCstrAlias]: number }} + * @type {{ [_ in PointableCstrAlias]?: number }} */ this["GAPlV2"] = {}; } @@ -1071,7 +1079,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAPlP1"] = {}; } @@ -1079,7 +1087,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: PointableCstrAlias]: number }} + * @type {{ [_ in PointableCstrAlias]?: number }} */ this["GAPlP2"] = {}; } @@ -1087,7 +1095,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAPlVPtr"] = {}; } @@ -1095,15 +1103,15 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAPlPPtr"] = {}; } if (!("GAMi" in $$source)) { /** - * Accept, hide + * Accept * @member - * @type {{ [_: `${number}`]: number }} + * @type {{ [_ in MixedCstrAlias]?: number }} */ this["GAMi"] = {}; } @@ -1111,7 +1119,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: MixedCstrAlias]: number }} + * @type {{ [_ in MixedCstrAlias]?: number }} */ this["GAMS"] = {}; } @@ -1119,7 +1127,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: MixedCstrAlias]: number }} + * @type {{ [_ in MixedCstrAlias]?: number }} */ this["GAMV"] = {}; } @@ -1127,7 +1135,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAMSPtr"] = {}; } @@ -1135,7 +1143,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAMVPtr"] = {}; } @@ -1143,7 +1151,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAII"] = {}; } @@ -1151,7 +1159,7 @@ export class Maps { /** * Accept * @member - * @type {{ [_: InterfaceCstrAlias]: number }} + * @type {{ [_ in InterfaceCstrAlias]?: number }} */ this["GAIV"] = {}; } @@ -1159,7 +1167,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAIP"] = {}; } @@ -1167,7 +1175,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAIIPtr"] = {}; } @@ -1175,7 +1183,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAIVPtr"] = {}; } @@ -1183,7 +1191,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAIPPtr"] = {}; } @@ -1191,7 +1199,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAPrV"] = {}; } @@ -1199,7 +1207,7 @@ export class Maps { /** * Accept, hide * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAPrP"] = {}; } @@ -1207,7 +1215,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAPrVPtr"] = {}; } @@ -1215,7 +1223,7 @@ export class Maps { /** * Reject * @member - * @type {{ [_: string]: number }} + * @type {{ [_ in string]?: number }} */ this["GAPrPPtr"] = {}; } 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 b42e223fa..c443e292a 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 @@ -33,7 +33,7 @@ export class HowDifferent { /** * But they may have many differences. * @member - * @type {{ [_: string]: How }[]} + * @type {{ [_ in string]?: How }[]} */ this["Differences"] = []; } 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 d811d97ce..f6d1adf22 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 @@ -145,7 +145,7 @@ export function IntPointerInputNamedOutputs($in) { } /** - * @param {{ [_: `${number}`]: number }} $in + * @param {{ [_ in `${number}`]?: number }} $in * @returns {$CancellablePromise} */ export function MapIntInt($in) { @@ -153,7 +153,7 @@ export function MapIntInt($in) { } /** - * @param {{ [_: `${number}`]: number | null }} $in + * @param {{ [_ in `${number}`]?: number | null }} $in * @returns {$CancellablePromise} */ export function MapIntIntPointer($in) { @@ -161,7 +161,7 @@ export function MapIntIntPointer($in) { } /** - * @param {{ [_: `${number}`]: number[] }} $in + * @param {{ [_ in `${number}`]?: number[] }} $in * @returns {$CancellablePromise} */ export function MapIntSliceInt($in) { @@ -169,8 +169,8 @@ export function MapIntSliceInt($in) { } /** - * @param {{ [_: `${number}`]: number[] }} $in - * @returns {$CancellablePromise<{ [_: `${number}`]: number[] }>} + * @param {{ [_ in `${number}`]?: number[] }} $in + * @returns {$CancellablePromise<{ [_ in `${number}`]?: number[] }>} */ export function MapIntSliceIntInMapIntSliceIntOut($in) { return $Call.ByName("main.GreetService.MapIntSliceIntInMapIntSliceIntOut", $in).then(/** @type {($result: any) => any} */(($result) => { @@ -210,7 +210,7 @@ export function PointerFloat64InFloat64Out($in) { } /** - * @param {{ [_: `${number}`]: number } | null} $in + * @param {{ [_ in `${number}`]?: number } | null} $in * @returns {$CancellablePromise} */ export function PointerMapIntInt($in) { 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 d811d97ce..f6d1adf22 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 @@ -145,7 +145,7 @@ export function IntPointerInputNamedOutputs($in) { } /** - * @param {{ [_: `${number}`]: number }} $in + * @param {{ [_ in `${number}`]?: number }} $in * @returns {$CancellablePromise} */ export function MapIntInt($in) { @@ -153,7 +153,7 @@ export function MapIntInt($in) { } /** - * @param {{ [_: `${number}`]: number | null }} $in + * @param {{ [_ in `${number}`]?: number | null }} $in * @returns {$CancellablePromise} */ export function MapIntIntPointer($in) { @@ -161,7 +161,7 @@ export function MapIntIntPointer($in) { } /** - * @param {{ [_: `${number}`]: number[] }} $in + * @param {{ [_ in `${number}`]?: number[] }} $in * @returns {$CancellablePromise} */ export function MapIntSliceInt($in) { @@ -169,8 +169,8 @@ export function MapIntSliceInt($in) { } /** - * @param {{ [_: `${number}`]: number[] }} $in - * @returns {$CancellablePromise<{ [_: `${number}`]: number[] }>} + * @param {{ [_ in `${number}`]?: number[] }} $in + * @returns {$CancellablePromise<{ [_ in `${number}`]?: number[] }>} */ export function MapIntSliceIntInMapIntSliceIntOut($in) { return $Call.ByName("main.GreetService.MapIntSliceIntInMapIntSliceIntOut", $in).then(/** @type {($result: any) => any} */(($result) => { @@ -210,7 +210,7 @@ export function PointerFloat64InFloat64Out($in) { } /** - * @param {{ [_: `${number}`]: number } | null} $in + * @param {{ [_ in `${number}`]?: number } | null} $in * @returns {$CancellablePromise} */ export function PointerMapIntInt($in) { diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/eventdata.d.ts b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/eventdata.d.ts index 4384cef06..be1730836 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/eventdata.d.ts +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/eventdata.d.ts @@ -19,7 +19,7 @@ declare module "/wails/runtime.js" { namespace Events { interface CustomEvents { "events_only:class": events_only$0.SomeClass; - "events_only:map": { [_: string]: number[] | null } | null; + "events_only:map": { [_ in string]?: number[] | null } | null; "events_only:nodata": void; "events_only:other": more$0.StringPtr[] | null; "events_only:string": string; 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 cd517d65b..52116e035 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 @@ -61,7 +61,7 @@ import * as subpkg$0 from "./subpkg/models.js"; /** * A generic alias that wraps a map. * @template T,U - * @typedef {{ [_: string]: U } | null} GenericMapAlias + * @typedef {{ [_ in string]?: U } | null} GenericMapAlias */ /** 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 0285f6ca4..2a5131f82 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 @@ -22,7 +22,7 @@ import * as $models from "./models.js"; * @param {string} str * @param {$models.Person[] | null} people * @param {{"AnotherCount": number, "AnotherOne": $models.Person | null}} $2 - * @param {{ [_: `${number}`]: boolean | null } | null} assoc + * @param {{ [_ in `${number}`]?: boolean | null } | null} assoc * @param {(number | null)[] | null} $4 * @param {string[]} other * @returns {$CancellablePromise<[$models.Person, any, number[] | null]>} 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 2413995ac..45780d15c 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 @@ -7,7 +7,7 @@ */ /** - * @typedef {({ [_: string]: Alias } | null)[] | null} Cyclic + * @typedef {({ [_ in string]?: Alias } | null)[] | null} Cyclic */ /** diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/enummapservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/enummapservice.js new file mode 100644 index 000000000..4ff0746a3 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/enummapservice.js @@ -0,0 +1,64 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * EnumMapService tests various enum map key scenarios + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import { Call as $Call, CancellablePromise as $CancellablePromise } from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +/** + * GetColorCodes returns a map with uint8 enum keys + * @returns {$CancellablePromise<{ [_ in $models.Color]?: string } | null>} + */ +export function GetColorCodes() { + return $Call.ByID(2794981443); +} + +/** + * GetNestedEnumMap returns a map with enum keys and complex values + * @returns {$CancellablePromise<{ [_ in $models.Status]?: { [_ in $models.Priority]?: string } | null } | null>} + */ +export function GetNestedEnumMap() { + return $Call.ByID(3603489560); +} + +/** + * GetOptionalEnumMap returns a map with enum keys to optional values + * @returns {$CancellablePromise<{ [_ in $models.Status]?: string | null } | null>} + */ +export function GetOptionalEnumMap() { + return $Call.ByID(1871606385); +} + +/** + * GetPersonsByStatus returns a map with enum keys to struct values + * @returns {$CancellablePromise<{ [_ in $models.Status]?: $models.Person[] | null } | null>} + */ +export function GetPersonsByStatus() { + return $Call.ByID(2189502217); +} + +/** + * GetPriorityWeights returns a map with integer enum keys + * @returns {$CancellablePromise<{ [_ in $models.Priority]?: number } | null>} + */ +export function GetPriorityWeights() { + return $Call.ByID(1542216941); +} + +/** + * GetStatusMessages returns a map with string enum keys + * @returns {$CancellablePromise<{ [_ in $models.Status]?: string } | null>} + */ +export function GetStatusMessages() { + return $Call.ByID(1788640810); +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/index.js new file mode 100644 index 000000000..4d0ba0f49 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/index.js @@ -0,0 +1,21 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as EnumMapService from "./enummapservice.js"; +export { + EnumMapService +}; + +export { + Color, + Priority, + Status +} from "./models.js"; + +import * as $models from "./models.js"; + +/** + * Person represents a person with status + * @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_map_keys/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/models.js new file mode 100644 index 000000000..9658a39a8 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/models.js @@ -0,0 +1,63 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * Color represents color values + * @readonly + * @enum {number} + */ +export const Color = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: 0, + + Red: 1, + Green: 2, + Blue: 3, +}; + +/** + * Person represents a person with status + * @typedef {Object} Person + * @property {string} Name + * @property {Status} Status + */ + +/** + * Priority represents priority levels + * @readonly + * @enum {number} + */ +export const Priority = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: 0, + + PriorityLow: 1, + PriorityMedium: 2, + PriorityHigh: 3, +}; + +/** + * Status represents different status values + * @readonly + * @enum {string} + */ +export const Status = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: "", + + StatusPending: "pending", + StatusRunning: "running", + StatusCompleted: "completed", + StatusFailed: "failed", +}; + +// 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/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 index 80fdcd24c..a92a0cb10 100644 --- 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 @@ -48,6 +48,14 @@ import * as $models from "./models.js"; * @typedef {$models.GoodTildeCstrAlias} GoodTildeCstrAlias */ +/** + * @typedef {$models.IntAlias} IntAlias + */ + +/** + * @typedef {$models.IntType} IntType + */ + /** * @template Y * @typedef {$models.InterfaceCstrAlias} InterfaceCstrAlias 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 index cee61a5e4..371763800 100644 --- 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 @@ -41,6 +41,14 @@ * @typedef {U} GoodTildeCstrAlias */ +/** + * @typedef {number} IntAlias + */ + +/** + * @typedef {number} IntType + */ + /** * @template Y * @typedef {Y} InterfaceCstrAlias @@ -49,151 +57,151 @@ /** * @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 - * @property {{ [_: string]: number } | null} GAR - Soft reject - * @property {{ [_: string]: number } | null} GARPtr - Soft reject - * @property {{ [_: string]: number } | null} GAS - Accept, hide - * @property {{ [_: string]: number } | null} GASPtr - Soft reject - * @property {{ [_: string]: number } | null} GAT - Soft reject - * @property {{ [_: string]: number } | null} GATPtr - Soft reject - * @property {{ [_: string]: number } | null} GAU - Accept, hide - * @property {{ [_: string]: number } | null} GAUPtr - Soft reject - * @property {{ [_: string]: number } | null} GAV - Accept, hide - * @property {{ [_: string]: number } | null} GAVPtr - Soft reject - * @property {{ [_: string]: number } | null} GAW - Soft reject - * @property {{ [_: string]: number } | null} GAWPtr - Accept, hide - * @property {{ [_: string]: number } | null} GAX - Accept, hide - * @property {{ [_: string]: number } | null} GAXPtr - Soft reject - * @property {{ [_: string]: number } | null} GAY - Accept, hide - * @property {{ [_: string]: number } | null} GAYPtr - Soft reject - * @property {{ [_: string]: number } | null} GAZ - Accept, hide - * @property {{ [_: string]: number } | null} GAZPtr - Soft reject - * @property {{ [_: `${number}`]: number } | null} GACi - Accept, hide - * @property {{ [_: ComparableCstrAlias]: number } | null} GACV - Accept - * @property {{ [_: string]: number } | null} GACP - Reject - * @property {{ [_: string]: number } | null} GACiPtr - Reject - * @property {{ [_: string]: number } | null} GACVPtr - Accept, hide - * @property {{ [_: string]: number } | null} GACPPtr - Accept, hide - * @property {{ [_: `${number}`]: number } | null} GABi - Accept, hide - * @property {{ [_: BasicCstrAlias]: number } | null} GABs - Accept - * @property {{ [_: string]: number } | null} GABiPtr - Reject - * @property {{ [_: string]: number } | null} GABT - Reject - * @property {{ [_: string]: number } | null} GABTPtr - Reject - * @property {{ [_: GoodTildeCstrAlias]: number } | null} GAGT - Accept - * @property {{ [_: string]: number } | null} GAGTPtr - Accept, hide - * @property {{ [_: NonBasicCstrAlias]: number } | null} GANBV - Accept - * @property {{ [_: string]: number } | null} GANBP - Accept, hide - * @property {{ [_: string]: number } | null} GANBVPtr - Accept, hide - * @property {{ [_: string]: number } | null} GANBPPtr - Reject - * @property {{ [_: PointableCstrAlias]: number } | null} GAPlV1 - Accept - * @property {{ [_: PointableCstrAlias]: number } | null} GAPlV2 - Accept - * @property {{ [_: string]: number } | null} GAPlP1 - Reject - * @property {{ [_: PointableCstrAlias]: number } | null} GAPlP2 - Accept - * @property {{ [_: string]: number } | null} GAPlVPtr - Accept, hide - * @property {{ [_: string]: number } | null} GAPlPPtr - Accept, hide - * @property {{ [_: `${number}`]: number } | null} GAMi - Accept, hide - * @property {{ [_: MixedCstrAlias]: number } | null} GAMS - Accept - * @property {{ [_: MixedCstrAlias]: number } | null} GAMV - Accept - * @property {{ [_: string]: number } | null} GAMSPtr - Reject - * @property {{ [_: string]: number } | null} GAMVPtr - Accept, hide - * @property {{ [_: string]: number } | null} GAII - Accept, hide - * @property {{ [_: InterfaceCstrAlias]: number } | null} GAIV - Accept - * @property {{ [_: string]: number } | null} GAIP - Accept, hide - * @property {{ [_: string]: number } | null} GAIIPtr - Reject - * @property {{ [_: string]: number } | null} GAIVPtr - Accept, hide - * @property {{ [_: string]: number } | null} GAIPPtr - Reject - * @property {{ [_: string]: number } | null} GAPrV - Accept, hide - * @property {{ [_: string]: number } | null} GAPrP - Accept, hide - * @property {{ [_: string]: number } | null} GAPrVPtr - Reject - * @property {{ [_: string]: number } | null} GAPrPPtr - Reject + * @property {{ [_ in string]?: number } | null} Bool - Reject + * @property {{ [_ in `${number}`]?: number } | null} Int - Accept + * @property {{ [_ in `${number}`]?: number } | null} Uint - Accept + * @property {{ [_ in string]?: number } | null} Float - Reject + * @property {{ [_ in string]?: number } | null} Complex - Reject + * @property {{ [_ in `${number}`]?: number } | null} Byte - Accept + * @property {{ [_ in `${number}`]?: number } | null} Rune - Accept + * @property {{ [_ in string]?: number } | null} String - Accept + * @property {{ [_ in string]?: number } | null} IntPtr - Reject + * @property {{ [_ in string]?: number } | null} UintPtr - Reject + * @property {{ [_ in string]?: number } | null} FloatPtr - Reject + * @property {{ [_ in string]?: number } | null} ComplexPtr - Reject + * @property {{ [_ in string]?: number } | null} StringPtr - Reject + * @property {{ [_ in string]?: number } | null} NTM - Reject + * @property {{ [_ in string]?: number } | null} NTMPtr - Reject + * @property {{ [_ in ValueTextMarshaler]?: number } | null} VTM - Accept + * @property {{ [_ in ValueTextMarshaler]?: number } | null} VTMPtr - Accept + * @property {{ [_ in string]?: number } | null} PTM - Reject + * @property {{ [_ in PointerTextMarshaler]?: number } | null} PTMPtr - Accept + * @property {{ [_ in string]?: number } | null} JTM - Accept, hide + * @property {{ [_ in string]?: number } | null} JTMPtr - Accept, hide + * @property {{ [_ in string]?: number } | null} A - Reject + * @property {{ [_ in string]?: number } | null} APtr - Reject + * @property {{ [_ in string]?: number } | null} TM - Accept, hide + * @property {{ [_ in string]?: number } | null} TMPtr - Reject + * @property {{ [_ in string]?: number } | null} CI - Accept, hide + * @property {{ [_ in string]?: number } | null} CIPtr - Reject + * @property {{ [_ in string]?: number } | null} EI - Accept, hide + * @property {{ [_ in string]?: number } | null} EIPtr - Reject + * @property {{ [_ in EmbeddedValue]?: number } | null} EV - Accept + * @property {{ [_ in EmbeddedValue]?: number } | null} EVPtr - Accept + * @property {{ [_ in EmbeddedValuePtr]?: number } | null} EVP - Accept + * @property {{ [_ in EmbeddedValuePtr]?: number } | null} EVPPtr - Accept + * @property {{ [_ in string]?: number } | null} EP - Reject + * @property {{ [_ in EmbeddedPointer]?: number } | null} EPPtr - Accept + * @property {{ [_ in EmbeddedPointerPtr]?: number } | null} EPP - Accept + * @property {{ [_ in EmbeddedPointerPtr]?: number } | null} EPPPtr - Accept + * @property {{ [_ in EmbeddedCustomInterface]?: number } | null} ECI - Accept + * @property {{ [_ in EmbeddedCustomInterface]?: number } | null} ECIPtr - Accept + * @property {{ [_ in EmbeddedOriginalInterface]?: number } | null} EOI - Accept + * @property {{ [_ in EmbeddedOriginalInterface]?: number } | null} EOIPtr - Accept + * @property {{ [_ in string]?: number } | null} WT - Reject + * @property {{ [_ in string]?: number } | null} WA - Reject + * @property {{ [_ in StringType]?: number } | null} ST - Accept + * @property {{ [_ in StringAlias]?: number } | null} SA - Accept + * @property {{ [_ in IntType]?: number } | null} IntT - Accept + * @property {{ [_ in IntAlias]?: number } | null} IntA - Accept + * @property {{ [_ in string]?: number } | null} VT - Reject + * @property {{ [_ in string]?: number } | null} VTPtr - Reject + * @property {{ [_ in string]?: number } | null} VPT - Reject + * @property {{ [_ in string]?: number } | null} VPTPtr - Reject + * @property {{ [_ in ValueAlias]?: number } | null} VA - Accept + * @property {{ [_ in ValueAlias]?: number } | null} VAPtr - Accept + * @property {{ [_ in string]?: number } | null} VPA - Accept, hide + * @property {{ [_ in string]?: number } | null} VPAPtr - Reject + * @property {{ [_ in string]?: number } | null} PT - Reject + * @property {{ [_ in string]?: number } | null} PTPtr - Reject + * @property {{ [_ in string]?: number } | null} PPT - Reject + * @property {{ [_ in string]?: number } | null} PPTPtr - Reject + * @property {{ [_ in string]?: number } | null} PA - Reject + * @property {{ [_ in PointerAlias]?: number } | null} PAPtr - Accept + * @property {{ [_ in string]?: number } | null} PPA - Accept, hide + * @property {{ [_ in string]?: number } | null} PPAPtr - Reject + * @property {{ [_ in string]?: number } | null} IT - Accept, hide + * @property {{ [_ in string]?: number } | null} ITPtr - Reject + * @property {{ [_ in string]?: number } | null} IPT - Reject + * @property {{ [_ in string]?: number } | null} IPTPtr - Reject + * @property {{ [_ in string]?: number } | null} IA - Accept, hide + * @property {{ [_ in string]?: number } | null} IAPtr - Reject + * @property {{ [_ in string]?: number } | null} IPA - Reject + * @property {{ [_ in string]?: number } | null} IPAPtr - Reject + * @property {{ [_ in string]?: number } | null} TPR - Soft reject + * @property {{ [_ in string]?: number } | null} TPRPtr - Soft reject + * @property {{ [_ in string]?: number } | null} TPS - Accept, hide + * @property {{ [_ in string]?: number } | null} TPSPtr - Soft reject + * @property {{ [_ in string]?: number } | null} TPT - Soft reject + * @property {{ [_ in string]?: number } | null} TPTPtr - Soft reject + * @property {{ [_ in string]?: number } | null} TPU - Accept, hide + * @property {{ [_ in string]?: number } | null} TPUPtr - Soft reject + * @property {{ [_ in string]?: number } | null} TPV - Accept, hide + * @property {{ [_ in string]?: number } | null} TPVPtr - Soft reject + * @property {{ [_ in string]?: number } | null} TPW - Soft reject + * @property {{ [_ in string]?: number } | null} TPWPtr - Accept, hide + * @property {{ [_ in string]?: number } | null} TPX - Accept, hide + * @property {{ [_ in string]?: number } | null} TPXPtr - Soft reject + * @property {{ [_ in string]?: number } | null} TPY - Accept, hide + * @property {{ [_ in string]?: number } | null} TPYPtr - Soft reject + * @property {{ [_ in string]?: number } | null} TPZ - Accept, hide + * @property {{ [_ in string]?: number } | null} TPZPtr - Soft reject + * @property {{ [_ in string]?: number } | null} GAR - Soft reject + * @property {{ [_ in string]?: number } | null} GARPtr - Soft reject + * @property {{ [_ in string]?: number } | null} GAS - Accept, hide + * @property {{ [_ in string]?: number } | null} GASPtr - Soft reject + * @property {{ [_ in string]?: number } | null} GAT - Soft reject + * @property {{ [_ in string]?: number } | null} GATPtr - Soft reject + * @property {{ [_ in string]?: number } | null} GAU - Accept, hide + * @property {{ [_ in string]?: number } | null} GAUPtr - Soft reject + * @property {{ [_ in string]?: number } | null} GAV - Accept, hide + * @property {{ [_ in string]?: number } | null} GAVPtr - Soft reject + * @property {{ [_ in string]?: number } | null} GAW - Soft reject + * @property {{ [_ in string]?: number } | null} GAWPtr - Accept, hide + * @property {{ [_ in string]?: number } | null} GAX - Accept, hide + * @property {{ [_ in string]?: number } | null} GAXPtr - Soft reject + * @property {{ [_ in string]?: number } | null} GAY - Accept, hide + * @property {{ [_ in string]?: number } | null} GAYPtr - Soft reject + * @property {{ [_ in string]?: number } | null} GAZ - Accept, hide + * @property {{ [_ in string]?: number } | null} GAZPtr - Soft reject + * @property {{ [_ in ComparableCstrAlias]?: number } | null} GACi - Accept + * @property {{ [_ in ComparableCstrAlias]?: number } | null} GACV - Accept + * @property {{ [_ in string]?: number } | null} GACP - Reject + * @property {{ [_ in string]?: number } | null} GACiPtr - Reject + * @property {{ [_ in string]?: number } | null} GACVPtr - Accept, hide + * @property {{ [_ in string]?: number } | null} GACPPtr - Accept, hide + * @property {{ [_ in BasicCstrAlias]?: number } | null} GABi - Accept + * @property {{ [_ in BasicCstrAlias]?: number } | null} GABs - Accept + * @property {{ [_ in string]?: number } | null} GABiPtr - Reject + * @property {{ [_ in string]?: number } | null} GABT - Reject + * @property {{ [_ in string]?: number } | null} GABTPtr - Reject + * @property {{ [_ in GoodTildeCstrAlias]?: number } | null} GAGT - Accept + * @property {{ [_ in string]?: number } | null} GAGTPtr - Accept, hide + * @property {{ [_ in NonBasicCstrAlias]?: number } | null} GANBV - Accept + * @property {{ [_ in string]?: number } | null} GANBP - Accept, hide + * @property {{ [_ in string]?: number } | null} GANBVPtr - Accept, hide + * @property {{ [_ in string]?: number } | null} GANBPPtr - Reject + * @property {{ [_ in PointableCstrAlias]?: number } | null} GAPlV1 - Accept + * @property {{ [_ in PointableCstrAlias]?: number } | null} GAPlV2 - Accept + * @property {{ [_ in string]?: number } | null} GAPlP1 - Reject + * @property {{ [_ in PointableCstrAlias]?: number } | null} GAPlP2 - Accept + * @property {{ [_ in string]?: number } | null} GAPlVPtr - Accept, hide + * @property {{ [_ in string]?: number } | null} GAPlPPtr - Accept, hide + * @property {{ [_ in MixedCstrAlias]?: number } | null} GAMi - Accept + * @property {{ [_ in MixedCstrAlias]?: number } | null} GAMS - Accept + * @property {{ [_ in MixedCstrAlias]?: number } | null} GAMV - Accept + * @property {{ [_ in string]?: number } | null} GAMSPtr - Reject + * @property {{ [_ in string]?: number } | null} GAMVPtr - Accept, hide + * @property {{ [_ in string]?: number } | null} GAII - Accept, hide + * @property {{ [_ in InterfaceCstrAlias]?: number } | null} GAIV - Accept + * @property {{ [_ in string]?: number } | null} GAIP - Accept, hide + * @property {{ [_ in string]?: number } | null} GAIIPtr - Reject + * @property {{ [_ in string]?: number } | null} GAIVPtr - Accept, hide + * @property {{ [_ in string]?: number } | null} GAIPPtr - Reject + * @property {{ [_ in string]?: number } | null} GAPrV - Accept, hide + * @property {{ [_ in string]?: number } | null} GAPrP - Accept, hide + * @property {{ [_ in string]?: number } | null} GAPrVPtr - Reject + * @property {{ [_ in string]?: number } | null} GAPrPPtr - Reject */ /** 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 36f231303..93a37dc23 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 @@ -12,7 +12,7 @@ import * as other$0 from "./other/models.js"; * @template How * @typedef {Object} HowDifferent * @property {string} Name - They have a name as well. - * @property {({ [_: string]: How } | null)[] | null} Differences - But they may have many differences. + * @property {({ [_ in string]?: How } | null)[] | null} Differences - But they may have many differences. */ /** 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 ddd5e8916..e55c2595c 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 @@ -145,7 +145,7 @@ export function IntPointerInputNamedOutputs($in) { } /** - * @param {{ [_: `${number}`]: number } | null} $in + * @param {{ [_ in `${number}`]?: number } | null} $in * @returns {$CancellablePromise} */ export function MapIntInt($in) { @@ -153,7 +153,7 @@ export function MapIntInt($in) { } /** - * @param {{ [_: `${number}`]: number | null } | null} $in + * @param {{ [_ in `${number}`]?: number | null } | null} $in * @returns {$CancellablePromise} */ export function MapIntIntPointer($in) { @@ -161,7 +161,7 @@ export function MapIntIntPointer($in) { } /** - * @param {{ [_: `${number}`]: number[] | null } | null} $in + * @param {{ [_ in `${number}`]?: number[] | null } | null} $in * @returns {$CancellablePromise} */ export function MapIntSliceInt($in) { @@ -169,8 +169,8 @@ export function MapIntSliceInt($in) { } /** - * @param {{ [_: `${number}`]: number[] | null } | null} $in - * @returns {$CancellablePromise<{ [_: `${number}`]: number[] | null } | null>} + * @param {{ [_ in `${number}`]?: number[] | null } | null} $in + * @returns {$CancellablePromise<{ [_ in `${number}`]?: number[] | null } | null>} */ export function MapIntSliceIntInMapIntSliceIntOut($in) { return $Call.ByID(881980169, $in); @@ -208,7 +208,7 @@ export function PointerFloat64InFloat64Out($in) { } /** - * @param {{ [_: `${number}`]: number } | null} $in + * @param {{ [_ in `${number}`]?: number } | null} $in * @returns {$CancellablePromise} */ export function PointerMapIntInt($in) { 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 ddd5e8916..e55c2595c 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 @@ -145,7 +145,7 @@ export function IntPointerInputNamedOutputs($in) { } /** - * @param {{ [_: `${number}`]: number } | null} $in + * @param {{ [_ in `${number}`]?: number } | null} $in * @returns {$CancellablePromise} */ export function MapIntInt($in) { @@ -153,7 +153,7 @@ export function MapIntInt($in) { } /** - * @param {{ [_: `${number}`]: number | null } | null} $in + * @param {{ [_ in `${number}`]?: number | null } | null} $in * @returns {$CancellablePromise} */ export function MapIntIntPointer($in) { @@ -161,7 +161,7 @@ export function MapIntIntPointer($in) { } /** - * @param {{ [_: `${number}`]: number[] | null } | null} $in + * @param {{ [_ in `${number}`]?: number[] | null } | null} $in * @returns {$CancellablePromise} */ export function MapIntSliceInt($in) { @@ -169,8 +169,8 @@ export function MapIntSliceInt($in) { } /** - * @param {{ [_: `${number}`]: number[] | null } | null} $in - * @returns {$CancellablePromise<{ [_: `${number}`]: number[] | null } | null>} + * @param {{ [_ in `${number}`]?: number[] | null } | null} $in + * @returns {$CancellablePromise<{ [_ in `${number}`]?: number[] | null } | null>} */ export function MapIntSliceIntInMapIntSliceIntOut($in) { return $Call.ByID(881980169, $in); @@ -208,7 +208,7 @@ export function PointerFloat64InFloat64Out($in) { } /** - * @param {{ [_: `${number}`]: number } | null} $in + * @param {{ [_ in `${number}`]?: number } | null} $in * @returns {$CancellablePromise} */ export function PointerMapIntInt($in) { diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/eventdata.d.ts b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/eventdata.d.ts index 4384cef06..be1730836 100644 --- a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/eventdata.d.ts +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/eventdata.d.ts @@ -19,7 +19,7 @@ declare module "/wails/runtime.js" { namespace Events { interface CustomEvents { "events_only:class": events_only$0.SomeClass; - "events_only:map": { [_: string]: number[] | null } | null; + "events_only:map": { [_ in string]?: number[] | null } | null; "events_only:nodata": void; "events_only:other": more$0.StringPtr[] | null; "events_only:string": string; 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 cd517d65b..52116e035 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 @@ -61,7 +61,7 @@ import * as subpkg$0 from "./subpkg/models.js"; /** * A generic alias that wraps a map. * @template T,U - * @typedef {{ [_: string]: U } | null} GenericMapAlias + * @typedef {{ [_ in string]?: U } | null} GenericMapAlias */ /** 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 03ef1f90f..567dc8884 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 @@ -22,7 +22,7 @@ import * as $models from "./models.js"; * @param {string} str * @param {$models.Person[] | null} people * @param {{"AnotherCount": number, "AnotherOne": $models.Person | null}} $2 - * @param {{ [_: `${number}`]: boolean | null } | null} assoc + * @param {{ [_ in `${number}`]?: boolean | null } | null} assoc * @param {(number | null)[] | null} $4 * @param {string[]} other * @returns {$CancellablePromise<[$models.Person, any, number[] | null]>} 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 2413995ac..45780d15c 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 @@ -7,7 +7,7 @@ */ /** - * @typedef {({ [_: string]: Alias } | null)[] | null} Cyclic + * @typedef {({ [_ in string]?: Alias } | null)[] | null} Cyclic */ /** diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/enummapservice.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/enummapservice.js new file mode 100644 index 000000000..a2f4e9651 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/enummapservice.js @@ -0,0 +1,64 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * EnumMapService tests various enum map key scenarios + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import { Call as $Call, CancellablePromise as $CancellablePromise } from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +/** + * GetColorCodes returns a map with uint8 enum keys + * @returns {$CancellablePromise<{ [_ in $models.Color]?: string } | null>} + */ +export function GetColorCodes() { + return $Call.ByName("main.EnumMapService.GetColorCodes"); +} + +/** + * GetNestedEnumMap returns a map with enum keys and complex values + * @returns {$CancellablePromise<{ [_ in $models.Status]?: { [_ in $models.Priority]?: string } | null } | null>} + */ +export function GetNestedEnumMap() { + return $Call.ByName("main.EnumMapService.GetNestedEnumMap"); +} + +/** + * GetOptionalEnumMap returns a map with enum keys to optional values + * @returns {$CancellablePromise<{ [_ in $models.Status]?: string | null } | null>} + */ +export function GetOptionalEnumMap() { + return $Call.ByName("main.EnumMapService.GetOptionalEnumMap"); +} + +/** + * GetPersonsByStatus returns a map with enum keys to struct values + * @returns {$CancellablePromise<{ [_ in $models.Status]?: $models.Person[] | null } | null>} + */ +export function GetPersonsByStatus() { + return $Call.ByName("main.EnumMapService.GetPersonsByStatus"); +} + +/** + * GetPriorityWeights returns a map with integer enum keys + * @returns {$CancellablePromise<{ [_ in $models.Priority]?: number } | null>} + */ +export function GetPriorityWeights() { + return $Call.ByName("main.EnumMapService.GetPriorityWeights"); +} + +/** + * GetStatusMessages returns a map with string enum keys + * @returns {$CancellablePromise<{ [_ in $models.Status]?: string } | null>} + */ +export function GetStatusMessages() { + return $Call.ByName("main.EnumMapService.GetStatusMessages"); +} diff --git a/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/index.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/index.js new file mode 100644 index 000000000..4d0ba0f49 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/index.js @@ -0,0 +1,21 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as EnumMapService from "./enummapservice.js"; +export { + EnumMapService +}; + +export { + Color, + Priority, + Status +} from "./models.js"; + +import * as $models from "./models.js"; + +/** + * Person represents a person with status + * @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_map_keys/models.js b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/models.js new file mode 100644 index 000000000..9658a39a8 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=JS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/models.js @@ -0,0 +1,63 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * Color represents color values + * @readonly + * @enum {number} + */ +export const Color = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: 0, + + Red: 1, + Green: 2, + Blue: 3, +}; + +/** + * Person represents a person with status + * @typedef {Object} Person + * @property {string} Name + * @property {Status} Status + */ + +/** + * Priority represents priority levels + * @readonly + * @enum {number} + */ +export const Priority = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: 0, + + PriorityLow: 1, + PriorityMedium: 2, + PriorityHigh: 3, +}; + +/** + * Status represents different status values + * @readonly + * @enum {string} + */ +export const Status = { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero: "", + + StatusPending: "pending", + StatusRunning: "running", + StatusCompleted: "completed", + StatusFailed: "failed", +}; + +// 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/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 index 80fdcd24c..a92a0cb10 100644 --- 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 @@ -48,6 +48,14 @@ import * as $models from "./models.js"; * @typedef {$models.GoodTildeCstrAlias} GoodTildeCstrAlias */ +/** + * @typedef {$models.IntAlias} IntAlias + */ + +/** + * @typedef {$models.IntType} IntType + */ + /** * @template Y * @typedef {$models.InterfaceCstrAlias} InterfaceCstrAlias 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 index cee61a5e4..371763800 100644 --- 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 @@ -41,6 +41,14 @@ * @typedef {U} GoodTildeCstrAlias */ +/** + * @typedef {number} IntAlias + */ + +/** + * @typedef {number} IntType + */ + /** * @template Y * @typedef {Y} InterfaceCstrAlias @@ -49,151 +57,151 @@ /** * @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 - * @property {{ [_: string]: number } | null} GAR - Soft reject - * @property {{ [_: string]: number } | null} GARPtr - Soft reject - * @property {{ [_: string]: number } | null} GAS - Accept, hide - * @property {{ [_: string]: number } | null} GASPtr - Soft reject - * @property {{ [_: string]: number } | null} GAT - Soft reject - * @property {{ [_: string]: number } | null} GATPtr - Soft reject - * @property {{ [_: string]: number } | null} GAU - Accept, hide - * @property {{ [_: string]: number } | null} GAUPtr - Soft reject - * @property {{ [_: string]: number } | null} GAV - Accept, hide - * @property {{ [_: string]: number } | null} GAVPtr - Soft reject - * @property {{ [_: string]: number } | null} GAW - Soft reject - * @property {{ [_: string]: number } | null} GAWPtr - Accept, hide - * @property {{ [_: string]: number } | null} GAX - Accept, hide - * @property {{ [_: string]: number } | null} GAXPtr - Soft reject - * @property {{ [_: string]: number } | null} GAY - Accept, hide - * @property {{ [_: string]: number } | null} GAYPtr - Soft reject - * @property {{ [_: string]: number } | null} GAZ - Accept, hide - * @property {{ [_: string]: number } | null} GAZPtr - Soft reject - * @property {{ [_: `${number}`]: number } | null} GACi - Accept, hide - * @property {{ [_: ComparableCstrAlias]: number } | null} GACV - Accept - * @property {{ [_: string]: number } | null} GACP - Reject - * @property {{ [_: string]: number } | null} GACiPtr - Reject - * @property {{ [_: string]: number } | null} GACVPtr - Accept, hide - * @property {{ [_: string]: number } | null} GACPPtr - Accept, hide - * @property {{ [_: `${number}`]: number } | null} GABi - Accept, hide - * @property {{ [_: BasicCstrAlias]: number } | null} GABs - Accept - * @property {{ [_: string]: number } | null} GABiPtr - Reject - * @property {{ [_: string]: number } | null} GABT - Reject - * @property {{ [_: string]: number } | null} GABTPtr - Reject - * @property {{ [_: GoodTildeCstrAlias]: number } | null} GAGT - Accept - * @property {{ [_: string]: number } | null} GAGTPtr - Accept, hide - * @property {{ [_: NonBasicCstrAlias]: number } | null} GANBV - Accept - * @property {{ [_: string]: number } | null} GANBP - Accept, hide - * @property {{ [_: string]: number } | null} GANBVPtr - Accept, hide - * @property {{ [_: string]: number } | null} GANBPPtr - Reject - * @property {{ [_: PointableCstrAlias]: number } | null} GAPlV1 - Accept - * @property {{ [_: PointableCstrAlias]: number } | null} GAPlV2 - Accept - * @property {{ [_: string]: number } | null} GAPlP1 - Reject - * @property {{ [_: PointableCstrAlias]: number } | null} GAPlP2 - Accept - * @property {{ [_: string]: number } | null} GAPlVPtr - Accept, hide - * @property {{ [_: string]: number } | null} GAPlPPtr - Accept, hide - * @property {{ [_: `${number}`]: number } | null} GAMi - Accept, hide - * @property {{ [_: MixedCstrAlias]: number } | null} GAMS - Accept - * @property {{ [_: MixedCstrAlias]: number } | null} GAMV - Accept - * @property {{ [_: string]: number } | null} GAMSPtr - Reject - * @property {{ [_: string]: number } | null} GAMVPtr - Accept, hide - * @property {{ [_: string]: number } | null} GAII - Accept, hide - * @property {{ [_: InterfaceCstrAlias]: number } | null} GAIV - Accept - * @property {{ [_: string]: number } | null} GAIP - Accept, hide - * @property {{ [_: string]: number } | null} GAIIPtr - Reject - * @property {{ [_: string]: number } | null} GAIVPtr - Accept, hide - * @property {{ [_: string]: number } | null} GAIPPtr - Reject - * @property {{ [_: string]: number } | null} GAPrV - Accept, hide - * @property {{ [_: string]: number } | null} GAPrP - Accept, hide - * @property {{ [_: string]: number } | null} GAPrVPtr - Reject - * @property {{ [_: string]: number } | null} GAPrPPtr - Reject + * @property {{ [_ in string]?: number } | null} Bool - Reject + * @property {{ [_ in `${number}`]?: number } | null} Int - Accept + * @property {{ [_ in `${number}`]?: number } | null} Uint - Accept + * @property {{ [_ in string]?: number } | null} Float - Reject + * @property {{ [_ in string]?: number } | null} Complex - Reject + * @property {{ [_ in `${number}`]?: number } | null} Byte - Accept + * @property {{ [_ in `${number}`]?: number } | null} Rune - Accept + * @property {{ [_ in string]?: number } | null} String - Accept + * @property {{ [_ in string]?: number } | null} IntPtr - Reject + * @property {{ [_ in string]?: number } | null} UintPtr - Reject + * @property {{ [_ in string]?: number } | null} FloatPtr - Reject + * @property {{ [_ in string]?: number } | null} ComplexPtr - Reject + * @property {{ [_ in string]?: number } | null} StringPtr - Reject + * @property {{ [_ in string]?: number } | null} NTM - Reject + * @property {{ [_ in string]?: number } | null} NTMPtr - Reject + * @property {{ [_ in ValueTextMarshaler]?: number } | null} VTM - Accept + * @property {{ [_ in ValueTextMarshaler]?: number } | null} VTMPtr - Accept + * @property {{ [_ in string]?: number } | null} PTM - Reject + * @property {{ [_ in PointerTextMarshaler]?: number } | null} PTMPtr - Accept + * @property {{ [_ in string]?: number } | null} JTM - Accept, hide + * @property {{ [_ in string]?: number } | null} JTMPtr - Accept, hide + * @property {{ [_ in string]?: number } | null} A - Reject + * @property {{ [_ in string]?: number } | null} APtr - Reject + * @property {{ [_ in string]?: number } | null} TM - Accept, hide + * @property {{ [_ in string]?: number } | null} TMPtr - Reject + * @property {{ [_ in string]?: number } | null} CI - Accept, hide + * @property {{ [_ in string]?: number } | null} CIPtr - Reject + * @property {{ [_ in string]?: number } | null} EI - Accept, hide + * @property {{ [_ in string]?: number } | null} EIPtr - Reject + * @property {{ [_ in EmbeddedValue]?: number } | null} EV - Accept + * @property {{ [_ in EmbeddedValue]?: number } | null} EVPtr - Accept + * @property {{ [_ in EmbeddedValuePtr]?: number } | null} EVP - Accept + * @property {{ [_ in EmbeddedValuePtr]?: number } | null} EVPPtr - Accept + * @property {{ [_ in string]?: number } | null} EP - Reject + * @property {{ [_ in EmbeddedPointer]?: number } | null} EPPtr - Accept + * @property {{ [_ in EmbeddedPointerPtr]?: number } | null} EPP - Accept + * @property {{ [_ in EmbeddedPointerPtr]?: number } | null} EPPPtr - Accept + * @property {{ [_ in EmbeddedCustomInterface]?: number } | null} ECI - Accept + * @property {{ [_ in EmbeddedCustomInterface]?: number } | null} ECIPtr - Accept + * @property {{ [_ in EmbeddedOriginalInterface]?: number } | null} EOI - Accept + * @property {{ [_ in EmbeddedOriginalInterface]?: number } | null} EOIPtr - Accept + * @property {{ [_ in string]?: number } | null} WT - Reject + * @property {{ [_ in string]?: number } | null} WA - Reject + * @property {{ [_ in StringType]?: number } | null} ST - Accept + * @property {{ [_ in StringAlias]?: number } | null} SA - Accept + * @property {{ [_ in IntType]?: number } | null} IntT - Accept + * @property {{ [_ in IntAlias]?: number } | null} IntA - Accept + * @property {{ [_ in string]?: number } | null} VT - Reject + * @property {{ [_ in string]?: number } | null} VTPtr - Reject + * @property {{ [_ in string]?: number } | null} VPT - Reject + * @property {{ [_ in string]?: number } | null} VPTPtr - Reject + * @property {{ [_ in ValueAlias]?: number } | null} VA - Accept + * @property {{ [_ in ValueAlias]?: number } | null} VAPtr - Accept + * @property {{ [_ in string]?: number } | null} VPA - Accept, hide + * @property {{ [_ in string]?: number } | null} VPAPtr - Reject + * @property {{ [_ in string]?: number } | null} PT - Reject + * @property {{ [_ in string]?: number } | null} PTPtr - Reject + * @property {{ [_ in string]?: number } | null} PPT - Reject + * @property {{ [_ in string]?: number } | null} PPTPtr - Reject + * @property {{ [_ in string]?: number } | null} PA - Reject + * @property {{ [_ in PointerAlias]?: number } | null} PAPtr - Accept + * @property {{ [_ in string]?: number } | null} PPA - Accept, hide + * @property {{ [_ in string]?: number } | null} PPAPtr - Reject + * @property {{ [_ in string]?: number } | null} IT - Accept, hide + * @property {{ [_ in string]?: number } | null} ITPtr - Reject + * @property {{ [_ in string]?: number } | null} IPT - Reject + * @property {{ [_ in string]?: number } | null} IPTPtr - Reject + * @property {{ [_ in string]?: number } | null} IA - Accept, hide + * @property {{ [_ in string]?: number } | null} IAPtr - Reject + * @property {{ [_ in string]?: number } | null} IPA - Reject + * @property {{ [_ in string]?: number } | null} IPAPtr - Reject + * @property {{ [_ in string]?: number } | null} TPR - Soft reject + * @property {{ [_ in string]?: number } | null} TPRPtr - Soft reject + * @property {{ [_ in string]?: number } | null} TPS - Accept, hide + * @property {{ [_ in string]?: number } | null} TPSPtr - Soft reject + * @property {{ [_ in string]?: number } | null} TPT - Soft reject + * @property {{ [_ in string]?: number } | null} TPTPtr - Soft reject + * @property {{ [_ in string]?: number } | null} TPU - Accept, hide + * @property {{ [_ in string]?: number } | null} TPUPtr - Soft reject + * @property {{ [_ in string]?: number } | null} TPV - Accept, hide + * @property {{ [_ in string]?: number } | null} TPVPtr - Soft reject + * @property {{ [_ in string]?: number } | null} TPW - Soft reject + * @property {{ [_ in string]?: number } | null} TPWPtr - Accept, hide + * @property {{ [_ in string]?: number } | null} TPX - Accept, hide + * @property {{ [_ in string]?: number } | null} TPXPtr - Soft reject + * @property {{ [_ in string]?: number } | null} TPY - Accept, hide + * @property {{ [_ in string]?: number } | null} TPYPtr - Soft reject + * @property {{ [_ in string]?: number } | null} TPZ - Accept, hide + * @property {{ [_ in string]?: number } | null} TPZPtr - Soft reject + * @property {{ [_ in string]?: number } | null} GAR - Soft reject + * @property {{ [_ in string]?: number } | null} GARPtr - Soft reject + * @property {{ [_ in string]?: number } | null} GAS - Accept, hide + * @property {{ [_ in string]?: number } | null} GASPtr - Soft reject + * @property {{ [_ in string]?: number } | null} GAT - Soft reject + * @property {{ [_ in string]?: number } | null} GATPtr - Soft reject + * @property {{ [_ in string]?: number } | null} GAU - Accept, hide + * @property {{ [_ in string]?: number } | null} GAUPtr - Soft reject + * @property {{ [_ in string]?: number } | null} GAV - Accept, hide + * @property {{ [_ in string]?: number } | null} GAVPtr - Soft reject + * @property {{ [_ in string]?: number } | null} GAW - Soft reject + * @property {{ [_ in string]?: number } | null} GAWPtr - Accept, hide + * @property {{ [_ in string]?: number } | null} GAX - Accept, hide + * @property {{ [_ in string]?: number } | null} GAXPtr - Soft reject + * @property {{ [_ in string]?: number } | null} GAY - Accept, hide + * @property {{ [_ in string]?: number } | null} GAYPtr - Soft reject + * @property {{ [_ in string]?: number } | null} GAZ - Accept, hide + * @property {{ [_ in string]?: number } | null} GAZPtr - Soft reject + * @property {{ [_ in ComparableCstrAlias]?: number } | null} GACi - Accept + * @property {{ [_ in ComparableCstrAlias]?: number } | null} GACV - Accept + * @property {{ [_ in string]?: number } | null} GACP - Reject + * @property {{ [_ in string]?: number } | null} GACiPtr - Reject + * @property {{ [_ in string]?: number } | null} GACVPtr - Accept, hide + * @property {{ [_ in string]?: number } | null} GACPPtr - Accept, hide + * @property {{ [_ in BasicCstrAlias]?: number } | null} GABi - Accept + * @property {{ [_ in BasicCstrAlias]?: number } | null} GABs - Accept + * @property {{ [_ in string]?: number } | null} GABiPtr - Reject + * @property {{ [_ in string]?: number } | null} GABT - Reject + * @property {{ [_ in string]?: number } | null} GABTPtr - Reject + * @property {{ [_ in GoodTildeCstrAlias]?: number } | null} GAGT - Accept + * @property {{ [_ in string]?: number } | null} GAGTPtr - Accept, hide + * @property {{ [_ in NonBasicCstrAlias]?: number } | null} GANBV - Accept + * @property {{ [_ in string]?: number } | null} GANBP - Accept, hide + * @property {{ [_ in string]?: number } | null} GANBVPtr - Accept, hide + * @property {{ [_ in string]?: number } | null} GANBPPtr - Reject + * @property {{ [_ in PointableCstrAlias]?: number } | null} GAPlV1 - Accept + * @property {{ [_ in PointableCstrAlias]?: number } | null} GAPlV2 - Accept + * @property {{ [_ in string]?: number } | null} GAPlP1 - Reject + * @property {{ [_ in PointableCstrAlias]?: number } | null} GAPlP2 - Accept + * @property {{ [_ in string]?: number } | null} GAPlVPtr - Accept, hide + * @property {{ [_ in string]?: number } | null} GAPlPPtr - Accept, hide + * @property {{ [_ in MixedCstrAlias]?: number } | null} GAMi - Accept + * @property {{ [_ in MixedCstrAlias]?: number } | null} GAMS - Accept + * @property {{ [_ in MixedCstrAlias]?: number } | null} GAMV - Accept + * @property {{ [_ in string]?: number } | null} GAMSPtr - Reject + * @property {{ [_ in string]?: number } | null} GAMVPtr - Accept, hide + * @property {{ [_ in string]?: number } | null} GAII - Accept, hide + * @property {{ [_ in InterfaceCstrAlias]?: number } | null} GAIV - Accept + * @property {{ [_ in string]?: number } | null} GAIP - Accept, hide + * @property {{ [_ in string]?: number } | null} GAIIPtr - Reject + * @property {{ [_ in string]?: number } | null} GAIVPtr - Accept, hide + * @property {{ [_ in string]?: number } | null} GAIPPtr - Reject + * @property {{ [_ in string]?: number } | null} GAPrV - Accept, hide + * @property {{ [_ in string]?: number } | null} GAPrP - Accept, hide + * @property {{ [_ in string]?: number } | null} GAPrVPtr - Reject + * @property {{ [_ in string]?: number } | null} GAPrPPtr - Reject */ /** 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 36f231303..93a37dc23 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 @@ -12,7 +12,7 @@ import * as other$0 from "./other/models.js"; * @template How * @typedef {Object} HowDifferent * @property {string} Name - They have a name as well. - * @property {({ [_: string]: How } | null)[] | null} Differences - But they may have many differences. + * @property {({ [_ in string]?: How } | null)[] | null} Differences - But they may have many differences. */ /** 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 eca08a018..83a363e8a 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 @@ -145,7 +145,7 @@ export function IntPointerInputNamedOutputs($in) { } /** - * @param {{ [_: `${number}`]: number } | null} $in + * @param {{ [_ in `${number}`]?: number } | null} $in * @returns {$CancellablePromise} */ export function MapIntInt($in) { @@ -153,7 +153,7 @@ export function MapIntInt($in) { } /** - * @param {{ [_: `${number}`]: number | null } | null} $in + * @param {{ [_ in `${number}`]?: number | null } | null} $in * @returns {$CancellablePromise} */ export function MapIntIntPointer($in) { @@ -161,7 +161,7 @@ export function MapIntIntPointer($in) { } /** - * @param {{ [_: `${number}`]: number[] | null } | null} $in + * @param {{ [_ in `${number}`]?: number[] | null } | null} $in * @returns {$CancellablePromise} */ export function MapIntSliceInt($in) { @@ -169,8 +169,8 @@ export function MapIntSliceInt($in) { } /** - * @param {{ [_: `${number}`]: number[] | null } | null} $in - * @returns {$CancellablePromise<{ [_: `${number}`]: number[] | null } | null>} + * @param {{ [_ in `${number}`]?: number[] | null } | null} $in + * @returns {$CancellablePromise<{ [_ in `${number}`]?: number[] | null } | null>} */ export function MapIntSliceIntInMapIntSliceIntOut($in) { return $Call.ByName("main.GreetService.MapIntSliceIntInMapIntSliceIntOut", $in); @@ -208,7 +208,7 @@ export function PointerFloat64InFloat64Out($in) { } /** - * @param {{ [_: `${number}`]: number } | null} $in + * @param {{ [_ in `${number}`]?: number } | null} $in * @returns {$CancellablePromise} */ export function PointerMapIntInt($in) { 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 eca08a018..83a363e8a 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 @@ -145,7 +145,7 @@ export function IntPointerInputNamedOutputs($in) { } /** - * @param {{ [_: `${number}`]: number } | null} $in + * @param {{ [_ in `${number}`]?: number } | null} $in * @returns {$CancellablePromise} */ export function MapIntInt($in) { @@ -153,7 +153,7 @@ export function MapIntInt($in) { } /** - * @param {{ [_: `${number}`]: number | null } | null} $in + * @param {{ [_ in `${number}`]?: number | null } | null} $in * @returns {$CancellablePromise} */ export function MapIntIntPointer($in) { @@ -161,7 +161,7 @@ export function MapIntIntPointer($in) { } /** - * @param {{ [_: `${number}`]: number[] | null } | null} $in + * @param {{ [_ in `${number}`]?: number[] | null } | null} $in * @returns {$CancellablePromise} */ export function MapIntSliceInt($in) { @@ -169,8 +169,8 @@ export function MapIntSliceInt($in) { } /** - * @param {{ [_: `${number}`]: number[] | null } | null} $in - * @returns {$CancellablePromise<{ [_: `${number}`]: number[] | null } | null>} + * @param {{ [_ in `${number}`]?: number[] | null } | null} $in + * @returns {$CancellablePromise<{ [_ in `${number}`]?: number[] | null } | null>} */ export function MapIntSliceIntInMapIntSliceIntOut($in) { return $Call.ByName("main.GreetService.MapIntSliceIntInMapIntSliceIntOut", $in); @@ -208,7 +208,7 @@ export function PointerFloat64InFloat64Out($in) { } /** - * @param {{ [_: `${number}`]: number } | null} $in + * @param {{ [_ in `${number}`]?: number } | null} $in * @returns {$CancellablePromise} */ export function PointerMapIntInt($in) { diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/eventdata.d.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/eventdata.d.ts index d265e3adc..3e53d9287 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/eventdata.d.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/eventdata.d.ts @@ -19,7 +19,7 @@ declare module "/wails/runtime.js" { namespace Events { interface CustomEvents { "events_only:class": events_only$0.SomeClass; - "events_only:map": { [_: string]: number[] }; + "events_only:map": { [_ in string]?: number[] }; "events_only:nodata": void; "events_only:other": more$0.StringPtr[]; "events_only:string": string; 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 60484d6d6..56840a1c3 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 @@ -158,7 +158,7 @@ export type GenericAlias = T; /** * A generic alias that wraps a map. */ -export type GenericMapAlias = { [_: string]: U }; +export type GenericMapAlias = { [_ in string]?: U }; /** * A generic struct containing an alias. 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 cc1e88ad7..2c9200a0c 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 @@ -19,7 +19,7 @@ import * as $models from "./models.js"; * It has a multiline doc comment * The comment has even some * / traps!! */ -export function Greet(str: string, people: $models.Person[], $2: {"AnotherCount": number, "AnotherOne": $models.Person | null}, assoc: { [_: `${number}`]: boolean | null }, $4: (number | null)[], ...other: string[]): $CancellablePromise<[$models.Person, any, number[]]> { +export function Greet(str: string, people: $models.Person[], $2: {"AnotherCount": number, "AnotherOne": $models.Person | null}, assoc: { [_ in `${number}`]?: boolean | null }, $4: (number | null)[], ...other: string[]): $CancellablePromise<[$models.Person, any, number[]]> { return $Call.ByID(1411160069, str, people, $2, assoc, $4, other).then(($result: any) => { $result[0] = $$createType0($result[0]); $result[2] = $$createType1($result[2]); 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 93d1ef5c6..05c08cc6b 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 @@ -7,6 +7,6 @@ import { Create as $Create } from "/wails/runtime.js"; export type Alias = Cyclic | null; -export type Cyclic = { [_: string]: Alias }[]; +export type Cyclic = { [_ in 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/enum_map_keys/enummapservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/enummapservice.ts new file mode 100644 index 000000000..dcaa34b3e --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/enummapservice.ts @@ -0,0 +1,80 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * EnumMapService tests various enum map key scenarios + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @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 $models from "./models.js"; + +/** + * GetColorCodes returns a map with uint8 enum keys + */ +export function GetColorCodes(): $CancellablePromise<{ [_ in $models.Color]?: string }> { + return $Call.ByID(2794981443).then(($result: any) => { + return $$createType0($result); + }); +} + +/** + * GetNestedEnumMap returns a map with enum keys and complex values + */ +export function GetNestedEnumMap(): $CancellablePromise<{ [_ in $models.Status]?: { [_ in $models.Priority]?: string } }> { + return $Call.ByID(3603489560).then(($result: any) => { + return $$createType2($result); + }); +} + +/** + * GetOptionalEnumMap returns a map with enum keys to optional values + */ +export function GetOptionalEnumMap(): $CancellablePromise<{ [_ in $models.Status]?: string | null }> { + return $Call.ByID(1871606385).then(($result: any) => { + return $$createType3($result); + }); +} + +/** + * GetPersonsByStatus returns a map with enum keys to struct values + */ +export function GetPersonsByStatus(): $CancellablePromise<{ [_ in $models.Status]?: $models.Person[] }> { + return $Call.ByID(2189502217).then(($result: any) => { + return $$createType6($result); + }); +} + +/** + * GetPriorityWeights returns a map with integer enum keys + */ +export function GetPriorityWeights(): $CancellablePromise<{ [_ in $models.Priority]?: number }> { + return $Call.ByID(1542216941).then(($result: any) => { + return $$createType7($result); + }); +} + +/** + * GetStatusMessages returns a map with string enum keys + */ +export function GetStatusMessages(): $CancellablePromise<{ [_ in $models.Status]?: string }> { + return $Call.ByID(1788640810).then(($result: any) => { + return $$createType8($result); + }); +} + +// 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, $$createType1); +const $$createType3 = $Create.Map($Create.Any, $Create.Any); +const $$createType4 = $models.Person.createFrom; +const $$createType5 = $Create.Array($$createType4); +const $$createType6 = $Create.Map($Create.Any, $$createType5); +const $$createType7 = $Create.Map($Create.Any, $Create.Any); +const $$createType8 = $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/enum_map_keys/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/index.ts new file mode 100644 index 000000000..d209a0f7d --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/index.ts @@ -0,0 +1,14 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as EnumMapService from "./enummapservice.js"; +export { + EnumMapService +}; + +export { + Color, + Person, + Priority, + Status +} 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_map_keys/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/models.ts new file mode 100644 index 000000000..ba3d2baeb --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/models.ts @@ -0,0 +1,77 @@ +// 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"; + +/** + * Color represents color values + */ +export enum Color { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = 0, + + Red = 1, + Green = 2, + Blue = 3, +}; + +/** + * Person represents a person with status + */ +export class Person { + "Name": string; + "Status": Status; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Status" in $$source)) { + this["Status"] = Status.$zero; + } + + 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); + } +} + +/** + * Priority represents priority levels + */ +export enum Priority { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = 0, + + PriorityLow = 1, + PriorityMedium = 2, + PriorityHigh = 3, +}; + +/** + * Status represents different status values + */ +export enum Status { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = "", + + StatusPending = "pending", + StatusRunning = "running", + StatusCompleted = "completed", + StatusFailed = "failed", +}; 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 index b5890af28..8d52924fe 100644 --- 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 @@ -20,6 +20,8 @@ export type { EmbeddedValue, EmbeddedValuePtr, GoodTildeCstrAlias, + IntAlias, + IntType, InterfaceCstrAlias, MixedCstrAlias, NonBasicCstrAlias, 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 index 0d26a6b0b..b0f112227 100644 --- 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 @@ -23,733 +23,737 @@ export type EmbeddedValuePtr = string; export type GoodTildeCstrAlias = U; +export type IntAlias = number; + +export type IntType = number; + export type InterfaceCstrAlias = Y; export class Maps { /** * Reject */ - "Bool": { [_: string]: number }; + "Bool": { [_ in string]?: number }; /** * Accept */ - "Int": { [_: `${number}`]: number }; + "Int": { [_ in `${number}`]?: number }; /** * Accept */ - "Uint": { [_: `${number}`]: number }; + "Uint": { [_ in `${number}`]?: number }; /** * Reject */ - "Float": { [_: string]: number }; + "Float": { [_ in string]?: number }; /** * Reject */ - "Complex": { [_: string]: number }; + "Complex": { [_ in string]?: number }; /** * Accept */ - "Byte": { [_: `${number}`]: number }; + "Byte": { [_ in `${number}`]?: number }; /** * Accept */ - "Rune": { [_: `${number}`]: number }; + "Rune": { [_ in `${number}`]?: number }; /** * Accept */ - "String": { [_: string]: number }; + "String": { [_ in string]?: number }; /** * Reject */ - "IntPtr": { [_: string]: number }; + "IntPtr": { [_ in string]?: number }; /** * Reject */ - "UintPtr": { [_: string]: number }; + "UintPtr": { [_ in string]?: number }; /** * Reject */ - "FloatPtr": { [_: string]: number }; + "FloatPtr": { [_ in string]?: number }; /** * Reject */ - "ComplexPtr": { [_: string]: number }; + "ComplexPtr": { [_ in string]?: number }; /** * Reject */ - "StringPtr": { [_: string]: number }; + "StringPtr": { [_ in string]?: number }; /** * Reject */ - "NTM": { [_: string]: number }; + "NTM": { [_ in string]?: number }; /** * Reject */ - "NTMPtr": { [_: string]: number }; + "NTMPtr": { [_ in string]?: number }; /** * Accept */ - "VTM": { [_: ValueTextMarshaler]: number }; + "VTM": { [_ in ValueTextMarshaler]?: number }; /** * Accept */ - "VTMPtr": { [_: ValueTextMarshaler]: number }; + "VTMPtr": { [_ in ValueTextMarshaler]?: number }; /** * Reject */ - "PTM": { [_: string]: number }; + "PTM": { [_ in string]?: number }; /** * Accept */ - "PTMPtr": { [_: PointerTextMarshaler]: number }; + "PTMPtr": { [_ in PointerTextMarshaler]?: number }; /** * Accept, hide */ - "JTM": { [_: string]: number }; + "JTM": { [_ in string]?: number }; /** * Accept, hide */ - "JTMPtr": { [_: string]: number }; + "JTMPtr": { [_ in string]?: number }; /** * Reject */ - "A": { [_: string]: number }; + "A": { [_ in string]?: number }; /** * Reject */ - "APtr": { [_: string]: number }; + "APtr": { [_ in string]?: number }; /** * Accept, hide */ - "TM": { [_: string]: number }; + "TM": { [_ in string]?: number }; /** * Reject */ - "TMPtr": { [_: string]: number }; + "TMPtr": { [_ in string]?: number }; /** * Accept, hide */ - "CI": { [_: string]: number }; + "CI": { [_ in string]?: number }; /** * Reject */ - "CIPtr": { [_: string]: number }; + "CIPtr": { [_ in string]?: number }; /** * Accept, hide */ - "EI": { [_: string]: number }; + "EI": { [_ in string]?: number }; /** * Reject */ - "EIPtr": { [_: string]: number }; + "EIPtr": { [_ in string]?: number }; /** * Accept */ - "EV": { [_: EmbeddedValue]: number }; + "EV": { [_ in EmbeddedValue]?: number }; /** * Accept */ - "EVPtr": { [_: EmbeddedValue]: number }; + "EVPtr": { [_ in EmbeddedValue]?: number }; /** * Accept */ - "EVP": { [_: EmbeddedValuePtr]: number }; + "EVP": { [_ in EmbeddedValuePtr]?: number }; /** * Accept */ - "EVPPtr": { [_: EmbeddedValuePtr]: number }; + "EVPPtr": { [_ in EmbeddedValuePtr]?: number }; /** * Reject */ - "EP": { [_: string]: number }; + "EP": { [_ in string]?: number }; /** * Accept */ - "EPPtr": { [_: EmbeddedPointer]: number }; + "EPPtr": { [_ in EmbeddedPointer]?: number }; /** * Accept */ - "EPP": { [_: EmbeddedPointerPtr]: number }; + "EPP": { [_ in EmbeddedPointerPtr]?: number }; /** * Accept */ - "EPPPtr": { [_: EmbeddedPointerPtr]: number }; + "EPPPtr": { [_ in EmbeddedPointerPtr]?: number }; /** * Accept */ - "ECI": { [_: EmbeddedCustomInterface]: number }; + "ECI": { [_ in EmbeddedCustomInterface]?: number }; /** * Accept */ - "ECIPtr": { [_: EmbeddedCustomInterface]: number }; + "ECIPtr": { [_ in EmbeddedCustomInterface]?: number }; /** * Accept */ - "EOI": { [_: EmbeddedOriginalInterface]: number }; + "EOI": { [_ in EmbeddedOriginalInterface]?: number }; /** * Accept */ - "EOIPtr": { [_: EmbeddedOriginalInterface]: number }; + "EOIPtr": { [_ in EmbeddedOriginalInterface]?: number }; /** * Reject */ - "WT": { [_: string]: number }; + "WT": { [_ in string]?: number }; /** * Reject */ - "WA": { [_: string]: number }; + "WA": { [_ in string]?: number }; /** * Accept */ - "ST": { [_: StringType]: number }; + "ST": { [_ in StringType]?: number }; /** * Accept */ - "SA": { [_: StringAlias]: number }; + "SA": { [_ in StringAlias]?: number }; /** * Accept */ - "IntT": { [_: `${number}`]: number }; + "IntT": { [_ in IntType]?: number }; /** * Accept */ - "IntA": { [_: `${number}`]: number }; + "IntA": { [_ in IntAlias]?: number }; /** * Reject */ - "VT": { [_: string]: number }; + "VT": { [_ in string]?: number }; /** * Reject */ - "VTPtr": { [_: string]: number }; + "VTPtr": { [_ in string]?: number }; /** * Reject */ - "VPT": { [_: string]: number }; + "VPT": { [_ in string]?: number }; /** * Reject */ - "VPTPtr": { [_: string]: number }; + "VPTPtr": { [_ in string]?: number }; /** * Accept */ - "VA": { [_: ValueAlias]: number }; + "VA": { [_ in ValueAlias]?: number }; /** * Accept */ - "VAPtr": { [_: ValueAlias]: number }; + "VAPtr": { [_ in ValueAlias]?: number }; /** * Accept, hide */ - "VPA": { [_: string]: number }; + "VPA": { [_ in string]?: number }; /** * Reject */ - "VPAPtr": { [_: string]: number }; + "VPAPtr": { [_ in string]?: number }; /** * Reject */ - "PT": { [_: string]: number }; + "PT": { [_ in string]?: number }; /** * Reject */ - "PTPtr": { [_: string]: number }; + "PTPtr": { [_ in string]?: number }; /** * Reject */ - "PPT": { [_: string]: number }; + "PPT": { [_ in string]?: number }; /** * Reject */ - "PPTPtr": { [_: string]: number }; + "PPTPtr": { [_ in string]?: number }; /** * Reject */ - "PA": { [_: string]: number }; + "PA": { [_ in string]?: number }; /** * Accept */ - "PAPtr": { [_: PointerAlias]: number }; + "PAPtr": { [_ in PointerAlias]?: number }; /** * Accept, hide */ - "PPA": { [_: string]: number }; + "PPA": { [_ in string]?: number }; /** * Reject */ - "PPAPtr": { [_: string]: number }; + "PPAPtr": { [_ in string]?: number }; /** * Accept, hide */ - "IT": { [_: string]: number }; + "IT": { [_ in string]?: number }; /** * Reject */ - "ITPtr": { [_: string]: number }; + "ITPtr": { [_ in string]?: number }; /** * Reject */ - "IPT": { [_: string]: number }; + "IPT": { [_ in string]?: number }; /** * Reject */ - "IPTPtr": { [_: string]: number }; + "IPTPtr": { [_ in string]?: number }; /** * Accept, hide */ - "IA": { [_: string]: number }; + "IA": { [_ in string]?: number }; /** * Reject */ - "IAPtr": { [_: string]: number }; + "IAPtr": { [_ in string]?: number }; /** * Reject */ - "IPA": { [_: string]: number }; + "IPA": { [_ in string]?: number }; /** * Reject */ - "IPAPtr": { [_: string]: number }; + "IPAPtr": { [_ in string]?: number }; /** * Soft reject */ - "TPR": { [_: string]: number }; + "TPR": { [_ in string]?: number }; /** * Soft reject */ - "TPRPtr": { [_: string]: number }; + "TPRPtr": { [_ in string]?: number }; /** * Accept, hide */ - "TPS": { [_: string]: number }; + "TPS": { [_ in string]?: number }; /** * Soft reject */ - "TPSPtr": { [_: string]: number }; + "TPSPtr": { [_ in string]?: number }; /** * Soft reject */ - "TPT": { [_: string]: number }; + "TPT": { [_ in string]?: number }; /** * Soft reject */ - "TPTPtr": { [_: string]: number }; + "TPTPtr": { [_ in string]?: number }; /** * Accept, hide */ - "TPU": { [_: string]: number }; + "TPU": { [_ in string]?: number }; /** * Soft reject */ - "TPUPtr": { [_: string]: number }; + "TPUPtr": { [_ in string]?: number }; /** * Accept, hide */ - "TPV": { [_: string]: number }; + "TPV": { [_ in string]?: number }; /** * Soft reject */ - "TPVPtr": { [_: string]: number }; + "TPVPtr": { [_ in string]?: number }; /** * Soft reject */ - "TPW": { [_: string]: number }; + "TPW": { [_ in string]?: number }; /** * Accept, hide */ - "TPWPtr": { [_: string]: number }; + "TPWPtr": { [_ in string]?: number }; /** * Accept, hide */ - "TPX": { [_: string]: number }; + "TPX": { [_ in string]?: number }; /** * Soft reject */ - "TPXPtr": { [_: string]: number }; + "TPXPtr": { [_ in string]?: number }; /** * Accept, hide */ - "TPY": { [_: string]: number }; + "TPY": { [_ in string]?: number }; /** * Soft reject */ - "TPYPtr": { [_: string]: number }; + "TPYPtr": { [_ in string]?: number }; /** * Accept, hide */ - "TPZ": { [_: string]: number }; + "TPZ": { [_ in string]?: number }; /** * Soft reject */ - "TPZPtr": { [_: string]: number }; + "TPZPtr": { [_ in string]?: number }; /** * Soft reject */ - "GAR": { [_: string]: number }; + "GAR": { [_ in string]?: number }; /** * Soft reject */ - "GARPtr": { [_: string]: number }; + "GARPtr": { [_ in string]?: number }; /** * Accept, hide */ - "GAS": { [_: string]: number }; + "GAS": { [_ in string]?: number }; /** * Soft reject */ - "GASPtr": { [_: string]: number }; + "GASPtr": { [_ in string]?: number }; /** * Soft reject */ - "GAT": { [_: string]: number }; + "GAT": { [_ in string]?: number }; /** * Soft reject */ - "GATPtr": { [_: string]: number }; + "GATPtr": { [_ in string]?: number }; /** * Accept, hide */ - "GAU": { [_: string]: number }; + "GAU": { [_ in string]?: number }; /** * Soft reject */ - "GAUPtr": { [_: string]: number }; + "GAUPtr": { [_ in string]?: number }; /** * Accept, hide */ - "GAV": { [_: string]: number }; + "GAV": { [_ in string]?: number }; /** * Soft reject */ - "GAVPtr": { [_: string]: number }; + "GAVPtr": { [_ in string]?: number }; /** * Soft reject */ - "GAW": { [_: string]: number }; + "GAW": { [_ in string]?: number }; /** * Accept, hide */ - "GAWPtr": { [_: string]: number }; + "GAWPtr": { [_ in string]?: number }; /** * Accept, hide */ - "GAX": { [_: string]: number }; + "GAX": { [_ in string]?: number }; /** * Soft reject */ - "GAXPtr": { [_: string]: number }; + "GAXPtr": { [_ in string]?: number }; /** * Accept, hide */ - "GAY": { [_: string]: number }; + "GAY": { [_ in string]?: number }; /** * Soft reject */ - "GAYPtr": { [_: string]: number }; + "GAYPtr": { [_ in string]?: number }; /** * Accept, hide */ - "GAZ": { [_: string]: number }; + "GAZ": { [_ in string]?: number }; /** * Soft reject */ - "GAZPtr": { [_: string]: number }; - - /** - * Accept, hide - */ - "GACi": { [_: `${number}`]: number }; + "GAZPtr": { [_ in string]?: number }; /** * Accept */ - "GACV": { [_: ComparableCstrAlias]: number }; - - /** - * Reject - */ - "GACP": { [_: string]: number }; - - /** - * Reject - */ - "GACiPtr": { [_: string]: number }; - - /** - * Accept, hide - */ - "GACVPtr": { [_: string]: number }; - - /** - * Accept, hide - */ - "GACPPtr": { [_: string]: number }; - - /** - * Accept, hide - */ - "GABi": { [_: `${number}`]: number }; + "GACi": { [_ in ComparableCstrAlias]?: number }; /** * Accept */ - "GABs": { [_: BasicCstrAlias]: number }; + "GACV": { [_ in ComparableCstrAlias]?: number }; /** * Reject */ - "GABiPtr": { [_: string]: number }; + "GACP": { [_ in string]?: number }; /** * Reject */ - "GABT": { [_: string]: number }; + "GACiPtr": { [_ in string]?: number }; /** - * Reject + * Accept, hide */ - "GABTPtr": { [_: string]: number }; + "GACVPtr": { [_ in string]?: number }; + + /** + * Accept, hide + */ + "GACPPtr": { [_ in string]?: number }; /** * Accept */ - "GAGT": { [_: GoodTildeCstrAlias]: number }; - - /** - * Accept, hide - */ - "GAGTPtr": { [_: string]: number }; + "GABi": { [_ in BasicCstrAlias]?: number }; /** * Accept */ - "GANBV": { [_: NonBasicCstrAlias]: number }; - - /** - * Accept, hide - */ - "GANBP": { [_: string]: number }; - - /** - * Accept, hide - */ - "GANBVPtr": { [_: string]: number }; + "GABs": { [_ in BasicCstrAlias]?: number }; /** * Reject */ - "GANBPPtr": { [_: string]: number }; + "GABiPtr": { [_ in string]?: number }; + + /** + * Reject + */ + "GABT": { [_ in string]?: number }; + + /** + * Reject + */ + "GABTPtr": { [_ in string]?: number }; /** * Accept */ - "GAPlV1": { [_: PointableCstrAlias]: number }; + "GAGT": { [_ in GoodTildeCstrAlias]?: number }; + + /** + * Accept, hide + */ + "GAGTPtr": { [_ in string]?: number }; /** * Accept */ - "GAPlV2": { [_: PointableCstrAlias]: number }; + "GANBV": { [_ in NonBasicCstrAlias]?: number }; + + /** + * Accept, hide + */ + "GANBP": { [_ in string]?: number }; + + /** + * Accept, hide + */ + "GANBVPtr": { [_ in string]?: number }; /** * Reject */ - "GAPlP1": { [_: string]: number }; + "GANBPPtr": { [_ in string]?: number }; /** * Accept */ - "GAPlP2": { [_: PointableCstrAlias]: number }; - - /** - * Accept, hide - */ - "GAPlVPtr": { [_: string]: number }; - - /** - * Accept, hide - */ - "GAPlPPtr": { [_: string]: number }; - - /** - * Accept, hide - */ - "GAMi": { [_: `${number}`]: number }; + "GAPlV1": { [_ in PointableCstrAlias]?: number }; /** * Accept */ - "GAMS": { [_: MixedCstrAlias]: number }; + "GAPlV2": { [_ in PointableCstrAlias]?: number }; + + /** + * Reject + */ + "GAPlP1": { [_ in string]?: number }; /** * Accept */ - "GAMV": { [_: MixedCstrAlias]: number }; - - /** - * Reject - */ - "GAMSPtr": { [_: string]: number }; + "GAPlP2": { [_ in PointableCstrAlias]?: number }; /** * Accept, hide */ - "GAMVPtr": { [_: string]: number }; + "GAPlVPtr": { [_ in string]?: number }; /** * Accept, hide */ - "GAII": { [_: string]: number }; + "GAPlPPtr": { [_ in string]?: number }; /** * Accept */ - "GAIV": { [_: InterfaceCstrAlias]: number }; + "GAMi": { [_ in MixedCstrAlias]?: number }; /** - * Accept, hide + * Accept */ - "GAIP": { [_: string]: number }; + "GAMS": { [_ in MixedCstrAlias]?: number }; + + /** + * Accept + */ + "GAMV": { [_ in MixedCstrAlias]?: number }; /** * Reject */ - "GAIIPtr": { [_: string]: number }; + "GAMSPtr": { [_ in string]?: number }; /** * Accept, hide */ - "GAIVPtr": { [_: string]: number }; - - /** - * Reject - */ - "GAIPPtr": { [_: string]: number }; + "GAMVPtr": { [_ in string]?: number }; /** * Accept, hide */ - "GAPrV": { [_: string]: number }; + "GAII": { [_ in string]?: number }; + + /** + * Accept + */ + "GAIV": { [_ in InterfaceCstrAlias]?: number }; /** * Accept, hide */ - "GAPrP": { [_: string]: number }; + "GAIP": { [_ in string]?: number }; /** * Reject */ - "GAPrVPtr": { [_: string]: number }; + "GAIIPtr": { [_ in string]?: number }; + + /** + * Accept, hide + */ + "GAIVPtr": { [_ in string]?: number }; /** * Reject */ - "GAPrPPtr": { [_: string]: number }; + "GAIPPtr": { [_ in string]?: number }; + + /** + * Accept, hide + */ + "GAPrV": { [_ in string]?: number }; + + /** + * Accept, hide + */ + "GAPrP": { [_ in string]?: number }; + + /** + * Reject + */ + "GAPrVPtr": { [_ in string]?: number }; + + /** + * Reject + */ + "GAPrPPtr": { [_ in string]?: number }; /** Creates a new Maps instance. */ constructor($$source: Partial> = {}) { 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 4cb328e1e..967f8dbfd 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 @@ -22,7 +22,7 @@ export class HowDifferent { /** * But they may have many differences. */ - "Differences": { [_: string]: How }[]; + "Differences": { [_ in string]?: How }[]; /** Creates a new HowDifferent instance. */ constructor($$source: 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_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 c8ff6e4db..9f8faede9 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 @@ -81,19 +81,19 @@ export function IntPointerInputNamedOutputs($in: number | null): $CancellablePro return $Call.ByID(2718999663, $in); } -export function MapIntInt($in: { [_: `${number}`]: number }): $CancellablePromise { +export function MapIntInt($in: { [_ in `${number}`]?: number }): $CancellablePromise { return $Call.ByID(2386486356, $in); } -export function MapIntIntPointer($in: { [_: `${number}`]: number | null }): $CancellablePromise { +export function MapIntIntPointer($in: { [_ in `${number}`]?: number | null }): $CancellablePromise { return $Call.ByID(2163571325, $in); } -export function MapIntSliceInt($in: { [_: `${number}`]: number[] }): $CancellablePromise { +export function MapIntSliceInt($in: { [_ in `${number}`]?: number[] }): $CancellablePromise { return $Call.ByID(2900172572, $in); } -export function MapIntSliceIntInMapIntSliceIntOut($in: { [_: `${number}`]: number[] }): $CancellablePromise<{ [_: `${number}`]: number[] }> { +export function MapIntSliceIntInMapIntSliceIntOut($in: { [_ in `${number}`]?: number[] }): $CancellablePromise<{ [_ in `${number}`]?: number[] }> { return $Call.ByID(881980169, $in).then(($result: any) => { return $$createType1($result); }); @@ -115,7 +115,7 @@ export function PointerFloat64InFloat64Out($in: number | null): $CancellableProm return $Call.ByID(2124953624, $in); } -export function PointerMapIntInt($in: { [_: `${number}`]: number } | null): $CancellablePromise { +export function PointerMapIntInt($in: { [_ in `${number}`]?: number } | null): $CancellablePromise { return $Call.ByID(3516977899, $in); } 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 c8ff6e4db..9f8faede9 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 @@ -81,19 +81,19 @@ export function IntPointerInputNamedOutputs($in: number | null): $CancellablePro return $Call.ByID(2718999663, $in); } -export function MapIntInt($in: { [_: `${number}`]: number }): $CancellablePromise { +export function MapIntInt($in: { [_ in `${number}`]?: number }): $CancellablePromise { return $Call.ByID(2386486356, $in); } -export function MapIntIntPointer($in: { [_: `${number}`]: number | null }): $CancellablePromise { +export function MapIntIntPointer($in: { [_ in `${number}`]?: number | null }): $CancellablePromise { return $Call.ByID(2163571325, $in); } -export function MapIntSliceInt($in: { [_: `${number}`]: number[] }): $CancellablePromise { +export function MapIntSliceInt($in: { [_ in `${number}`]?: number[] }): $CancellablePromise { return $Call.ByID(2900172572, $in); } -export function MapIntSliceIntInMapIntSliceIntOut($in: { [_: `${number}`]: number[] }): $CancellablePromise<{ [_: `${number}`]: number[] }> { +export function MapIntSliceIntInMapIntSliceIntOut($in: { [_ in `${number}`]?: number[] }): $CancellablePromise<{ [_ in `${number}`]?: number[] }> { return $Call.ByID(881980169, $in).then(($result: any) => { return $$createType1($result); }); @@ -115,7 +115,7 @@ export function PointerFloat64InFloat64Out($in: number | null): $CancellableProm return $Call.ByID(2124953624, $in); } -export function PointerMapIntInt($in: { [_: `${number}`]: number } | null): $CancellablePromise { +export function PointerMapIntInt($in: { [_ in `${number}`]?: number } | null): $CancellablePromise { return $Call.ByID(3516977899, $in); } diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/eventdata.d.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/eventdata.d.ts index d265e3adc..3e53d9287 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/eventdata.d.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/eventdata.d.ts @@ -19,7 +19,7 @@ declare module "/wails/runtime.js" { namespace Events { interface CustomEvents { "events_only:class": events_only$0.SomeClass; - "events_only:map": { [_: string]: number[] }; + "events_only:map": { [_ in string]?: number[] }; "events_only:nodata": void; "events_only:other": more$0.StringPtr[]; "events_only:string": string; 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 60484d6d6..56840a1c3 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 @@ -158,7 +158,7 @@ export type GenericAlias = T; /** * A generic alias that wraps a map. */ -export type GenericMapAlias = { [_: string]: U }; +export type GenericMapAlias = { [_ in string]?: U }; /** * A generic struct containing an alias. 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 4471270ed..32514cc98 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 @@ -19,7 +19,7 @@ import * as $models from "./models.js"; * It has a multiline doc comment * The comment has even some * / traps!! */ -export function Greet(str: string, people: $models.Person[], $2: {"AnotherCount": number, "AnotherOne": $models.Person | null}, assoc: { [_: `${number}`]: boolean | null }, $4: (number | null)[], ...other: string[]): $CancellablePromise<[$models.Person, any, number[]]> { +export function Greet(str: string, people: $models.Person[], $2: {"AnotherCount": number, "AnotherOne": $models.Person | null}, assoc: { [_ in `${number}`]?: boolean | null }, $4: (number | null)[], ...other: string[]): $CancellablePromise<[$models.Person, any, number[]]> { return $Call.ByName("main.GreetService.Greet", str, people, $2, assoc, $4, other).then(($result: any) => { $result[0] = $$createType0($result[0]); $result[2] = $$createType1($result[2]); 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 93d1ef5c6..05c08cc6b 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 @@ -7,6 +7,6 @@ import { Create as $Create } from "/wails/runtime.js"; export type Alias = Cyclic | null; -export type Cyclic = { [_: string]: Alias }[]; +export type Cyclic = { [_ in 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/enum_map_keys/enummapservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/enummapservice.ts new file mode 100644 index 000000000..3fc57b4ce --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/enummapservice.ts @@ -0,0 +1,80 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * EnumMapService tests various enum map key scenarios + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @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 $models from "./models.js"; + +/** + * GetColorCodes returns a map with uint8 enum keys + */ +export function GetColorCodes(): $CancellablePromise<{ [_ in $models.Color]?: string }> { + return $Call.ByName("main.EnumMapService.GetColorCodes").then(($result: any) => { + return $$createType0($result); + }); +} + +/** + * GetNestedEnumMap returns a map with enum keys and complex values + */ +export function GetNestedEnumMap(): $CancellablePromise<{ [_ in $models.Status]?: { [_ in $models.Priority]?: string } }> { + return $Call.ByName("main.EnumMapService.GetNestedEnumMap").then(($result: any) => { + return $$createType2($result); + }); +} + +/** + * GetOptionalEnumMap returns a map with enum keys to optional values + */ +export function GetOptionalEnumMap(): $CancellablePromise<{ [_ in $models.Status]?: string | null }> { + return $Call.ByName("main.EnumMapService.GetOptionalEnumMap").then(($result: any) => { + return $$createType3($result); + }); +} + +/** + * GetPersonsByStatus returns a map with enum keys to struct values + */ +export function GetPersonsByStatus(): $CancellablePromise<{ [_ in $models.Status]?: $models.Person[] }> { + return $Call.ByName("main.EnumMapService.GetPersonsByStatus").then(($result: any) => { + return $$createType6($result); + }); +} + +/** + * GetPriorityWeights returns a map with integer enum keys + */ +export function GetPriorityWeights(): $CancellablePromise<{ [_ in $models.Priority]?: number }> { + return $Call.ByName("main.EnumMapService.GetPriorityWeights").then(($result: any) => { + return $$createType7($result); + }); +} + +/** + * GetStatusMessages returns a map with string enum keys + */ +export function GetStatusMessages(): $CancellablePromise<{ [_ in $models.Status]?: string }> { + return $Call.ByName("main.EnumMapService.GetStatusMessages").then(($result: any) => { + return $$createType8($result); + }); +} + +// 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, $$createType1); +const $$createType3 = $Create.Map($Create.Any, $Create.Any); +const $$createType4 = $models.Person.createFrom; +const $$createType5 = $Create.Array($$createType4); +const $$createType6 = $Create.Map($Create.Any, $$createType5); +const $$createType7 = $Create.Map($Create.Any, $Create.Any); +const $$createType8 = $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/enum_map_keys/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/index.ts new file mode 100644 index 000000000..d209a0f7d --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/index.ts @@ -0,0 +1,14 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as EnumMapService from "./enummapservice.js"; +export { + EnumMapService +}; + +export { + Color, + Person, + Priority, + Status +} 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_map_keys/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/models.ts new file mode 100644 index 000000000..ba3d2baeb --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=false/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/models.ts @@ -0,0 +1,77 @@ +// 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"; + +/** + * Color represents color values + */ +export enum Color { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = 0, + + Red = 1, + Green = 2, + Blue = 3, +}; + +/** + * Person represents a person with status + */ +export class Person { + "Name": string; + "Status": Status; + + /** Creates a new Person instance. */ + constructor($$source: Partial = {}) { + if (!("Name" in $$source)) { + this["Name"] = ""; + } + if (!("Status" in $$source)) { + this["Status"] = Status.$zero; + } + + 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); + } +} + +/** + * Priority represents priority levels + */ +export enum Priority { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = 0, + + PriorityLow = 1, + PriorityMedium = 2, + PriorityHigh = 3, +}; + +/** + * Status represents different status values + */ +export enum Status { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = "", + + StatusPending = "pending", + StatusRunning = "running", + StatusCompleted = "completed", + StatusFailed = "failed", +}; 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 index b5890af28..8d52924fe 100644 --- 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 @@ -20,6 +20,8 @@ export type { EmbeddedValue, EmbeddedValuePtr, GoodTildeCstrAlias, + IntAlias, + IntType, InterfaceCstrAlias, MixedCstrAlias, NonBasicCstrAlias, 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 index 0d26a6b0b..b0f112227 100644 --- 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 @@ -23,733 +23,737 @@ export type EmbeddedValuePtr = string; export type GoodTildeCstrAlias = U; +export type IntAlias = number; + +export type IntType = number; + export type InterfaceCstrAlias = Y; export class Maps { /** * Reject */ - "Bool": { [_: string]: number }; + "Bool": { [_ in string]?: number }; /** * Accept */ - "Int": { [_: `${number}`]: number }; + "Int": { [_ in `${number}`]?: number }; /** * Accept */ - "Uint": { [_: `${number}`]: number }; + "Uint": { [_ in `${number}`]?: number }; /** * Reject */ - "Float": { [_: string]: number }; + "Float": { [_ in string]?: number }; /** * Reject */ - "Complex": { [_: string]: number }; + "Complex": { [_ in string]?: number }; /** * Accept */ - "Byte": { [_: `${number}`]: number }; + "Byte": { [_ in `${number}`]?: number }; /** * Accept */ - "Rune": { [_: `${number}`]: number }; + "Rune": { [_ in `${number}`]?: number }; /** * Accept */ - "String": { [_: string]: number }; + "String": { [_ in string]?: number }; /** * Reject */ - "IntPtr": { [_: string]: number }; + "IntPtr": { [_ in string]?: number }; /** * Reject */ - "UintPtr": { [_: string]: number }; + "UintPtr": { [_ in string]?: number }; /** * Reject */ - "FloatPtr": { [_: string]: number }; + "FloatPtr": { [_ in string]?: number }; /** * Reject */ - "ComplexPtr": { [_: string]: number }; + "ComplexPtr": { [_ in string]?: number }; /** * Reject */ - "StringPtr": { [_: string]: number }; + "StringPtr": { [_ in string]?: number }; /** * Reject */ - "NTM": { [_: string]: number }; + "NTM": { [_ in string]?: number }; /** * Reject */ - "NTMPtr": { [_: string]: number }; + "NTMPtr": { [_ in string]?: number }; /** * Accept */ - "VTM": { [_: ValueTextMarshaler]: number }; + "VTM": { [_ in ValueTextMarshaler]?: number }; /** * Accept */ - "VTMPtr": { [_: ValueTextMarshaler]: number }; + "VTMPtr": { [_ in ValueTextMarshaler]?: number }; /** * Reject */ - "PTM": { [_: string]: number }; + "PTM": { [_ in string]?: number }; /** * Accept */ - "PTMPtr": { [_: PointerTextMarshaler]: number }; + "PTMPtr": { [_ in PointerTextMarshaler]?: number }; /** * Accept, hide */ - "JTM": { [_: string]: number }; + "JTM": { [_ in string]?: number }; /** * Accept, hide */ - "JTMPtr": { [_: string]: number }; + "JTMPtr": { [_ in string]?: number }; /** * Reject */ - "A": { [_: string]: number }; + "A": { [_ in string]?: number }; /** * Reject */ - "APtr": { [_: string]: number }; + "APtr": { [_ in string]?: number }; /** * Accept, hide */ - "TM": { [_: string]: number }; + "TM": { [_ in string]?: number }; /** * Reject */ - "TMPtr": { [_: string]: number }; + "TMPtr": { [_ in string]?: number }; /** * Accept, hide */ - "CI": { [_: string]: number }; + "CI": { [_ in string]?: number }; /** * Reject */ - "CIPtr": { [_: string]: number }; + "CIPtr": { [_ in string]?: number }; /** * Accept, hide */ - "EI": { [_: string]: number }; + "EI": { [_ in string]?: number }; /** * Reject */ - "EIPtr": { [_: string]: number }; + "EIPtr": { [_ in string]?: number }; /** * Accept */ - "EV": { [_: EmbeddedValue]: number }; + "EV": { [_ in EmbeddedValue]?: number }; /** * Accept */ - "EVPtr": { [_: EmbeddedValue]: number }; + "EVPtr": { [_ in EmbeddedValue]?: number }; /** * Accept */ - "EVP": { [_: EmbeddedValuePtr]: number }; + "EVP": { [_ in EmbeddedValuePtr]?: number }; /** * Accept */ - "EVPPtr": { [_: EmbeddedValuePtr]: number }; + "EVPPtr": { [_ in EmbeddedValuePtr]?: number }; /** * Reject */ - "EP": { [_: string]: number }; + "EP": { [_ in string]?: number }; /** * Accept */ - "EPPtr": { [_: EmbeddedPointer]: number }; + "EPPtr": { [_ in EmbeddedPointer]?: number }; /** * Accept */ - "EPP": { [_: EmbeddedPointerPtr]: number }; + "EPP": { [_ in EmbeddedPointerPtr]?: number }; /** * Accept */ - "EPPPtr": { [_: EmbeddedPointerPtr]: number }; + "EPPPtr": { [_ in EmbeddedPointerPtr]?: number }; /** * Accept */ - "ECI": { [_: EmbeddedCustomInterface]: number }; + "ECI": { [_ in EmbeddedCustomInterface]?: number }; /** * Accept */ - "ECIPtr": { [_: EmbeddedCustomInterface]: number }; + "ECIPtr": { [_ in EmbeddedCustomInterface]?: number }; /** * Accept */ - "EOI": { [_: EmbeddedOriginalInterface]: number }; + "EOI": { [_ in EmbeddedOriginalInterface]?: number }; /** * Accept */ - "EOIPtr": { [_: EmbeddedOriginalInterface]: number }; + "EOIPtr": { [_ in EmbeddedOriginalInterface]?: number }; /** * Reject */ - "WT": { [_: string]: number }; + "WT": { [_ in string]?: number }; /** * Reject */ - "WA": { [_: string]: number }; + "WA": { [_ in string]?: number }; /** * Accept */ - "ST": { [_: StringType]: number }; + "ST": { [_ in StringType]?: number }; /** * Accept */ - "SA": { [_: StringAlias]: number }; + "SA": { [_ in StringAlias]?: number }; /** * Accept */ - "IntT": { [_: `${number}`]: number }; + "IntT": { [_ in IntType]?: number }; /** * Accept */ - "IntA": { [_: `${number}`]: number }; + "IntA": { [_ in IntAlias]?: number }; /** * Reject */ - "VT": { [_: string]: number }; + "VT": { [_ in string]?: number }; /** * Reject */ - "VTPtr": { [_: string]: number }; + "VTPtr": { [_ in string]?: number }; /** * Reject */ - "VPT": { [_: string]: number }; + "VPT": { [_ in string]?: number }; /** * Reject */ - "VPTPtr": { [_: string]: number }; + "VPTPtr": { [_ in string]?: number }; /** * Accept */ - "VA": { [_: ValueAlias]: number }; + "VA": { [_ in ValueAlias]?: number }; /** * Accept */ - "VAPtr": { [_: ValueAlias]: number }; + "VAPtr": { [_ in ValueAlias]?: number }; /** * Accept, hide */ - "VPA": { [_: string]: number }; + "VPA": { [_ in string]?: number }; /** * Reject */ - "VPAPtr": { [_: string]: number }; + "VPAPtr": { [_ in string]?: number }; /** * Reject */ - "PT": { [_: string]: number }; + "PT": { [_ in string]?: number }; /** * Reject */ - "PTPtr": { [_: string]: number }; + "PTPtr": { [_ in string]?: number }; /** * Reject */ - "PPT": { [_: string]: number }; + "PPT": { [_ in string]?: number }; /** * Reject */ - "PPTPtr": { [_: string]: number }; + "PPTPtr": { [_ in string]?: number }; /** * Reject */ - "PA": { [_: string]: number }; + "PA": { [_ in string]?: number }; /** * Accept */ - "PAPtr": { [_: PointerAlias]: number }; + "PAPtr": { [_ in PointerAlias]?: number }; /** * Accept, hide */ - "PPA": { [_: string]: number }; + "PPA": { [_ in string]?: number }; /** * Reject */ - "PPAPtr": { [_: string]: number }; + "PPAPtr": { [_ in string]?: number }; /** * Accept, hide */ - "IT": { [_: string]: number }; + "IT": { [_ in string]?: number }; /** * Reject */ - "ITPtr": { [_: string]: number }; + "ITPtr": { [_ in string]?: number }; /** * Reject */ - "IPT": { [_: string]: number }; + "IPT": { [_ in string]?: number }; /** * Reject */ - "IPTPtr": { [_: string]: number }; + "IPTPtr": { [_ in string]?: number }; /** * Accept, hide */ - "IA": { [_: string]: number }; + "IA": { [_ in string]?: number }; /** * Reject */ - "IAPtr": { [_: string]: number }; + "IAPtr": { [_ in string]?: number }; /** * Reject */ - "IPA": { [_: string]: number }; + "IPA": { [_ in string]?: number }; /** * Reject */ - "IPAPtr": { [_: string]: number }; + "IPAPtr": { [_ in string]?: number }; /** * Soft reject */ - "TPR": { [_: string]: number }; + "TPR": { [_ in string]?: number }; /** * Soft reject */ - "TPRPtr": { [_: string]: number }; + "TPRPtr": { [_ in string]?: number }; /** * Accept, hide */ - "TPS": { [_: string]: number }; + "TPS": { [_ in string]?: number }; /** * Soft reject */ - "TPSPtr": { [_: string]: number }; + "TPSPtr": { [_ in string]?: number }; /** * Soft reject */ - "TPT": { [_: string]: number }; + "TPT": { [_ in string]?: number }; /** * Soft reject */ - "TPTPtr": { [_: string]: number }; + "TPTPtr": { [_ in string]?: number }; /** * Accept, hide */ - "TPU": { [_: string]: number }; + "TPU": { [_ in string]?: number }; /** * Soft reject */ - "TPUPtr": { [_: string]: number }; + "TPUPtr": { [_ in string]?: number }; /** * Accept, hide */ - "TPV": { [_: string]: number }; + "TPV": { [_ in string]?: number }; /** * Soft reject */ - "TPVPtr": { [_: string]: number }; + "TPVPtr": { [_ in string]?: number }; /** * Soft reject */ - "TPW": { [_: string]: number }; + "TPW": { [_ in string]?: number }; /** * Accept, hide */ - "TPWPtr": { [_: string]: number }; + "TPWPtr": { [_ in string]?: number }; /** * Accept, hide */ - "TPX": { [_: string]: number }; + "TPX": { [_ in string]?: number }; /** * Soft reject */ - "TPXPtr": { [_: string]: number }; + "TPXPtr": { [_ in string]?: number }; /** * Accept, hide */ - "TPY": { [_: string]: number }; + "TPY": { [_ in string]?: number }; /** * Soft reject */ - "TPYPtr": { [_: string]: number }; + "TPYPtr": { [_ in string]?: number }; /** * Accept, hide */ - "TPZ": { [_: string]: number }; + "TPZ": { [_ in string]?: number }; /** * Soft reject */ - "TPZPtr": { [_: string]: number }; + "TPZPtr": { [_ in string]?: number }; /** * Soft reject */ - "GAR": { [_: string]: number }; + "GAR": { [_ in string]?: number }; /** * Soft reject */ - "GARPtr": { [_: string]: number }; + "GARPtr": { [_ in string]?: number }; /** * Accept, hide */ - "GAS": { [_: string]: number }; + "GAS": { [_ in string]?: number }; /** * Soft reject */ - "GASPtr": { [_: string]: number }; + "GASPtr": { [_ in string]?: number }; /** * Soft reject */ - "GAT": { [_: string]: number }; + "GAT": { [_ in string]?: number }; /** * Soft reject */ - "GATPtr": { [_: string]: number }; + "GATPtr": { [_ in string]?: number }; /** * Accept, hide */ - "GAU": { [_: string]: number }; + "GAU": { [_ in string]?: number }; /** * Soft reject */ - "GAUPtr": { [_: string]: number }; + "GAUPtr": { [_ in string]?: number }; /** * Accept, hide */ - "GAV": { [_: string]: number }; + "GAV": { [_ in string]?: number }; /** * Soft reject */ - "GAVPtr": { [_: string]: number }; + "GAVPtr": { [_ in string]?: number }; /** * Soft reject */ - "GAW": { [_: string]: number }; + "GAW": { [_ in string]?: number }; /** * Accept, hide */ - "GAWPtr": { [_: string]: number }; + "GAWPtr": { [_ in string]?: number }; /** * Accept, hide */ - "GAX": { [_: string]: number }; + "GAX": { [_ in string]?: number }; /** * Soft reject */ - "GAXPtr": { [_: string]: number }; + "GAXPtr": { [_ in string]?: number }; /** * Accept, hide */ - "GAY": { [_: string]: number }; + "GAY": { [_ in string]?: number }; /** * Soft reject */ - "GAYPtr": { [_: string]: number }; + "GAYPtr": { [_ in string]?: number }; /** * Accept, hide */ - "GAZ": { [_: string]: number }; + "GAZ": { [_ in string]?: number }; /** * Soft reject */ - "GAZPtr": { [_: string]: number }; - - /** - * Accept, hide - */ - "GACi": { [_: `${number}`]: number }; + "GAZPtr": { [_ in string]?: number }; /** * Accept */ - "GACV": { [_: ComparableCstrAlias]: number }; - - /** - * Reject - */ - "GACP": { [_: string]: number }; - - /** - * Reject - */ - "GACiPtr": { [_: string]: number }; - - /** - * Accept, hide - */ - "GACVPtr": { [_: string]: number }; - - /** - * Accept, hide - */ - "GACPPtr": { [_: string]: number }; - - /** - * Accept, hide - */ - "GABi": { [_: `${number}`]: number }; + "GACi": { [_ in ComparableCstrAlias]?: number }; /** * Accept */ - "GABs": { [_: BasicCstrAlias]: number }; + "GACV": { [_ in ComparableCstrAlias]?: number }; /** * Reject */ - "GABiPtr": { [_: string]: number }; + "GACP": { [_ in string]?: number }; /** * Reject */ - "GABT": { [_: string]: number }; + "GACiPtr": { [_ in string]?: number }; /** - * Reject + * Accept, hide */ - "GABTPtr": { [_: string]: number }; + "GACVPtr": { [_ in string]?: number }; + + /** + * Accept, hide + */ + "GACPPtr": { [_ in string]?: number }; /** * Accept */ - "GAGT": { [_: GoodTildeCstrAlias]: number }; - - /** - * Accept, hide - */ - "GAGTPtr": { [_: string]: number }; + "GABi": { [_ in BasicCstrAlias]?: number }; /** * Accept */ - "GANBV": { [_: NonBasicCstrAlias]: number }; - - /** - * Accept, hide - */ - "GANBP": { [_: string]: number }; - - /** - * Accept, hide - */ - "GANBVPtr": { [_: string]: number }; + "GABs": { [_ in BasicCstrAlias]?: number }; /** * Reject */ - "GANBPPtr": { [_: string]: number }; + "GABiPtr": { [_ in string]?: number }; + + /** + * Reject + */ + "GABT": { [_ in string]?: number }; + + /** + * Reject + */ + "GABTPtr": { [_ in string]?: number }; /** * Accept */ - "GAPlV1": { [_: PointableCstrAlias]: number }; + "GAGT": { [_ in GoodTildeCstrAlias]?: number }; + + /** + * Accept, hide + */ + "GAGTPtr": { [_ in string]?: number }; /** * Accept */ - "GAPlV2": { [_: PointableCstrAlias]: number }; + "GANBV": { [_ in NonBasicCstrAlias]?: number }; + + /** + * Accept, hide + */ + "GANBP": { [_ in string]?: number }; + + /** + * Accept, hide + */ + "GANBVPtr": { [_ in string]?: number }; /** * Reject */ - "GAPlP1": { [_: string]: number }; + "GANBPPtr": { [_ in string]?: number }; /** * Accept */ - "GAPlP2": { [_: PointableCstrAlias]: number }; - - /** - * Accept, hide - */ - "GAPlVPtr": { [_: string]: number }; - - /** - * Accept, hide - */ - "GAPlPPtr": { [_: string]: number }; - - /** - * Accept, hide - */ - "GAMi": { [_: `${number}`]: number }; + "GAPlV1": { [_ in PointableCstrAlias]?: number }; /** * Accept */ - "GAMS": { [_: MixedCstrAlias]: number }; + "GAPlV2": { [_ in PointableCstrAlias]?: number }; + + /** + * Reject + */ + "GAPlP1": { [_ in string]?: number }; /** * Accept */ - "GAMV": { [_: MixedCstrAlias]: number }; - - /** - * Reject - */ - "GAMSPtr": { [_: string]: number }; + "GAPlP2": { [_ in PointableCstrAlias]?: number }; /** * Accept, hide */ - "GAMVPtr": { [_: string]: number }; + "GAPlVPtr": { [_ in string]?: number }; /** * Accept, hide */ - "GAII": { [_: string]: number }; + "GAPlPPtr": { [_ in string]?: number }; /** * Accept */ - "GAIV": { [_: InterfaceCstrAlias]: number }; + "GAMi": { [_ in MixedCstrAlias]?: number }; /** - * Accept, hide + * Accept */ - "GAIP": { [_: string]: number }; + "GAMS": { [_ in MixedCstrAlias]?: number }; + + /** + * Accept + */ + "GAMV": { [_ in MixedCstrAlias]?: number }; /** * Reject */ - "GAIIPtr": { [_: string]: number }; + "GAMSPtr": { [_ in string]?: number }; /** * Accept, hide */ - "GAIVPtr": { [_: string]: number }; - - /** - * Reject - */ - "GAIPPtr": { [_: string]: number }; + "GAMVPtr": { [_ in string]?: number }; /** * Accept, hide */ - "GAPrV": { [_: string]: number }; + "GAII": { [_ in string]?: number }; + + /** + * Accept + */ + "GAIV": { [_ in InterfaceCstrAlias]?: number }; /** * Accept, hide */ - "GAPrP": { [_: string]: number }; + "GAIP": { [_ in string]?: number }; /** * Reject */ - "GAPrVPtr": { [_: string]: number }; + "GAIIPtr": { [_ in string]?: number }; + + /** + * Accept, hide + */ + "GAIVPtr": { [_ in string]?: number }; /** * Reject */ - "GAPrPPtr": { [_: string]: number }; + "GAIPPtr": { [_ in string]?: number }; + + /** + * Accept, hide + */ + "GAPrV": { [_ in string]?: number }; + + /** + * Accept, hide + */ + "GAPrP": { [_ in string]?: number }; + + /** + * Reject + */ + "GAPrVPtr": { [_ in string]?: number }; + + /** + * Reject + */ + "GAPrPPtr": { [_ in string]?: number }; /** Creates a new Maps instance. */ constructor($$source: Partial> = {}) { 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 4cb328e1e..967f8dbfd 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 @@ -22,7 +22,7 @@ export class HowDifferent { /** * But they may have many differences. */ - "Differences": { [_: string]: How }[]; + "Differences": { [_ in string]?: How }[]; /** Creates a new HowDifferent instance. */ constructor($$source: 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_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 ea2dcf8a6..579db20c8 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 @@ -81,19 +81,19 @@ export function IntPointerInputNamedOutputs($in: number | null): $CancellablePro return $Call.ByName("main.GreetService.IntPointerInputNamedOutputs", $in); } -export function MapIntInt($in: { [_: `${number}`]: number }): $CancellablePromise { +export function MapIntInt($in: { [_ in `${number}`]?: number }): $CancellablePromise { return $Call.ByName("main.GreetService.MapIntInt", $in); } -export function MapIntIntPointer($in: { [_: `${number}`]: number | null }): $CancellablePromise { +export function MapIntIntPointer($in: { [_ in `${number}`]?: number | null }): $CancellablePromise { return $Call.ByName("main.GreetService.MapIntIntPointer", $in); } -export function MapIntSliceInt($in: { [_: `${number}`]: number[] }): $CancellablePromise { +export function MapIntSliceInt($in: { [_ in `${number}`]?: number[] }): $CancellablePromise { return $Call.ByName("main.GreetService.MapIntSliceInt", $in); } -export function MapIntSliceIntInMapIntSliceIntOut($in: { [_: `${number}`]: number[] }): $CancellablePromise<{ [_: `${number}`]: number[] }> { +export function MapIntSliceIntInMapIntSliceIntOut($in: { [_ in `${number}`]?: number[] }): $CancellablePromise<{ [_ in `${number}`]?: number[] }> { return $Call.ByName("main.GreetService.MapIntSliceIntInMapIntSliceIntOut", $in).then(($result: any) => { return $$createType1($result); }); @@ -115,7 +115,7 @@ export function PointerFloat64InFloat64Out($in: number | null): $CancellableProm return $Call.ByName("main.GreetService.PointerFloat64InFloat64Out", $in); } -export function PointerMapIntInt($in: { [_: `${number}`]: number } | null): $CancellablePromise { +export function PointerMapIntInt($in: { [_ in `${number}`]?: number } | null): $CancellablePromise { return $Call.ByName("main.GreetService.PointerMapIntInt", $in); } 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 ea2dcf8a6..579db20c8 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 @@ -81,19 +81,19 @@ export function IntPointerInputNamedOutputs($in: number | null): $CancellablePro return $Call.ByName("main.GreetService.IntPointerInputNamedOutputs", $in); } -export function MapIntInt($in: { [_: `${number}`]: number }): $CancellablePromise { +export function MapIntInt($in: { [_ in `${number}`]?: number }): $CancellablePromise { return $Call.ByName("main.GreetService.MapIntInt", $in); } -export function MapIntIntPointer($in: { [_: `${number}`]: number | null }): $CancellablePromise { +export function MapIntIntPointer($in: { [_ in `${number}`]?: number | null }): $CancellablePromise { return $Call.ByName("main.GreetService.MapIntIntPointer", $in); } -export function MapIntSliceInt($in: { [_: `${number}`]: number[] }): $CancellablePromise { +export function MapIntSliceInt($in: { [_ in `${number}`]?: number[] }): $CancellablePromise { return $Call.ByName("main.GreetService.MapIntSliceInt", $in); } -export function MapIntSliceIntInMapIntSliceIntOut($in: { [_: `${number}`]: number[] }): $CancellablePromise<{ [_: `${number}`]: number[] }> { +export function MapIntSliceIntInMapIntSliceIntOut($in: { [_ in `${number}`]?: number[] }): $CancellablePromise<{ [_ in `${number}`]?: number[] }> { return $Call.ByName("main.GreetService.MapIntSliceIntInMapIntSliceIntOut", $in).then(($result: any) => { return $$createType1($result); }); @@ -115,7 +115,7 @@ export function PointerFloat64InFloat64Out($in: number | null): $CancellableProm return $Call.ByName("main.GreetService.PointerFloat64InFloat64Out", $in); } -export function PointerMapIntInt($in: { [_: `${number}`]: number } | null): $CancellablePromise { +export function PointerMapIntInt($in: { [_ in `${number}`]?: number } | null): $CancellablePromise { return $Call.ByName("main.GreetService.PointerMapIntInt", $in); } diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/eventdata.d.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/eventdata.d.ts index 4384cef06..be1730836 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/eventdata.d.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/eventdata.d.ts @@ -19,7 +19,7 @@ declare module "/wails/runtime.js" { namespace Events { interface CustomEvents { "events_only:class": events_only$0.SomeClass; - "events_only:map": { [_: string]: number[] | null } | null; + "events_only:map": { [_ in string]?: number[] | null } | null; "events_only:nodata": void; "events_only:other": more$0.StringPtr[] | null; "events_only:string": string; 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 14b8879f7..32e6d64cb 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 @@ -72,7 +72,7 @@ export type GenericAlias = T; /** * A generic alias that wraps a map. */ -export type GenericMapAlias = { [_: string]: U } | null; +export type GenericMapAlias = { [_ in string]?: U } | null; /** * A generic struct containing an alias. 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 99ffd566f..069794a5b 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 @@ -19,6 +19,6 @@ import * as $models from "./models.js"; * It has a multiline doc comment * The comment has even some * / traps!! */ -export function Greet(str: string, people: $models.Person[] | null, $2: {"AnotherCount": number, "AnotherOne": $models.Person | null}, assoc: { [_: `${number}`]: boolean | null } | null, $4: (number | null)[] | null, ...other: string[]): $CancellablePromise<[$models.Person, any, number[] | null]> { +export function Greet(str: string, people: $models.Person[] | null, $2: {"AnotherCount": number, "AnotherOne": $models.Person | null}, assoc: { [_ in `${number}`]?: boolean | null } | null, $4: (number | null)[] | null, ...other: string[]): $CancellablePromise<[$models.Person, any, number[] | null]> { return $Call.ByID(1411160069, str, people, $2, assoc, $4, other); } 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 5395305fc..56d3f00ec 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 @@ -3,6 +3,6 @@ export type Alias = Cyclic | null; -export type Cyclic = ({ [_: string]: Alias } | null)[] | null; +export type Cyclic = ({ [_ in 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/enum_map_keys/enummapservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/enummapservice.ts new file mode 100644 index 000000000..9c4eff47a --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/enummapservice.ts @@ -0,0 +1,57 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * EnumMapService tests various enum map key scenarios + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import { Call as $Call, CancellablePromise as $CancellablePromise } from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +/** + * GetColorCodes returns a map with uint8 enum keys + */ +export function GetColorCodes(): $CancellablePromise<{ [_ in $models.Color]?: string } | null> { + return $Call.ByID(2794981443); +} + +/** + * GetNestedEnumMap returns a map with enum keys and complex values + */ +export function GetNestedEnumMap(): $CancellablePromise<{ [_ in $models.Status]?: { [_ in $models.Priority]?: string } | null } | null> { + return $Call.ByID(3603489560); +} + +/** + * GetOptionalEnumMap returns a map with enum keys to optional values + */ +export function GetOptionalEnumMap(): $CancellablePromise<{ [_ in $models.Status]?: string | null } | null> { + return $Call.ByID(1871606385); +} + +/** + * GetPersonsByStatus returns a map with enum keys to struct values + */ +export function GetPersonsByStatus(): $CancellablePromise<{ [_ in $models.Status]?: $models.Person[] | null } | null> { + return $Call.ByID(2189502217); +} + +/** + * GetPriorityWeights returns a map with integer enum keys + */ +export function GetPriorityWeights(): $CancellablePromise<{ [_ in $models.Priority]?: number } | null> { + return $Call.ByID(1542216941); +} + +/** + * GetStatusMessages returns a map with string enum keys + */ +export function GetStatusMessages(): $CancellablePromise<{ [_ in $models.Status]?: string } | null> { + return $Call.ByID(1788640810); +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/index.ts new file mode 100644 index 000000000..cf39671cf --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/index.ts @@ -0,0 +1,17 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as EnumMapService from "./enummapservice.js"; +export { + EnumMapService +}; + +export { + Color, + Priority, + Status +} 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_map_keys/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/models.ts new file mode 100644 index 000000000..a2fe209a5 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=false/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/models.ts @@ -0,0 +1,53 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * Color represents color values + */ +export enum Color { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = 0, + + Red = 1, + Green = 2, + Blue = 3, +}; + +/** + * Person represents a person with status + */ +export interface Person { + "Name": string; + "Status": Status; +} + +/** + * Priority represents priority levels + */ +export enum Priority { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = 0, + + PriorityLow = 1, + PriorityMedium = 2, + PriorityHigh = 3, +}; + +/** + * Status represents different status values + */ +export enum Status { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = "", + + StatusPending = "pending", + StatusRunning = "running", + StatusCompleted = "completed", + StatusFailed = "failed", +}; 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 index e3aeb8a64..de52fd90d 100644 --- 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 @@ -16,6 +16,8 @@ export type { EmbeddedValue, EmbeddedValuePtr, GoodTildeCstrAlias, + IntAlias, + IntType, InterfaceCstrAlias, Maps, MixedCstrAlias, 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 index aaabd3502..2f0b0330d 100644 --- 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 @@ -19,733 +19,737 @@ export type EmbeddedValuePtr = string; export type GoodTildeCstrAlias = U; +export type IntAlias = number; + +export type IntType = number; + export type InterfaceCstrAlias = Y; export interface Maps { /** * Reject */ - "Bool": { [_: string]: number } | null; + "Bool": { [_ in string]?: number } | null; /** * Accept */ - "Int": { [_: `${number}`]: number } | null; + "Int": { [_ in `${number}`]?: number } | null; /** * Accept */ - "Uint": { [_: `${number}`]: number } | null; + "Uint": { [_ in `${number}`]?: number } | null; /** * Reject */ - "Float": { [_: string]: number } | null; + "Float": { [_ in string]?: number } | null; /** * Reject */ - "Complex": { [_: string]: number } | null; + "Complex": { [_ in string]?: number } | null; /** * Accept */ - "Byte": { [_: `${number}`]: number } | null; + "Byte": { [_ in `${number}`]?: number } | null; /** * Accept */ - "Rune": { [_: `${number}`]: number } | null; + "Rune": { [_ in `${number}`]?: number } | null; /** * Accept */ - "String": { [_: string]: number } | null; + "String": { [_ in string]?: number } | null; /** * Reject */ - "IntPtr": { [_: string]: number } | null; + "IntPtr": { [_ in string]?: number } | null; /** * Reject */ - "UintPtr": { [_: string]: number } | null; + "UintPtr": { [_ in string]?: number } | null; /** * Reject */ - "FloatPtr": { [_: string]: number } | null; + "FloatPtr": { [_ in string]?: number } | null; /** * Reject */ - "ComplexPtr": { [_: string]: number } | null; + "ComplexPtr": { [_ in string]?: number } | null; /** * Reject */ - "StringPtr": { [_: string]: number } | null; + "StringPtr": { [_ in string]?: number } | null; /** * Reject */ - "NTM": { [_: string]: number } | null; + "NTM": { [_ in string]?: number } | null; /** * Reject */ - "NTMPtr": { [_: string]: number } | null; + "NTMPtr": { [_ in string]?: number } | null; /** * Accept */ - "VTM": { [_: ValueTextMarshaler]: number } | null; + "VTM": { [_ in ValueTextMarshaler]?: number } | null; /** * Accept */ - "VTMPtr": { [_: ValueTextMarshaler]: number } | null; + "VTMPtr": { [_ in ValueTextMarshaler]?: number } | null; /** * Reject */ - "PTM": { [_: string]: number } | null; + "PTM": { [_ in string]?: number } | null; /** * Accept */ - "PTMPtr": { [_: PointerTextMarshaler]: number } | null; + "PTMPtr": { [_ in PointerTextMarshaler]?: number } | null; /** * Accept, hide */ - "JTM": { [_: string]: number } | null; + "JTM": { [_ in string]?: number } | null; /** * Accept, hide */ - "JTMPtr": { [_: string]: number } | null; + "JTMPtr": { [_ in string]?: number } | null; /** * Reject */ - "A": { [_: string]: number } | null; + "A": { [_ in string]?: number } | null; /** * Reject */ - "APtr": { [_: string]: number } | null; + "APtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "TM": { [_: string]: number } | null; + "TM": { [_ in string]?: number } | null; /** * Reject */ - "TMPtr": { [_: string]: number } | null; + "TMPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "CI": { [_: string]: number } | null; + "CI": { [_ in string]?: number } | null; /** * Reject */ - "CIPtr": { [_: string]: number } | null; + "CIPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "EI": { [_: string]: number } | null; + "EI": { [_ in string]?: number } | null; /** * Reject */ - "EIPtr": { [_: string]: number } | null; + "EIPtr": { [_ in string]?: number } | null; /** * Accept */ - "EV": { [_: EmbeddedValue]: number } | null; + "EV": { [_ in EmbeddedValue]?: number } | null; /** * Accept */ - "EVPtr": { [_: EmbeddedValue]: number } | null; + "EVPtr": { [_ in EmbeddedValue]?: number } | null; /** * Accept */ - "EVP": { [_: EmbeddedValuePtr]: number } | null; + "EVP": { [_ in EmbeddedValuePtr]?: number } | null; /** * Accept */ - "EVPPtr": { [_: EmbeddedValuePtr]: number } | null; + "EVPPtr": { [_ in EmbeddedValuePtr]?: number } | null; /** * Reject */ - "EP": { [_: string]: number } | null; + "EP": { [_ in string]?: number } | null; /** * Accept */ - "EPPtr": { [_: EmbeddedPointer]: number } | null; + "EPPtr": { [_ in EmbeddedPointer]?: number } | null; /** * Accept */ - "EPP": { [_: EmbeddedPointerPtr]: number } | null; + "EPP": { [_ in EmbeddedPointerPtr]?: number } | null; /** * Accept */ - "EPPPtr": { [_: EmbeddedPointerPtr]: number } | null; + "EPPPtr": { [_ in EmbeddedPointerPtr]?: number } | null; /** * Accept */ - "ECI": { [_: EmbeddedCustomInterface]: number } | null; + "ECI": { [_ in EmbeddedCustomInterface]?: number } | null; /** * Accept */ - "ECIPtr": { [_: EmbeddedCustomInterface]: number } | null; + "ECIPtr": { [_ in EmbeddedCustomInterface]?: number } | null; /** * Accept */ - "EOI": { [_: EmbeddedOriginalInterface]: number } | null; + "EOI": { [_ in EmbeddedOriginalInterface]?: number } | null; /** * Accept */ - "EOIPtr": { [_: EmbeddedOriginalInterface]: number } | null; + "EOIPtr": { [_ in EmbeddedOriginalInterface]?: number } | null; /** * Reject */ - "WT": { [_: string]: number } | null; + "WT": { [_ in string]?: number } | null; /** * Reject */ - "WA": { [_: string]: number } | null; + "WA": { [_ in string]?: number } | null; /** * Accept */ - "ST": { [_: StringType]: number } | null; + "ST": { [_ in StringType]?: number } | null; /** * Accept */ - "SA": { [_: StringAlias]: number } | null; + "SA": { [_ in StringAlias]?: number } | null; /** * Accept */ - "IntT": { [_: `${number}`]: number } | null; + "IntT": { [_ in IntType]?: number } | null; /** * Accept */ - "IntA": { [_: `${number}`]: number } | null; + "IntA": { [_ in IntAlias]?: number } | null; /** * Reject */ - "VT": { [_: string]: number } | null; + "VT": { [_ in string]?: number } | null; /** * Reject */ - "VTPtr": { [_: string]: number } | null; + "VTPtr": { [_ in string]?: number } | null; /** * Reject */ - "VPT": { [_: string]: number } | null; + "VPT": { [_ in string]?: number } | null; /** * Reject */ - "VPTPtr": { [_: string]: number } | null; + "VPTPtr": { [_ in string]?: number } | null; /** * Accept */ - "VA": { [_: ValueAlias]: number } | null; + "VA": { [_ in ValueAlias]?: number } | null; /** * Accept */ - "VAPtr": { [_: ValueAlias]: number } | null; + "VAPtr": { [_ in ValueAlias]?: number } | null; /** * Accept, hide */ - "VPA": { [_: string]: number } | null; + "VPA": { [_ in string]?: number } | null; /** * Reject */ - "VPAPtr": { [_: string]: number } | null; + "VPAPtr": { [_ in string]?: number } | null; /** * Reject */ - "PT": { [_: string]: number } | null; + "PT": { [_ in string]?: number } | null; /** * Reject */ - "PTPtr": { [_: string]: number } | null; + "PTPtr": { [_ in string]?: number } | null; /** * Reject */ - "PPT": { [_: string]: number } | null; + "PPT": { [_ in string]?: number } | null; /** * Reject */ - "PPTPtr": { [_: string]: number } | null; + "PPTPtr": { [_ in string]?: number } | null; /** * Reject */ - "PA": { [_: string]: number } | null; + "PA": { [_ in string]?: number } | null; /** * Accept */ - "PAPtr": { [_: PointerAlias]: number } | null; + "PAPtr": { [_ in PointerAlias]?: number } | null; /** * Accept, hide */ - "PPA": { [_: string]: number } | null; + "PPA": { [_ in string]?: number } | null; /** * Reject */ - "PPAPtr": { [_: string]: number } | null; + "PPAPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "IT": { [_: string]: number } | null; + "IT": { [_ in string]?: number } | null; /** * Reject */ - "ITPtr": { [_: string]: number } | null; + "ITPtr": { [_ in string]?: number } | null; /** * Reject */ - "IPT": { [_: string]: number } | null; + "IPT": { [_ in string]?: number } | null; /** * Reject */ - "IPTPtr": { [_: string]: number } | null; + "IPTPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "IA": { [_: string]: number } | null; + "IA": { [_ in string]?: number } | null; /** * Reject */ - "IAPtr": { [_: string]: number } | null; + "IAPtr": { [_ in string]?: number } | null; /** * Reject */ - "IPA": { [_: string]: number } | null; + "IPA": { [_ in string]?: number } | null; /** * Reject */ - "IPAPtr": { [_: string]: number } | null; + "IPAPtr": { [_ in string]?: number } | null; /** * Soft reject */ - "TPR": { [_: string]: number } | null; + "TPR": { [_ in string]?: number } | null; /** * Soft reject */ - "TPRPtr": { [_: string]: number } | null; + "TPRPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "TPS": { [_: string]: number } | null; + "TPS": { [_ in string]?: number } | null; /** * Soft reject */ - "TPSPtr": { [_: string]: number } | null; + "TPSPtr": { [_ in string]?: number } | null; /** * Soft reject */ - "TPT": { [_: string]: number } | null; + "TPT": { [_ in string]?: number } | null; /** * Soft reject */ - "TPTPtr": { [_: string]: number } | null; + "TPTPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "TPU": { [_: string]: number } | null; + "TPU": { [_ in string]?: number } | null; /** * Soft reject */ - "TPUPtr": { [_: string]: number } | null; + "TPUPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "TPV": { [_: string]: number } | null; + "TPV": { [_ in string]?: number } | null; /** * Soft reject */ - "TPVPtr": { [_: string]: number } | null; + "TPVPtr": { [_ in string]?: number } | null; /** * Soft reject */ - "TPW": { [_: string]: number } | null; + "TPW": { [_ in string]?: number } | null; /** * Accept, hide */ - "TPWPtr": { [_: string]: number } | null; + "TPWPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "TPX": { [_: string]: number } | null; + "TPX": { [_ in string]?: number } | null; /** * Soft reject */ - "TPXPtr": { [_: string]: number } | null; + "TPXPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "TPY": { [_: string]: number } | null; + "TPY": { [_ in string]?: number } | null; /** * Soft reject */ - "TPYPtr": { [_: string]: number } | null; + "TPYPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "TPZ": { [_: string]: number } | null; + "TPZ": { [_ in string]?: number } | null; /** * Soft reject */ - "TPZPtr": { [_: string]: number } | null; + "TPZPtr": { [_ in string]?: number } | null; /** * Soft reject */ - "GAR": { [_: string]: number } | null; + "GAR": { [_ in string]?: number } | null; /** * Soft reject */ - "GARPtr": { [_: string]: number } | null; + "GARPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "GAS": { [_: string]: number } | null; + "GAS": { [_ in string]?: number } | null; /** * Soft reject */ - "GASPtr": { [_: string]: number } | null; + "GASPtr": { [_ in string]?: number } | null; /** * Soft reject */ - "GAT": { [_: string]: number } | null; + "GAT": { [_ in string]?: number } | null; /** * Soft reject */ - "GATPtr": { [_: string]: number } | null; + "GATPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "GAU": { [_: string]: number } | null; + "GAU": { [_ in string]?: number } | null; /** * Soft reject */ - "GAUPtr": { [_: string]: number } | null; + "GAUPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "GAV": { [_: string]: number } | null; + "GAV": { [_ in string]?: number } | null; /** * Soft reject */ - "GAVPtr": { [_: string]: number } | null; + "GAVPtr": { [_ in string]?: number } | null; /** * Soft reject */ - "GAW": { [_: string]: number } | null; + "GAW": { [_ in string]?: number } | null; /** * Accept, hide */ - "GAWPtr": { [_: string]: number } | null; + "GAWPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "GAX": { [_: string]: number } | null; + "GAX": { [_ in string]?: number } | null; /** * Soft reject */ - "GAXPtr": { [_: string]: number } | null; + "GAXPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "GAY": { [_: string]: number } | null; + "GAY": { [_ in string]?: number } | null; /** * Soft reject */ - "GAYPtr": { [_: string]: number } | null; + "GAYPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "GAZ": { [_: string]: number } | null; + "GAZ": { [_ in string]?: number } | null; /** * Soft reject */ - "GAZPtr": { [_: string]: number } | null; - - /** - * Accept, hide - */ - "GACi": { [_: `${number}`]: number } | null; + "GAZPtr": { [_ in string]?: number } | null; /** * Accept */ - "GACV": { [_: ComparableCstrAlias]: number } | null; - - /** - * Reject - */ - "GACP": { [_: string]: number } | null; - - /** - * Reject - */ - "GACiPtr": { [_: string]: number } | null; - - /** - * Accept, hide - */ - "GACVPtr": { [_: string]: number } | null; - - /** - * Accept, hide - */ - "GACPPtr": { [_: string]: number } | null; - - /** - * Accept, hide - */ - "GABi": { [_: `${number}`]: number } | null; + "GACi": { [_ in ComparableCstrAlias]?: number } | null; /** * Accept */ - "GABs": { [_: BasicCstrAlias]: number } | null; + "GACV": { [_ in ComparableCstrAlias]?: number } | null; /** * Reject */ - "GABiPtr": { [_: string]: number } | null; + "GACP": { [_ in string]?: number } | null; /** * Reject */ - "GABT": { [_: string]: number } | null; + "GACiPtr": { [_ in string]?: number } | null; /** - * Reject + * Accept, hide */ - "GABTPtr": { [_: string]: number } | null; + "GACVPtr": { [_ in string]?: number } | null; + + /** + * Accept, hide + */ + "GACPPtr": { [_ in string]?: number } | null; /** * Accept */ - "GAGT": { [_: GoodTildeCstrAlias]: number } | null; - - /** - * Accept, hide - */ - "GAGTPtr": { [_: string]: number } | null; + "GABi": { [_ in BasicCstrAlias]?: number } | null; /** * Accept */ - "GANBV": { [_: NonBasicCstrAlias]: number } | null; - - /** - * Accept, hide - */ - "GANBP": { [_: string]: number } | null; - - /** - * Accept, hide - */ - "GANBVPtr": { [_: string]: number } | null; + "GABs": { [_ in BasicCstrAlias]?: number } | null; /** * Reject */ - "GANBPPtr": { [_: string]: number } | null; + "GABiPtr": { [_ in string]?: number } | null; + + /** + * Reject + */ + "GABT": { [_ in string]?: number } | null; + + /** + * Reject + */ + "GABTPtr": { [_ in string]?: number } | null; /** * Accept */ - "GAPlV1": { [_: PointableCstrAlias]: number } | null; + "GAGT": { [_ in GoodTildeCstrAlias]?: number } | null; + + /** + * Accept, hide + */ + "GAGTPtr": { [_ in string]?: number } | null; /** * Accept */ - "GAPlV2": { [_: PointableCstrAlias]: number } | null; + "GANBV": { [_ in NonBasicCstrAlias]?: number } | null; + + /** + * Accept, hide + */ + "GANBP": { [_ in string]?: number } | null; + + /** + * Accept, hide + */ + "GANBVPtr": { [_ in string]?: number } | null; /** * Reject */ - "GAPlP1": { [_: string]: number } | null; + "GANBPPtr": { [_ in string]?: number } | null; /** * Accept */ - "GAPlP2": { [_: PointableCstrAlias]: number } | null; - - /** - * Accept, hide - */ - "GAPlVPtr": { [_: string]: number } | null; - - /** - * Accept, hide - */ - "GAPlPPtr": { [_: string]: number } | null; - - /** - * Accept, hide - */ - "GAMi": { [_: `${number}`]: number } | null; + "GAPlV1": { [_ in PointableCstrAlias]?: number } | null; /** * Accept */ - "GAMS": { [_: MixedCstrAlias]: number } | null; + "GAPlV2": { [_ in PointableCstrAlias]?: number } | null; + + /** + * Reject + */ + "GAPlP1": { [_ in string]?: number } | null; /** * Accept */ - "GAMV": { [_: MixedCstrAlias]: number } | null; - - /** - * Reject - */ - "GAMSPtr": { [_: string]: number } | null; + "GAPlP2": { [_ in PointableCstrAlias]?: number } | null; /** * Accept, hide */ - "GAMVPtr": { [_: string]: number } | null; + "GAPlVPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "GAII": { [_: string]: number } | null; + "GAPlPPtr": { [_ in string]?: number } | null; /** * Accept */ - "GAIV": { [_: InterfaceCstrAlias]: number } | null; + "GAMi": { [_ in MixedCstrAlias]?: number } | null; /** - * Accept, hide + * Accept */ - "GAIP": { [_: string]: number } | null; + "GAMS": { [_ in MixedCstrAlias]?: number } | null; + + /** + * Accept + */ + "GAMV": { [_ in MixedCstrAlias]?: number } | null; /** * Reject */ - "GAIIPtr": { [_: string]: number } | null; + "GAMSPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "GAIVPtr": { [_: string]: number } | null; - - /** - * Reject - */ - "GAIPPtr": { [_: string]: number } | null; + "GAMVPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "GAPrV": { [_: string]: number } | null; + "GAII": { [_ in string]?: number } | null; + + /** + * Accept + */ + "GAIV": { [_ in InterfaceCstrAlias]?: number } | null; /** * Accept, hide */ - "GAPrP": { [_: string]: number } | null; + "GAIP": { [_ in string]?: number } | null; /** * Reject */ - "GAPrVPtr": { [_: string]: number } | null; + "GAIIPtr": { [_ in string]?: number } | null; + + /** + * Accept, hide + */ + "GAIVPtr": { [_ in string]?: number } | null; /** * Reject */ - "GAPrPPtr": { [_: string]: number } | null; + "GAIPPtr": { [_ in string]?: number } | null; + + /** + * Accept, hide + */ + "GAPrV": { [_ in string]?: number } | null; + + /** + * Accept, hide + */ + "GAPrP": { [_ in string]?: number } | null; + + /** + * Reject + */ + "GAPrVPtr": { [_ in string]?: number } | null; + + /** + * Reject + */ + "GAPrPPtr": { [_ in string]?: number } | null; } export type MixedCstrAlias = X; 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 c42cce373..45c7f2785 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 @@ -18,7 +18,7 @@ export interface HowDifferent { /** * But they may have many differences. */ - "Differences": ({ [_: string]: How } | null)[] | null; + "Differences": ({ [_ in string]?: How } | null)[] | 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_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 ef5015467..ab5e878b1 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 @@ -81,19 +81,19 @@ export function IntPointerInputNamedOutputs($in: number | null): $CancellablePro return $Call.ByID(2718999663, $in); } -export function MapIntInt($in: { [_: `${number}`]: number } | null): $CancellablePromise { +export function MapIntInt($in: { [_ in `${number}`]?: number } | null): $CancellablePromise { return $Call.ByID(2386486356, $in); } -export function MapIntIntPointer($in: { [_: `${number}`]: number | null } | null): $CancellablePromise { +export function MapIntIntPointer($in: { [_ in `${number}`]?: number | null } | null): $CancellablePromise { return $Call.ByID(2163571325, $in); } -export function MapIntSliceInt($in: { [_: `${number}`]: number[] | null } | null): $CancellablePromise { +export function MapIntSliceInt($in: { [_ in `${number}`]?: number[] | null } | null): $CancellablePromise { return $Call.ByID(2900172572, $in); } -export function MapIntSliceIntInMapIntSliceIntOut($in: { [_: `${number}`]: number[] | null } | null): $CancellablePromise<{ [_: `${number}`]: number[] | null } | null> { +export function MapIntSliceIntInMapIntSliceIntOut($in: { [_ in `${number}`]?: number[] | null } | null): $CancellablePromise<{ [_ in `${number}`]?: number[] | null } | null> { return $Call.ByID(881980169, $in); } @@ -113,7 +113,7 @@ export function PointerFloat64InFloat64Out($in: number | null): $CancellableProm return $Call.ByID(2124953624, $in); } -export function PointerMapIntInt($in: { [_: `${number}`]: number } | null): $CancellablePromise { +export function PointerMapIntInt($in: { [_ in `${number}`]?: number } | null): $CancellablePromise { return $Call.ByID(3516977899, $in); } 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 ef5015467..ab5e878b1 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 @@ -81,19 +81,19 @@ export function IntPointerInputNamedOutputs($in: number | null): $CancellablePro return $Call.ByID(2718999663, $in); } -export function MapIntInt($in: { [_: `${number}`]: number } | null): $CancellablePromise { +export function MapIntInt($in: { [_ in `${number}`]?: number } | null): $CancellablePromise { return $Call.ByID(2386486356, $in); } -export function MapIntIntPointer($in: { [_: `${number}`]: number | null } | null): $CancellablePromise { +export function MapIntIntPointer($in: { [_ in `${number}`]?: number | null } | null): $CancellablePromise { return $Call.ByID(2163571325, $in); } -export function MapIntSliceInt($in: { [_: `${number}`]: number[] | null } | null): $CancellablePromise { +export function MapIntSliceInt($in: { [_ in `${number}`]?: number[] | null } | null): $CancellablePromise { return $Call.ByID(2900172572, $in); } -export function MapIntSliceIntInMapIntSliceIntOut($in: { [_: `${number}`]: number[] | null } | null): $CancellablePromise<{ [_: `${number}`]: number[] | null } | null> { +export function MapIntSliceIntInMapIntSliceIntOut($in: { [_ in `${number}`]?: number[] | null } | null): $CancellablePromise<{ [_ in `${number}`]?: number[] | null } | null> { return $Call.ByID(881980169, $in); } @@ -113,7 +113,7 @@ export function PointerFloat64InFloat64Out($in: number | null): $CancellableProm return $Call.ByID(2124953624, $in); } -export function PointerMapIntInt($in: { [_: `${number}`]: number } | null): $CancellablePromise { +export function PointerMapIntInt($in: { [_ in `${number}`]?: number } | null): $CancellablePromise { return $Call.ByID(3516977899, $in); } diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/eventdata.d.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/eventdata.d.ts index 4384cef06..be1730836 100644 --- a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/eventdata.d.ts +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/eventdata.d.ts @@ -19,7 +19,7 @@ declare module "/wails/runtime.js" { namespace Events { interface CustomEvents { "events_only:class": events_only$0.SomeClass; - "events_only:map": { [_: string]: number[] | null } | null; + "events_only:map": { [_ in string]?: number[] | null } | null; "events_only:nodata": void; "events_only:other": more$0.StringPtr[] | null; "events_only:string": string; 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 14b8879f7..32e6d64cb 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 @@ -72,7 +72,7 @@ export type GenericAlias = T; /** * A generic alias that wraps a map. */ -export type GenericMapAlias = { [_: string]: U } | null; +export type GenericMapAlias = { [_ in string]?: U } | null; /** * A generic struct containing an alias. 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 0c3ef75cb..db3c98f3d 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 @@ -19,6 +19,6 @@ import * as $models from "./models.js"; * It has a multiline doc comment * The comment has even some * / traps!! */ -export function Greet(str: string, people: $models.Person[] | null, $2: {"AnotherCount": number, "AnotherOne": $models.Person | null}, assoc: { [_: `${number}`]: boolean | null } | null, $4: (number | null)[] | null, ...other: string[]): $CancellablePromise<[$models.Person, any, number[] | null]> { +export function Greet(str: string, people: $models.Person[] | null, $2: {"AnotherCount": number, "AnotherOne": $models.Person | null}, assoc: { [_ in `${number}`]?: boolean | null } | null, $4: (number | null)[] | null, ...other: string[]): $CancellablePromise<[$models.Person, any, number[] | null]> { return $Call.ByName("main.GreetService.Greet", str, people, $2, assoc, $4, other); } 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 5395305fc..56d3f00ec 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 @@ -3,6 +3,6 @@ export type Alias = Cyclic | null; -export type Cyclic = ({ [_: string]: Alias } | null)[] | null; +export type Cyclic = ({ [_ in 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/enum_map_keys/enummapservice.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/enummapservice.ts new file mode 100644 index 000000000..c2654cb89 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/enummapservice.ts @@ -0,0 +1,57 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * EnumMapService tests various enum map key scenarios + * @module + */ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import { Call as $Call, CancellablePromise as $CancellablePromise } from "/wails/runtime.js"; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Unused imports +import * as $models from "./models.js"; + +/** + * GetColorCodes returns a map with uint8 enum keys + */ +export function GetColorCodes(): $CancellablePromise<{ [_ in $models.Color]?: string } | null> { + return $Call.ByName("main.EnumMapService.GetColorCodes"); +} + +/** + * GetNestedEnumMap returns a map with enum keys and complex values + */ +export function GetNestedEnumMap(): $CancellablePromise<{ [_ in $models.Status]?: { [_ in $models.Priority]?: string } | null } | null> { + return $Call.ByName("main.EnumMapService.GetNestedEnumMap"); +} + +/** + * GetOptionalEnumMap returns a map with enum keys to optional values + */ +export function GetOptionalEnumMap(): $CancellablePromise<{ [_ in $models.Status]?: string | null } | null> { + return $Call.ByName("main.EnumMapService.GetOptionalEnumMap"); +} + +/** + * GetPersonsByStatus returns a map with enum keys to struct values + */ +export function GetPersonsByStatus(): $CancellablePromise<{ [_ in $models.Status]?: $models.Person[] | null } | null> { + return $Call.ByName("main.EnumMapService.GetPersonsByStatus"); +} + +/** + * GetPriorityWeights returns a map with integer enum keys + */ +export function GetPriorityWeights(): $CancellablePromise<{ [_ in $models.Priority]?: number } | null> { + return $Call.ByName("main.EnumMapService.GetPriorityWeights"); +} + +/** + * GetStatusMessages returns a map with string enum keys + */ +export function GetStatusMessages(): $CancellablePromise<{ [_ in $models.Status]?: string } | null> { + return $Call.ByName("main.EnumMapService.GetStatusMessages"); +} diff --git a/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/index.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/index.ts new file mode 100644 index 000000000..cf39671cf --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/index.ts @@ -0,0 +1,17 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import * as EnumMapService from "./enummapservice.js"; +export { + EnumMapService +}; + +export { + Color, + Priority, + Status +} 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_map_keys/models.ts b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/models.ts new file mode 100644 index 000000000..a2fe209a5 --- /dev/null +++ b/v3/internal/generator/testdata/output/lang=TS/UseInterfaces=true/UseNames=true/github.com/wailsapp/wails/v3/internal/generator/testcases/enum_map_keys/models.ts @@ -0,0 +1,53 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +/** + * Color represents color values + */ +export enum Color { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = 0, + + Red = 1, + Green = 2, + Blue = 3, +}; + +/** + * Person represents a person with status + */ +export interface Person { + "Name": string; + "Status": Status; +} + +/** + * Priority represents priority levels + */ +export enum Priority { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = 0, + + PriorityLow = 1, + PriorityMedium = 2, + PriorityHigh = 3, +}; + +/** + * Status represents different status values + */ +export enum Status { + /** + * The Go zero value for the underlying type of the enum. + */ + $zero = "", + + StatusPending = "pending", + StatusRunning = "running", + StatusCompleted = "completed", + StatusFailed = "failed", +}; 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 index e3aeb8a64..de52fd90d 100644 --- 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 @@ -16,6 +16,8 @@ export type { EmbeddedValue, EmbeddedValuePtr, GoodTildeCstrAlias, + IntAlias, + IntType, InterfaceCstrAlias, Maps, MixedCstrAlias, 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 index aaabd3502..2f0b0330d 100644 --- 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 @@ -19,733 +19,737 @@ export type EmbeddedValuePtr = string; export type GoodTildeCstrAlias = U; +export type IntAlias = number; + +export type IntType = number; + export type InterfaceCstrAlias = Y; export interface Maps { /** * Reject */ - "Bool": { [_: string]: number } | null; + "Bool": { [_ in string]?: number } | null; /** * Accept */ - "Int": { [_: `${number}`]: number } | null; + "Int": { [_ in `${number}`]?: number } | null; /** * Accept */ - "Uint": { [_: `${number}`]: number } | null; + "Uint": { [_ in `${number}`]?: number } | null; /** * Reject */ - "Float": { [_: string]: number } | null; + "Float": { [_ in string]?: number } | null; /** * Reject */ - "Complex": { [_: string]: number } | null; + "Complex": { [_ in string]?: number } | null; /** * Accept */ - "Byte": { [_: `${number}`]: number } | null; + "Byte": { [_ in `${number}`]?: number } | null; /** * Accept */ - "Rune": { [_: `${number}`]: number } | null; + "Rune": { [_ in `${number}`]?: number } | null; /** * Accept */ - "String": { [_: string]: number } | null; + "String": { [_ in string]?: number } | null; /** * Reject */ - "IntPtr": { [_: string]: number } | null; + "IntPtr": { [_ in string]?: number } | null; /** * Reject */ - "UintPtr": { [_: string]: number } | null; + "UintPtr": { [_ in string]?: number } | null; /** * Reject */ - "FloatPtr": { [_: string]: number } | null; + "FloatPtr": { [_ in string]?: number } | null; /** * Reject */ - "ComplexPtr": { [_: string]: number } | null; + "ComplexPtr": { [_ in string]?: number } | null; /** * Reject */ - "StringPtr": { [_: string]: number } | null; + "StringPtr": { [_ in string]?: number } | null; /** * Reject */ - "NTM": { [_: string]: number } | null; + "NTM": { [_ in string]?: number } | null; /** * Reject */ - "NTMPtr": { [_: string]: number } | null; + "NTMPtr": { [_ in string]?: number } | null; /** * Accept */ - "VTM": { [_: ValueTextMarshaler]: number } | null; + "VTM": { [_ in ValueTextMarshaler]?: number } | null; /** * Accept */ - "VTMPtr": { [_: ValueTextMarshaler]: number } | null; + "VTMPtr": { [_ in ValueTextMarshaler]?: number } | null; /** * Reject */ - "PTM": { [_: string]: number } | null; + "PTM": { [_ in string]?: number } | null; /** * Accept */ - "PTMPtr": { [_: PointerTextMarshaler]: number } | null; + "PTMPtr": { [_ in PointerTextMarshaler]?: number } | null; /** * Accept, hide */ - "JTM": { [_: string]: number } | null; + "JTM": { [_ in string]?: number } | null; /** * Accept, hide */ - "JTMPtr": { [_: string]: number } | null; + "JTMPtr": { [_ in string]?: number } | null; /** * Reject */ - "A": { [_: string]: number } | null; + "A": { [_ in string]?: number } | null; /** * Reject */ - "APtr": { [_: string]: number } | null; + "APtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "TM": { [_: string]: number } | null; + "TM": { [_ in string]?: number } | null; /** * Reject */ - "TMPtr": { [_: string]: number } | null; + "TMPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "CI": { [_: string]: number } | null; + "CI": { [_ in string]?: number } | null; /** * Reject */ - "CIPtr": { [_: string]: number } | null; + "CIPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "EI": { [_: string]: number } | null; + "EI": { [_ in string]?: number } | null; /** * Reject */ - "EIPtr": { [_: string]: number } | null; + "EIPtr": { [_ in string]?: number } | null; /** * Accept */ - "EV": { [_: EmbeddedValue]: number } | null; + "EV": { [_ in EmbeddedValue]?: number } | null; /** * Accept */ - "EVPtr": { [_: EmbeddedValue]: number } | null; + "EVPtr": { [_ in EmbeddedValue]?: number } | null; /** * Accept */ - "EVP": { [_: EmbeddedValuePtr]: number } | null; + "EVP": { [_ in EmbeddedValuePtr]?: number } | null; /** * Accept */ - "EVPPtr": { [_: EmbeddedValuePtr]: number } | null; + "EVPPtr": { [_ in EmbeddedValuePtr]?: number } | null; /** * Reject */ - "EP": { [_: string]: number } | null; + "EP": { [_ in string]?: number } | null; /** * Accept */ - "EPPtr": { [_: EmbeddedPointer]: number } | null; + "EPPtr": { [_ in EmbeddedPointer]?: number } | null; /** * Accept */ - "EPP": { [_: EmbeddedPointerPtr]: number } | null; + "EPP": { [_ in EmbeddedPointerPtr]?: number } | null; /** * Accept */ - "EPPPtr": { [_: EmbeddedPointerPtr]: number } | null; + "EPPPtr": { [_ in EmbeddedPointerPtr]?: number } | null; /** * Accept */ - "ECI": { [_: EmbeddedCustomInterface]: number } | null; + "ECI": { [_ in EmbeddedCustomInterface]?: number } | null; /** * Accept */ - "ECIPtr": { [_: EmbeddedCustomInterface]: number } | null; + "ECIPtr": { [_ in EmbeddedCustomInterface]?: number } | null; /** * Accept */ - "EOI": { [_: EmbeddedOriginalInterface]: number } | null; + "EOI": { [_ in EmbeddedOriginalInterface]?: number } | null; /** * Accept */ - "EOIPtr": { [_: EmbeddedOriginalInterface]: number } | null; + "EOIPtr": { [_ in EmbeddedOriginalInterface]?: number } | null; /** * Reject */ - "WT": { [_: string]: number } | null; + "WT": { [_ in string]?: number } | null; /** * Reject */ - "WA": { [_: string]: number } | null; + "WA": { [_ in string]?: number } | null; /** * Accept */ - "ST": { [_: StringType]: number } | null; + "ST": { [_ in StringType]?: number } | null; /** * Accept */ - "SA": { [_: StringAlias]: number } | null; + "SA": { [_ in StringAlias]?: number } | null; /** * Accept */ - "IntT": { [_: `${number}`]: number } | null; + "IntT": { [_ in IntType]?: number } | null; /** * Accept */ - "IntA": { [_: `${number}`]: number } | null; + "IntA": { [_ in IntAlias]?: number } | null; /** * Reject */ - "VT": { [_: string]: number } | null; + "VT": { [_ in string]?: number } | null; /** * Reject */ - "VTPtr": { [_: string]: number } | null; + "VTPtr": { [_ in string]?: number } | null; /** * Reject */ - "VPT": { [_: string]: number } | null; + "VPT": { [_ in string]?: number } | null; /** * Reject */ - "VPTPtr": { [_: string]: number } | null; + "VPTPtr": { [_ in string]?: number } | null; /** * Accept */ - "VA": { [_: ValueAlias]: number } | null; + "VA": { [_ in ValueAlias]?: number } | null; /** * Accept */ - "VAPtr": { [_: ValueAlias]: number } | null; + "VAPtr": { [_ in ValueAlias]?: number } | null; /** * Accept, hide */ - "VPA": { [_: string]: number } | null; + "VPA": { [_ in string]?: number } | null; /** * Reject */ - "VPAPtr": { [_: string]: number } | null; + "VPAPtr": { [_ in string]?: number } | null; /** * Reject */ - "PT": { [_: string]: number } | null; + "PT": { [_ in string]?: number } | null; /** * Reject */ - "PTPtr": { [_: string]: number } | null; + "PTPtr": { [_ in string]?: number } | null; /** * Reject */ - "PPT": { [_: string]: number } | null; + "PPT": { [_ in string]?: number } | null; /** * Reject */ - "PPTPtr": { [_: string]: number } | null; + "PPTPtr": { [_ in string]?: number } | null; /** * Reject */ - "PA": { [_: string]: number } | null; + "PA": { [_ in string]?: number } | null; /** * Accept */ - "PAPtr": { [_: PointerAlias]: number } | null; + "PAPtr": { [_ in PointerAlias]?: number } | null; /** * Accept, hide */ - "PPA": { [_: string]: number } | null; + "PPA": { [_ in string]?: number } | null; /** * Reject */ - "PPAPtr": { [_: string]: number } | null; + "PPAPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "IT": { [_: string]: number } | null; + "IT": { [_ in string]?: number } | null; /** * Reject */ - "ITPtr": { [_: string]: number } | null; + "ITPtr": { [_ in string]?: number } | null; /** * Reject */ - "IPT": { [_: string]: number } | null; + "IPT": { [_ in string]?: number } | null; /** * Reject */ - "IPTPtr": { [_: string]: number } | null; + "IPTPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "IA": { [_: string]: number } | null; + "IA": { [_ in string]?: number } | null; /** * Reject */ - "IAPtr": { [_: string]: number } | null; + "IAPtr": { [_ in string]?: number } | null; /** * Reject */ - "IPA": { [_: string]: number } | null; + "IPA": { [_ in string]?: number } | null; /** * Reject */ - "IPAPtr": { [_: string]: number } | null; + "IPAPtr": { [_ in string]?: number } | null; /** * Soft reject */ - "TPR": { [_: string]: number } | null; + "TPR": { [_ in string]?: number } | null; /** * Soft reject */ - "TPRPtr": { [_: string]: number } | null; + "TPRPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "TPS": { [_: string]: number } | null; + "TPS": { [_ in string]?: number } | null; /** * Soft reject */ - "TPSPtr": { [_: string]: number } | null; + "TPSPtr": { [_ in string]?: number } | null; /** * Soft reject */ - "TPT": { [_: string]: number } | null; + "TPT": { [_ in string]?: number } | null; /** * Soft reject */ - "TPTPtr": { [_: string]: number } | null; + "TPTPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "TPU": { [_: string]: number } | null; + "TPU": { [_ in string]?: number } | null; /** * Soft reject */ - "TPUPtr": { [_: string]: number } | null; + "TPUPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "TPV": { [_: string]: number } | null; + "TPV": { [_ in string]?: number } | null; /** * Soft reject */ - "TPVPtr": { [_: string]: number } | null; + "TPVPtr": { [_ in string]?: number } | null; /** * Soft reject */ - "TPW": { [_: string]: number } | null; + "TPW": { [_ in string]?: number } | null; /** * Accept, hide */ - "TPWPtr": { [_: string]: number } | null; + "TPWPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "TPX": { [_: string]: number } | null; + "TPX": { [_ in string]?: number } | null; /** * Soft reject */ - "TPXPtr": { [_: string]: number } | null; + "TPXPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "TPY": { [_: string]: number } | null; + "TPY": { [_ in string]?: number } | null; /** * Soft reject */ - "TPYPtr": { [_: string]: number } | null; + "TPYPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "TPZ": { [_: string]: number } | null; + "TPZ": { [_ in string]?: number } | null; /** * Soft reject */ - "TPZPtr": { [_: string]: number } | null; + "TPZPtr": { [_ in string]?: number } | null; /** * Soft reject */ - "GAR": { [_: string]: number } | null; + "GAR": { [_ in string]?: number } | null; /** * Soft reject */ - "GARPtr": { [_: string]: number } | null; + "GARPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "GAS": { [_: string]: number } | null; + "GAS": { [_ in string]?: number } | null; /** * Soft reject */ - "GASPtr": { [_: string]: number } | null; + "GASPtr": { [_ in string]?: number } | null; /** * Soft reject */ - "GAT": { [_: string]: number } | null; + "GAT": { [_ in string]?: number } | null; /** * Soft reject */ - "GATPtr": { [_: string]: number } | null; + "GATPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "GAU": { [_: string]: number } | null; + "GAU": { [_ in string]?: number } | null; /** * Soft reject */ - "GAUPtr": { [_: string]: number } | null; + "GAUPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "GAV": { [_: string]: number } | null; + "GAV": { [_ in string]?: number } | null; /** * Soft reject */ - "GAVPtr": { [_: string]: number } | null; + "GAVPtr": { [_ in string]?: number } | null; /** * Soft reject */ - "GAW": { [_: string]: number } | null; + "GAW": { [_ in string]?: number } | null; /** * Accept, hide */ - "GAWPtr": { [_: string]: number } | null; + "GAWPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "GAX": { [_: string]: number } | null; + "GAX": { [_ in string]?: number } | null; /** * Soft reject */ - "GAXPtr": { [_: string]: number } | null; + "GAXPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "GAY": { [_: string]: number } | null; + "GAY": { [_ in string]?: number } | null; /** * Soft reject */ - "GAYPtr": { [_: string]: number } | null; + "GAYPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "GAZ": { [_: string]: number } | null; + "GAZ": { [_ in string]?: number } | null; /** * Soft reject */ - "GAZPtr": { [_: string]: number } | null; - - /** - * Accept, hide - */ - "GACi": { [_: `${number}`]: number } | null; + "GAZPtr": { [_ in string]?: number } | null; /** * Accept */ - "GACV": { [_: ComparableCstrAlias]: number } | null; - - /** - * Reject - */ - "GACP": { [_: string]: number } | null; - - /** - * Reject - */ - "GACiPtr": { [_: string]: number } | null; - - /** - * Accept, hide - */ - "GACVPtr": { [_: string]: number } | null; - - /** - * Accept, hide - */ - "GACPPtr": { [_: string]: number } | null; - - /** - * Accept, hide - */ - "GABi": { [_: `${number}`]: number } | null; + "GACi": { [_ in ComparableCstrAlias]?: number } | null; /** * Accept */ - "GABs": { [_: BasicCstrAlias]: number } | null; + "GACV": { [_ in ComparableCstrAlias]?: number } | null; /** * Reject */ - "GABiPtr": { [_: string]: number } | null; + "GACP": { [_ in string]?: number } | null; /** * Reject */ - "GABT": { [_: string]: number } | null; + "GACiPtr": { [_ in string]?: number } | null; /** - * Reject + * Accept, hide */ - "GABTPtr": { [_: string]: number } | null; + "GACVPtr": { [_ in string]?: number } | null; + + /** + * Accept, hide + */ + "GACPPtr": { [_ in string]?: number } | null; /** * Accept */ - "GAGT": { [_: GoodTildeCstrAlias]: number } | null; - - /** - * Accept, hide - */ - "GAGTPtr": { [_: string]: number } | null; + "GABi": { [_ in BasicCstrAlias]?: number } | null; /** * Accept */ - "GANBV": { [_: NonBasicCstrAlias]: number } | null; - - /** - * Accept, hide - */ - "GANBP": { [_: string]: number } | null; - - /** - * Accept, hide - */ - "GANBVPtr": { [_: string]: number } | null; + "GABs": { [_ in BasicCstrAlias]?: number } | null; /** * Reject */ - "GANBPPtr": { [_: string]: number } | null; + "GABiPtr": { [_ in string]?: number } | null; + + /** + * Reject + */ + "GABT": { [_ in string]?: number } | null; + + /** + * Reject + */ + "GABTPtr": { [_ in string]?: number } | null; /** * Accept */ - "GAPlV1": { [_: PointableCstrAlias]: number } | null; + "GAGT": { [_ in GoodTildeCstrAlias]?: number } | null; + + /** + * Accept, hide + */ + "GAGTPtr": { [_ in string]?: number } | null; /** * Accept */ - "GAPlV2": { [_: PointableCstrAlias]: number } | null; + "GANBV": { [_ in NonBasicCstrAlias]?: number } | null; + + /** + * Accept, hide + */ + "GANBP": { [_ in string]?: number } | null; + + /** + * Accept, hide + */ + "GANBVPtr": { [_ in string]?: number } | null; /** * Reject */ - "GAPlP1": { [_: string]: number } | null; + "GANBPPtr": { [_ in string]?: number } | null; /** * Accept */ - "GAPlP2": { [_: PointableCstrAlias]: number } | null; - - /** - * Accept, hide - */ - "GAPlVPtr": { [_: string]: number } | null; - - /** - * Accept, hide - */ - "GAPlPPtr": { [_: string]: number } | null; - - /** - * Accept, hide - */ - "GAMi": { [_: `${number}`]: number } | null; + "GAPlV1": { [_ in PointableCstrAlias]?: number } | null; /** * Accept */ - "GAMS": { [_: MixedCstrAlias]: number } | null; + "GAPlV2": { [_ in PointableCstrAlias]?: number } | null; + + /** + * Reject + */ + "GAPlP1": { [_ in string]?: number } | null; /** * Accept */ - "GAMV": { [_: MixedCstrAlias]: number } | null; - - /** - * Reject - */ - "GAMSPtr": { [_: string]: number } | null; + "GAPlP2": { [_ in PointableCstrAlias]?: number } | null; /** * Accept, hide */ - "GAMVPtr": { [_: string]: number } | null; + "GAPlVPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "GAII": { [_: string]: number } | null; + "GAPlPPtr": { [_ in string]?: number } | null; /** * Accept */ - "GAIV": { [_: InterfaceCstrAlias]: number } | null; + "GAMi": { [_ in MixedCstrAlias]?: number } | null; /** - * Accept, hide + * Accept */ - "GAIP": { [_: string]: number } | null; + "GAMS": { [_ in MixedCstrAlias]?: number } | null; + + /** + * Accept + */ + "GAMV": { [_ in MixedCstrAlias]?: number } | null; /** * Reject */ - "GAIIPtr": { [_: string]: number } | null; + "GAMSPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "GAIVPtr": { [_: string]: number } | null; - - /** - * Reject - */ - "GAIPPtr": { [_: string]: number } | null; + "GAMVPtr": { [_ in string]?: number } | null; /** * Accept, hide */ - "GAPrV": { [_: string]: number } | null; + "GAII": { [_ in string]?: number } | null; + + /** + * Accept + */ + "GAIV": { [_ in InterfaceCstrAlias]?: number } | null; /** * Accept, hide */ - "GAPrP": { [_: string]: number } | null; + "GAIP": { [_ in string]?: number } | null; /** * Reject */ - "GAPrVPtr": { [_: string]: number } | null; + "GAIIPtr": { [_ in string]?: number } | null; + + /** + * Accept, hide + */ + "GAIVPtr": { [_ in string]?: number } | null; /** * Reject */ - "GAPrPPtr": { [_: string]: number } | null; + "GAIPPtr": { [_ in string]?: number } | null; + + /** + * Accept, hide + */ + "GAPrV": { [_ in string]?: number } | null; + + /** + * Accept, hide + */ + "GAPrP": { [_ in string]?: number } | null; + + /** + * Reject + */ + "GAPrVPtr": { [_ in string]?: number } | null; + + /** + * Reject + */ + "GAPrPPtr": { [_ in string]?: number } | null; } export type MixedCstrAlias = X; 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 c42cce373..45c7f2785 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 @@ -18,7 +18,7 @@ export interface HowDifferent { /** * But they may have many differences. */ - "Differences": ({ [_: string]: How } | null)[] | null; + "Differences": ({ [_ in string]?: How } | null)[] | 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_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 b8abcb9a6..19cbead4e 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 @@ -81,19 +81,19 @@ export function IntPointerInputNamedOutputs($in: number | null): $CancellablePro return $Call.ByName("main.GreetService.IntPointerInputNamedOutputs", $in); } -export function MapIntInt($in: { [_: `${number}`]: number } | null): $CancellablePromise { +export function MapIntInt($in: { [_ in `${number}`]?: number } | null): $CancellablePromise { return $Call.ByName("main.GreetService.MapIntInt", $in); } -export function MapIntIntPointer($in: { [_: `${number}`]: number | null } | null): $CancellablePromise { +export function MapIntIntPointer($in: { [_ in `${number}`]?: number | null } | null): $CancellablePromise { return $Call.ByName("main.GreetService.MapIntIntPointer", $in); } -export function MapIntSliceInt($in: { [_: `${number}`]: number[] | null } | null): $CancellablePromise { +export function MapIntSliceInt($in: { [_ in `${number}`]?: number[] | null } | null): $CancellablePromise { return $Call.ByName("main.GreetService.MapIntSliceInt", $in); } -export function MapIntSliceIntInMapIntSliceIntOut($in: { [_: `${number}`]: number[] | null } | null): $CancellablePromise<{ [_: `${number}`]: number[] | null } | null> { +export function MapIntSliceIntInMapIntSliceIntOut($in: { [_ in `${number}`]?: number[] | null } | null): $CancellablePromise<{ [_ in `${number}`]?: number[] | null } | null> { return $Call.ByName("main.GreetService.MapIntSliceIntInMapIntSliceIntOut", $in); } @@ -113,7 +113,7 @@ export function PointerFloat64InFloat64Out($in: number | null): $CancellableProm return $Call.ByName("main.GreetService.PointerFloat64InFloat64Out", $in); } -export function PointerMapIntInt($in: { [_: `${number}`]: number } | null): $CancellablePromise { +export function PointerMapIntInt($in: { [_ in `${number}`]?: number } | null): $CancellablePromise { return $Call.ByName("main.GreetService.PointerMapIntInt", $in); } 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 b8abcb9a6..19cbead4e 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 @@ -81,19 +81,19 @@ export function IntPointerInputNamedOutputs($in: number | null): $CancellablePro return $Call.ByName("main.GreetService.IntPointerInputNamedOutputs", $in); } -export function MapIntInt($in: { [_: `${number}`]: number } | null): $CancellablePromise { +export function MapIntInt($in: { [_ in `${number}`]?: number } | null): $CancellablePromise { return $Call.ByName("main.GreetService.MapIntInt", $in); } -export function MapIntIntPointer($in: { [_: `${number}`]: number | null } | null): $CancellablePromise { +export function MapIntIntPointer($in: { [_ in `${number}`]?: number | null } | null): $CancellablePromise { return $Call.ByName("main.GreetService.MapIntIntPointer", $in); } -export function MapIntSliceInt($in: { [_: `${number}`]: number[] | null } | null): $CancellablePromise { +export function MapIntSliceInt($in: { [_ in `${number}`]?: number[] | null } | null): $CancellablePromise { return $Call.ByName("main.GreetService.MapIntSliceInt", $in); } -export function MapIntSliceIntInMapIntSliceIntOut($in: { [_: `${number}`]: number[] | null } | null): $CancellablePromise<{ [_: `${number}`]: number[] | null } | null> { +export function MapIntSliceIntInMapIntSliceIntOut($in: { [_ in `${number}`]?: number[] | null } | null): $CancellablePromise<{ [_ in `${number}`]?: number[] | null } | null> { return $Call.ByName("main.GreetService.MapIntSliceIntInMapIntSliceIntOut", $in); } @@ -113,7 +113,7 @@ export function PointerFloat64InFloat64Out($in: number | null): $CancellableProm return $Call.ByName("main.GreetService.PointerFloat64InFloat64Out", $in); } -export function PointerMapIntInt($in: { [_: `${number}`]: number } | null): $CancellablePromise { +export function PointerMapIntInt($in: { [_ in `${number}`]?: number } | null): $CancellablePromise { return $Call.ByName("main.GreetService.PointerMapIntInt", $in); } diff --git a/v3/internal/runtime/desktop/@wailsio/runtime/src/create.ts b/v3/internal/runtime/desktop/@wailsio/runtime/src/create.ts index 56de58add..e009a97b3 100644 --- a/v3/internal/runtime/desktop/@wailsio/runtime/src/create.ts +++ b/v3/internal/runtime/desktop/@wailsio/runtime/src/create.ts @@ -49,7 +49,7 @@ export function Array(element: (source: any) => T): (source: any) => T[ * and returns an in-place creation function for an object * whose keys and values are of those types. */ -export function Map(key: (source: any) => string, value: (source: any) => V): (source: any) => Record { +export function Map(key: (source: any) => K, value: (source: any) => V): (source: any) => Record { if (value === Any) { return (source) => (source === null ? {} : source); }