From 74bb4fd9ff0982a395046f534f122f44fa9ae64a Mon Sep 17 00:00:00 2001 From: Volker Schukai <volker.schukai@schukai.com> Date: Sat, 17 May 2025 01:29:26 +0200 Subject: [PATCH] feat: add alias attriburte --- source/go.mod | 2 +- source/go.sum | 2 ++ source/javascript/generate.go | 20 +++++++++++-- .../charmbracelet/log/.golangci.yml | 28 +++++++++---------- .../github.com/charmbracelet/log/json.go | 8 +++++- .../charmbracelet/log/logger_121.go | 2 ++ .../charmbracelet/log/logger_no121.go | 2 ++ source/vendor/modules.txt | 2 +- 8 files changed, 47 insertions(+), 19 deletions(-) diff --git a/source/go.mod b/source/go.mod index 536064d..b0ff802 100644 --- a/source/go.mod +++ b/source/go.mod @@ -4,7 +4,7 @@ go 1.23.0 require ( github.com/andybalholm/cascadia v1.3.3 - github.com/charmbracelet/log v0.4.1 + github.com/charmbracelet/log v0.4.2 github.com/evanw/esbuild v0.25.4 github.com/tdewolff/parse/v2 v2.8.0 gitlab.schukai.com/oss/libraries/go/application/xflags.git v1.16.5 diff --git a/source/go.sum b/source/go.sum index 8d5eae4..d312174 100644 --- a/source/go.sum +++ b/source/go.sum @@ -68,6 +68,8 @@ github.com/charmbracelet/log v0.4.0 h1:G9bQAcx8rWA2T3pWvx7YtPTPwgqpk7D68BX21IRW8 github.com/charmbracelet/log v0.4.0/go.mod h1:63bXt/djrizTec0l11H20t8FDSvA4CRZJ1KH22MdptM= github.com/charmbracelet/log v0.4.1 h1:6AYnoHKADkghm/vt4neaNEXkxcXLSV2g1rdyFDOpTyk= github.com/charmbracelet/log v0.4.1/go.mod h1:pXgyTsqsVu4N9hGdHmQ0xEA4RsXof402LX9ZgiITn2I= +github.com/charmbracelet/log v0.4.2 h1:hYt8Qj6a8yLnvR+h7MwsJv/XvmBJXiueUcI3cIxsyig= +github.com/charmbracelet/log v0.4.2/go.mod h1:qifHGX/tc7eluv2R6pWIpyHDDrrb/AG71Pf2ysQu5nw= github.com/charmbracelet/x/ansi v0.8.0 h1:9GTq3xq9caJW8ZrBTe0LIe2fvfLR/bYXKTx2llXn7xE= github.com/charmbracelet/x/ansi v0.8.0/go.mod h1:wdYl/ONOLHLIVmQaxbIYEC/cRKOQyjTkowiI4blgS9Q= github.com/charmbracelet/x/ansi v0.9.2 h1:92AGsQmNTRMzuzHEYfCdjQeUzTrgE1vfO5/7fEVoXdY= diff --git a/source/javascript/generate.go b/source/javascript/generate.go index fb3508f..a628104 100644 --- a/source/javascript/generate.go +++ b/source/javascript/generate.go @@ -27,6 +27,9 @@ func ParseHTMLFile(p string, development bool) error { var src, source, scriptDist, styleDist, target string if n.Type == html.ElementNode && n.Data == "script" { + + aliases := make(map[string]string) + for _, attr := range n.Attr { if attr.Key == "data-bob-source" { source = attr.Val @@ -36,6 +39,17 @@ func ParseHTMLFile(p string, development bool) error { styleDist = attr.Val } else if attr.Key == "data-bob-target" { target = attr.Val + } else if attr.Key == "data-bob-alias" { + val := strings.Split(attr.Val, ",") + for _, alias := range val { + parts := strings.Split(alias, ":") + if len(parts) == 2 { + aliases[strings.TrimSpace(parts[0])] = strings.TrimSpace(parts[1]) + } else { + log.Error("Invalid alias format: " + alias) + } + } + } else if attr.Key == "src" { src = attr.Val } @@ -68,7 +82,7 @@ func ParseHTMLFile(p string, development bool) error { log.Info("Script: " + src + " " + source + " " + scriptDist + " " + styleDist) - runESBuild(source, path.Dir(p), scriptDist, styleDist, development, target) + runESBuild(source, path.Dir(p), scriptDist, styleDist, development, target, aliases) } @@ -83,7 +97,7 @@ func ParseHTMLFile(p string, development bool) error { return nil } -func runESBuild(source, dist, scriptDist, styleDist string, development bool, target string) { +func runESBuild(source, dist, scriptDist, styleDist string, development bool, target string, aliases map[string]string) { var treeShaking = api.TreeShakingTrue if development { @@ -158,6 +172,8 @@ func runESBuild(source, dist, scriptDist, styleDist string, development bool, ta LogLevel: api.LogLevelError, Target: esbuildTarget, + Alias: aliases, + MinifySyntax: !development, MinifyWhitespace: !development, MinifyIdentifiers: !development, diff --git a/source/vendor/github.com/charmbracelet/log/.golangci.yml b/source/vendor/github.com/charmbracelet/log/.golangci.yml index 90c5c08..be61d89 100644 --- a/source/vendor/github.com/charmbracelet/log/.golangci.yml +++ b/source/vendor/github.com/charmbracelet/log/.golangci.yml @@ -1,17 +1,6 @@ +version: "2" run: tests: false - -issues: - include: - - EXC0001 - - EXC0005 - - EXC0011 - - EXC0012 - - EXC0013 - - max-issues-per-linter: 0 - max-same-issues: 0 - linters: enable: - bodyclose @@ -19,8 +8,6 @@ linters: - goconst - godot - godox - - gofumpt - - goimports - gomoddirectives - goprintffuncname - gosec @@ -39,3 +26,16 @@ linters: - unparam - whitespace - wrapcheck + exclusions: + generated: lax + presets: + - common-false-positives +issues: + max-issues-per-linter: 0 + max-same-issues: 0 +formatters: + enable: + - gofumpt + - goimports + exclusions: + generated: lax diff --git a/source/vendor/github.com/charmbracelet/log/json.go b/source/vendor/github.com/charmbracelet/log/json.go index 19d4ddd..f84083d 100644 --- a/source/vendor/github.com/charmbracelet/log/json.go +++ b/source/vendor/github.com/charmbracelet/log/json.go @@ -88,7 +88,13 @@ func (l *Logger) writeSlogValue(jw *jsonWriter, v slogValue) { } jw.end() default: - jw.objectValue(v.Any()) + a := v.Any() + _, jm := a.(json.Marshaler) + if err, ok := a.(error); ok && !jm { + jw.objectValue(err.Error()) + } else { + jw.objectValue(a) + } } } diff --git a/source/vendor/github.com/charmbracelet/log/logger_121.go b/source/vendor/github.com/charmbracelet/log/logger_121.go index b5cf956..478e1a0 100644 --- a/source/vendor/github.com/charmbracelet/log/logger_121.go +++ b/source/vendor/github.com/charmbracelet/log/logger_121.go @@ -17,6 +17,8 @@ type ( slogLogValuer = slog.LogValuer ) +var slogAnyValue = slog.AnyValue + const slogKindGroup = slog.KindGroup // Enabled reports whether the logger is enabled for the given level. diff --git a/source/vendor/github.com/charmbracelet/log/logger_no121.go b/source/vendor/github.com/charmbracelet/log/logger_no121.go index ce8b8a2..ea8bb10 100644 --- a/source/vendor/github.com/charmbracelet/log/logger_no121.go +++ b/source/vendor/github.com/charmbracelet/log/logger_no121.go @@ -18,6 +18,8 @@ type ( slogLogValuer = slog.LogValuer ) +var slogAnyValue = slog.AnyValue + const slogKindGroup = slog.KindGroup // Enabled reports whether the logger is enabled for the given level. diff --git a/source/vendor/modules.txt b/source/vendor/modules.txt index 2f6df74..57bc76c 100644 --- a/source/vendor/modules.txt +++ b/source/vendor/modules.txt @@ -111,7 +111,7 @@ github.com/charmbracelet/colorprofile # github.com/charmbracelet/lipgloss v1.1.0 ## explicit; go 1.18 github.com/charmbracelet/lipgloss -# github.com/charmbracelet/log v0.4.1 +# github.com/charmbracelet/log v0.4.2 ## explicit; go 1.19 github.com/charmbracelet/log # github.com/charmbracelet/x/ansi v0.9.2 -- GitLab