From b334afabd7f077204526a81e849b23fd11527809 Mon Sep 17 00:00:00 2001 From: "Gustavo L de Mello (Guz)" Date: Thu, 23 Jan 2025 17:20:21 -0300 Subject: [PATCH] feat(blogo,plugins,prefixedsourcer): logging and assertions to follow the code style --- blogo/plugins/prefixedsourcer.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/blogo/plugins/prefixedsourcer.go b/blogo/plugins/prefixedsourcer.go index 8b89672..e7b47be 100644 --- a/blogo/plugins/prefixedsourcer.go +++ b/blogo/plugins/prefixedsourcer.go @@ -24,6 +24,7 @@ import ( "forge.capytal.company/loreddev/x/blogo/metadata" "forge.capytal.company/loreddev/x/blogo/plugin" + "forge.capytal.company/loreddev/x/tinyssert" ) const prefixedSourcerName = "blogo-prefixedsourcer-sourcer" @@ -38,6 +39,9 @@ func NewPrefixedSourcer(opts ...PrefixedSourcerOpts) PrefixedSourcer { opt.PrefixSeparator = "/" } + if opt.Assertions == nil { + opt.Assertions = tinyssert.NewDisabledAssertions() + } if opt.Logger == nil { opt.Logger = slog.New(slog.NewTextHandler(io.Discard, &slog.HandlerOptions{})) } @@ -51,7 +55,8 @@ func NewPrefixedSourcer(opts ...PrefixedSourcerOpts) PrefixedSourcer { skipOnSourceError: opt.SkipOnSourceError, skipOnFSError: opt.SkipOnFSError, - log: opt.Logger, + assert: opt.Assertions, + log: opt.Logger, } } @@ -62,8 +67,10 @@ type PrefixedSourcerOpts struct { SkipOnSourceError bool SkipOnFSError bool + Assertions tinyssert.Assertions Logger *slog.Logger } + type PrefixedSourcer interface { plugin.Sourcer plugin.WithPlugins @@ -79,6 +86,7 @@ type prefixedSourcer struct { skipOnSourceError bool skipOnFSError bool + assert tinyssert.Assertions log *slog.Logger } @@ -91,6 +99,11 @@ func (s *prefixedSourcer) Use(plugin plugin.Plugin) { } func (s *prefixedSourcer) UseNamed(prefix string, p plugin.Plugin) { + s.assert.NotZero(prefix, "Prefix of plugin should not be empty") + s.assert.NotNil(p) + s.assert.NotNil(s.plugins) + s.assert.NotNil(s.log) + log := s.log.With(slog.String("plugin", p.Name()), slog.String("prefix", prefix)) log.Debug("Adding plugin") @@ -114,6 +127,9 @@ func (s *prefixedSourcer) UseNamed(prefix string, p plugin.Plugin) { } func (s *prefixedSourcer) Source() (fs.FS, error) { + s.assert.NotNil(s.plugins) + s.assert.NotNil(s.log) + log := s.log.With() fileSystems := make(map[string]fs.FS, len(s.plugins))