]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
js/esbuild: Build groups in order of their ID
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Fri, 13 Dec 2024 10:00:04 +0000 (11:00 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Fri, 13 Dec 2024 12:29:35 +0000 (13:29 +0100)
We already do this for scripts e.g. inside a group.

This makes sure that group A's entry points gets added before B's, which can be an important property, see https://github.com/evanw/esbuild/issues/399#issuecomment-1458680887

internal/js/esbuild/batch.go

index 43e2da4445d5fbc5baea65dc565074067c62a050..1a8a7b09a5d7a0d11ba70f01c8c021643a4918df 100644 (file)
@@ -474,25 +474,25 @@ func (b *batcher) doBuild(ctx context.Context) (*Package, error) {
                entryPoints = append(entryPoints, pth)
        }
 
-       for k, v := range b.scriptGroups {
-               keyPath := k
+       for _, g := range b.scriptGroups.Sorted() {
+               keyPath := g.id
                var runners []scriptRunnerTemplateContext
-               for _, vv := range v.runnersOptions.ByKey() {
+               for _, vv := range g.runnersOptions.ByKey() {
                        runnerKeyPath := keyPath + "_" + vv.Key().String()
                        runnerImpPath := paths.AddLeadingSlash(runnerKeyPath + "_runner" + vv.Compiled().Resource.MediaType().FirstSuffix.FullSuffix)
                        runners = append(runners, scriptRunnerTemplateContext{opts: vv, Import: runnerImpPath})
-                       addResource(k, runnerImpPath, vv.Compiled().Resource, false)
+                       addResource(g.id, runnerImpPath, vv.Compiled().Resource, false)
                }
 
                t := &batchGroupTemplateContext{
                        keyPath: keyPath,
-                       ID:      v.id,
+                       ID:      g.id,
                        Runners: runners,
                }
 
-               instances := v.instancesOptions.ByKey()
+               instances := g.instancesOptions.ByKey()
 
-               for _, vv := range v.scriptsOptions.ByKey() {
+               for _, vv := range g.scriptsOptions.ByKey() {
                        keyPath := keyPath + "_" + vv.Key().String()
                        opts := vv.Compiled()
                        impPath := path.Join(PrefixHugoVirtual, opts.Dir(), keyPath+opts.Resource.MediaType().FirstSuffix.FullSuffix)
@@ -502,7 +502,7 @@ func (b *batcher) doBuild(ctx context.Context) (*Package, error) {
                                name:           keyPath,
                                resourceGetter: impCtx,
                                scriptOptions:  opts,
-                               dm:             v.dependencyManager,
+                               dm:             g.dependencyManager,
                        })
 
                        bt := scriptBatchTemplateContext{
@@ -528,10 +528,10 @@ func (b *batcher) doBuild(ctx context.Context) (*Package, error) {
                state.importerImportContext.Set(s, importContext{
                        name:           s,
                        resourceGetter: nil,
-                       dm:             v.dependencyManager,
+                       dm:             g.dependencyManager,
                })
 
-               addResource(v.id, s, r, true)
+               addResource(g.id, s, r, true)
        }
 
        mediaTypes := b.client.d.ResourceSpec.MediaTypes()