js: Support more recent targets with js.Build / esbuild

Closes #12575
This commit is contained in:
Bjørn Erik Pedersen 2024-06-08 10:52:16 +02:00
parent b57306d61b
commit 1cdd3d0a9e
2 changed files with 40 additions and 2 deletions

View file

@ -342,6 +342,12 @@ func toBuildOptions(opts Options) (buildOptions api.BuildOptions, err error) {
target = api.ES2019
case "es2020":
target = api.ES2020
case "es2021":
target = api.ES2021
case "es2022":
target = api.ES2022
case "es2023":
target = api.ES2023
default:
err = fmt.Errorf("invalid target: %q", opts.Target)
return

View file

@ -136,8 +136,10 @@ func TestToBuildOptions(t *testing.T) {
},
})
opts, err = toBuildOptions(Options{mediaType: media.Builtin.JavascriptType,
JSX: "automatic", JSXImportSource: "preact"})
opts, err = toBuildOptions(Options{
mediaType: media.Builtin.JavascriptType,
JSX: "automatic", JSXImportSource: "preact",
})
c.Assert(err, qt.IsNil)
c.Assert(opts, qt.DeepEquals, api.BuildOptions{
Bundle: true,
@ -151,6 +153,36 @@ func TestToBuildOptions(t *testing.T) {
})
}
func TestToBuildOptionsTarget(t *testing.T) {
c := qt.New(t)
for _, test := range []struct {
target string
expect api.Target
}{
{"es2015", api.ES2015},
{"es2016", api.ES2016},
{"es2017", api.ES2017},
{"es2018", api.ES2018},
{"es2019", api.ES2019},
{"es2020", api.ES2020},
{"es2021", api.ES2021},
{"es2022", api.ES2022},
{"es2023", api.ES2023},
{"", api.ESNext},
{"esnext", api.ESNext},
} {
c.Run(test.target, func(c *qt.C) {
opts, err := toBuildOptions(Options{
Target: test.target,
mediaType: media.Builtin.JavascriptType,
})
c.Assert(err, qt.IsNil)
c.Assert(opts.Target, qt.Equals, test.expect)
})
}
}
func TestResolveComponentInAssets(t *testing.T) {
c := qt.New(t)