mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-08 09:31:44 +08:00

* Rename predicates source file * Overhaul and document type predicates * Fix model collection logic for named types * Fix map key type rendering * Fix map creation code * Fix rendering of structs that implement marshaler interfaces * Fix type cycle detection to take type args into account * Fix enum and typeparam field initialisation * Improve unsupported type warnings * Remove internal models file * Deduplicate template code * Accept generic aliases in static analyser * Support new `encoding/json` flag `omitzero` * Handle special cases when rendering generic aliases * Update npm test dependencies * Test class aliases and implicit private dependencies * Test marshaler combinations * Test map key types * Remove bad map keys from unrelated tests * Test service discovery through generic aliases * Test generic aliases * Test warning messages * Disable go1.24 tests * Update changelog * Restore rendering of injected lines in index file * Test directives * Add wails:ignore directive * Fix typo * Move injections to the bottom of service files * Handle errors from closing files * Do not emit messages when services define only lifecycle methods * Add internal directive for services and models * Update changelog * Fix error in service templates * Test internal directive on services/models * Fix error in index template * Base testdata updates * Testdata for class aliases and implicit private dependencies * Testdata for marshaler combinations * Testdata for map key types * Testdata for bad map key fixes * Add weakly typed enums aka alias constants * Testdata for enum and typeparam field fixes * Testdata for generic aliases * Testdata for warning messages * Testdata for directives * Testdata for weakly typed enums * Update binding example * Update services example * Remove go1.24 testdata * Update cli doc * Fix analyser tests * Fix windows tests... hopefully * go mod tidy on examples * Update bindings guide --------- Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
103 lines
2.2 KiB
Cheetah
103 lines
2.2 KiB
Cheetah
{{$renderer := .}}
|
|
{{- $useInterfaces := .UseInterfaces}}
|
|
{{- $models := (fixext .ModelsFile)}}
|
|
{{- if not .TS -}}
|
|
// @ts-check
|
|
{{end -}}
|
|
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
|
|
// This file is automatically generated. DO NOT EDIT
|
|
{{$hasDocs := false}}
|
|
{{- range .Package.Docs}}
|
|
{{- if hasdoc .}}{{$hasDocs := true}}{{break}}{{end}}
|
|
{{- end}}
|
|
{{- if $hasDocs}}
|
|
/**
|
|
{{- range .Package.Docs}}
|
|
{{- jsdoc .Text ""}}
|
|
{{- end}}
|
|
* @module
|
|
*/
|
|
{{end}}
|
|
{{- if .Services}}
|
|
{{- range .Services}}{{if .Internal}}{{break}}{{end}}
|
|
import * as {{jsid .Name}} from "./{{js (fixext ($renderer.ServiceFile .Name))}}";
|
|
{{- end}}
|
|
export {
|
|
{{- range $i, $service := .Services}}
|
|
{{- if .Internal}}{{break}}{{end}}
|
|
{{- if gt $i 0}},{{end}}
|
|
{{jsid .Name}}
|
|
{{- end}}
|
|
};
|
|
{{end}}
|
|
|
|
{{- $hasObjects := false}}
|
|
{{- $hasTypes := false}}
|
|
|
|
{{- range $model := .Models}}
|
|
{{- if $model.Internal}}{{break}}{{end}}
|
|
|
|
{{- $info := modelinfo $model $useInterfaces }}
|
|
|
|
{{- if or $info.HasValues $info.IsClassAlias $info.IsClass}}
|
|
{{- if not $hasObjects}}
|
|
{{- $hasObjects = true}}
|
|
export {
|
|
{{- else}},{{end}}
|
|
{{jsid $model.Name}}
|
|
{{- else}}
|
|
{{- $hasTypes = true}}
|
|
{{- end}}
|
|
{{- end}}
|
|
{{- if $hasObjects}}
|
|
} from "./{{js $models}}";
|
|
{{end}}
|
|
|
|
{{- if $hasTypes}}
|
|
{{- $hasTypes = false}}
|
|
|
|
{{- if .TS}}
|
|
export type {
|
|
{{- else}}
|
|
import * as $models from "./{{js $models}}";
|
|
{{end}}
|
|
{{- range $model := .Models}}
|
|
{{- if $model.Internal}}{{break}}{{end}}
|
|
|
|
{{- $info := modelinfo $model $useInterfaces }}
|
|
{{- $template := $info.Template }}
|
|
|
|
{{- if or $info.HasValues $info.IsClassAlias $info.IsClass}}{{continue}}{{end}}
|
|
|
|
{{- if $renderer.TS}}
|
|
{{- if $hasTypes}},{{end}}
|
|
{{jsid $model.Name}}
|
|
{{- else}}
|
|
/**
|
|
{{- if hasdoc $model.Decl.Doc}}
|
|
{{- jsdoc $model.Decl.Doc.Text ""}}{{if hasdoc $model.Doc}}
|
|
*{{end}}
|
|
{{- end}}
|
|
{{- if hasdoc $model.Doc}}
|
|
{{- jsdoc $model.Doc.Text ""}}
|
|
{{- end}}
|
|
{{- if $template.ParamList}}
|
|
* @template {{$template.Params}}
|
|
{{- end}}
|
|
* @typedef {$models.{{jsid $model.Name}}{{$template.ParamList -}} } {{jsid $model.Name}}
|
|
*/
|
|
{{end}}
|
|
|
|
{{- $hasTypes = true}}
|
|
{{- end}}
|
|
|
|
{{- if .TS}}
|
|
} from "./{{js $models}}";
|
|
{{end}}
|
|
|
|
{{- end}}
|
|
{{- range .Package.Injections}}
|
|
{{.}}
|
|
{{- end}}{{if .Package.Injections}}
|
|
{{end -}}
|