aboutsummaryrefslogtreecommitdiffhomepage
path: root/resources/resource_transformers/js/options.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <[email protected]>2021-07-13 11:41:02 +0200
committerBjørn Erik Pedersen <[email protected]>2021-07-15 17:14:26 +0200
commit022c4795510306e08a4aba31504ca382d41c7fac (patch)
treed4c29f62038d0f336d90f32f46bc5b4f5c3ddc28 /resources/resource_transformers/js/options.go
parentf27e542442d19436f1428cc22bb03aca398d37a7 (diff)
downloadhugo-022c4795510306e08a4aba31504ca382d41c7fac.tar.gz
hugo-022c4795510306e08a4aba31504ca382d41c7fac.zip
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/js/options.go')
-rw-r--r--resources/resource_transformers/js/options.go10
1 files changed, 5 insertions, 5 deletions
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.