dartsass: Fix nilpointer on Close when Dart Sass isn't installed

Fixes #13076
This commit is contained in:
Bjørn Erik Pedersen 2024-11-21 09:48:54 +01:00
parent 8fcd3c1487
commit 8d017a60fb
2 changed files with 10 additions and 7 deletions

View file

@ -70,7 +70,7 @@ hello:
other: "Bonjour"
-- layouts/index.html --
{{ $options := dict "inlineImports" true }}
{{ $styles := resources.Get "css/styles.css" | resources.PostCSS $options }}
{{ $styles := resources.Get "css/styles.css" | css.PostCSS $options }}
Styles RelPermalink: {{ $styles.RelPermalink }}
{{ $cssContent := $styles.Content }}
Styles Content: Len: {{ len $styles.Content }}|

View file

@ -44,7 +44,7 @@ const dartSassStdinPrefix = "hugostdin:"
func New(fs *filesystems.SourceFilesystem, rs *resources.Spec) (*Client, error) {
if !Supports() {
return &Client{dartSassNotAvailable: true}, nil
return &Client{}, nil
}
if hugo.DartSassBinaryName == "" {
@ -89,22 +89,25 @@ func New(fs *filesystems.SourceFilesystem, rs *resources.Spec) (*Client, error)
}
type Client struct {
dartSassNotAvailable bool
rs *resources.Spec
sfs *filesystems.SourceFilesystem
workFs afero.Fs
rs *resources.Spec
sfs *filesystems.SourceFilesystem
workFs afero.Fs
// This may be nil if Dart Sass is not available.
transpiler *godartsass.Transpiler
}
func (c *Client) ToCSS(res resources.ResourceTransformer, args map[string]any) (resource.Resource, error) {
if c.dartSassNotAvailable {
if c.transpiler == nil {
return res.Transform(resources.NewFeatureNotAvailableTransformer(transformationName, args))
}
return res.Transform(&transform{c: c, optsm: args})
}
func (c *Client) Close() error {
if c.transpiler == nil {
return nil
}
return c.transpiler.Close()
}