diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-07-13 11:41:02 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-07-15 17:14:26 +0200 |
commit | 022c4795510306e08a4aba31504ca382d41c7fac (patch) | |
tree | d4c29f62038d0f336d90f32f46bc5b4f5c3ddc28 /resources/resource_transformers | |
parent | f27e542442d19436f1428cc22bb03aca398d37a7 (diff) |
hugofs: Make FileMeta a struct
This commit started out investigating a `concurrent map read write` issue, ending by replacing the map with a struct.
This is easier to reason about, and it's more effective:
```
name old time/op new time/op delta
SiteNew/Regular_Deep_content_tree-16 71.5ms ± 3% 69.4ms ± 5% ~ (p=0.200 n=4+4)
name old alloc/op new alloc/op delta
SiteNew/Regular_Deep_content_tree-16 29.7MB ± 0% 27.9MB ± 0% -5.82% (p=0.029 n=4+4)
name old allocs/op new allocs/op delta
SiteNew/Regular_Deep_content_tree-16 313k ± 0% 303k ± 0% -3.35% (p=0.029 n=4+4)
```
See #8749
Diffstat (limited to 'resources/resource_transformers')
5 files changed, 12 insertions, 12 deletions
diff --git a/resources/resource_transformers/js/build.go b/resources/resource_transformers/js/build.go index bd74c98ed..12d0dd410 100644 --- a/resources/resource_transformers/js/build.go +++ b/resources/resource_transformers/js/build.go @@ -118,7 +118,7 @@ func (t *buildTransformation) Transform(ctx *resources.ResourceTransformationCtx return errors.Errorf("inject: file %q not found", ext) } - opts.Inject[i] = m.Filename() + opts.Inject[i] = m.Filename } @@ -150,7 +150,7 @@ func (t *buildTransformation) Transform(ctx *resources.ResourceTransformationCtx fi, err = t.c.sfs.Fs.Stat(path) if err == nil { m := fi.(hugofs.FileMetaInfo).Meta() - path = m.Filename() + path = m.Filename f, err = m.Open() } diff --git a/resources/resource_transformers/js/options.go b/resources/resource_transformers/js/options.go index 84f571f17..d1359ebda 100644 --- a/resources/resource_transformers/js/options.go +++ b/resources/resource_transformers/js/options.go @@ -143,8 +143,8 @@ func loaderFromFilename(filename string) api.Loader { return api.LoaderJS } -func resolveComponentInAssets(fs afero.Fs, impPath string) hugofs.FileMeta { - findFirst := func(base string) hugofs.FileMeta { +func resolveComponentInAssets(fs afero.Fs, impPath string) *hugofs.FileMeta { + findFirst := func(base string) *hugofs.FileMeta { // This is the most common sub-set of ESBuild's default extensions. // We assume that imports of JSON, CSS etc. will be using their full // name with extension. @@ -158,7 +158,7 @@ func resolveComponentInAssets(fs afero.Fs, impPath string) hugofs.FileMeta { return nil } - var m hugofs.FileMeta + var m *hugofs.FileMeta // First the path as is. fi, err := fs.Stat(impPath) @@ -217,8 +217,8 @@ func createBuildPlugins(c *Client, opts Options) ([]api.Plugin, error) { // This should be a small number of elements, and when // in server mode, we may get stale entries on renames etc., // but that shouldn't matter too much. - c.rs.JSConfigBuilder.AddSourceRoot(m.SourceRoot()) - return api.OnResolveResult{Path: m.Filename(), Namespace: nsImportHugo}, nil + c.rs.JSConfigBuilder.AddSourceRoot(m.SourceRoot) + return api.OnResolveResult{Path: m.Filename, Namespace: nsImportHugo}, nil } // Fall back to ESBuild's resolve. diff --git a/resources/resource_transformers/postcss/postcss.go b/resources/resource_transformers/postcss/postcss.go index 652770078..5fcadd937 100644 --- a/resources/resource_transformers/postcss/postcss.go +++ b/resources/resource_transformers/postcss/postcss.go @@ -394,7 +394,7 @@ func (imp *importResolver) toFileError(output string) error { if err != nil { return inErr } - realFilename := fi.(hugofs.FileMetaInfo).Meta().Filename() + realFilename := fi.(hugofs.FileMetaInfo).Meta().Filename ferr := herrors.NewFileError("css", -1, file.Offset+1, 1, inErr) diff --git a/resources/resource_transformers/tocss/dartsass/transform.go b/resources/resource_transformers/tocss/dartsass/transform.go index 85ca540b1..d70d2e6e0 100644 --- a/resources/resource_transformers/tocss/dartsass/transform.go +++ b/resources/resource_transformers/tocss/dartsass/transform.go @@ -90,7 +90,7 @@ func (t *transform) Transform(ctx *resources.ResourceTransformationCtx) error { for _, ip := range opts.IncludePaths { info, err := t.c.workFs.Stat(filepath.Clean(ip)) if err == nil { - filename := info.(hugofs.FileMetaInfo).Meta().Filename() + filename := info.(hugofs.FileMetaInfo).Meta().Filename args.IncludePaths = append(args.IncludePaths, filename) } } @@ -191,7 +191,7 @@ func (t importResolver) CanonicalizeURL(url string) (string, error) { fi, err := t.c.sfs.Fs.Stat(filenameToCheck) if err == nil { if fim, ok := fi.(hugofs.FileMetaInfo); ok { - return "file://" + filepath.ToSlash(fim.Meta().Filename()), nil + return "file://" + filepath.ToSlash(fim.Meta().Filename), nil } } } diff --git a/resources/resource_transformers/tocss/scss/tocss.go b/resources/resource_transformers/tocss/scss/tocss.go index f4f15fad1..de33b663e 100644 --- a/resources/resource_transformers/tocss/scss/tocss.go +++ b/resources/resource_transformers/tocss/scss/tocss.go @@ -55,7 +55,7 @@ func (t *toCSSTransformation) Transform(ctx *resources.ResourceTransformationCtx for _, ip := range options.from.IncludePaths { info, err := t.c.workFs.Stat(filepath.Clean(ip)) if err == nil { - filename := info.(hugofs.FileMetaInfo).Meta().Filename() + filename := info.(hugofs.FileMetaInfo).Meta().Filename options.to.IncludePaths = append(options.to.IncludePaths, filename) } } @@ -105,7 +105,7 @@ func (t *toCSSTransformation) Transform(ctx *resources.ResourceTransformationCtx fi, err := t.c.sfs.Fs.Stat(filenameToCheck) if err == nil { if fim, ok := fi.(hugofs.FileMetaInfo); ok { - return fim.Meta().Filename(), "", true + return fim.Meta().Filename, "", true } } } |