-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathalias.go
More file actions
41 lines (37 loc) · 863 Bytes
/
alias.go
File metadata and controls
41 lines (37 loc) · 863 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package plugins
import (
"strings"
"github.com/evanw/esbuild/pkg/api"
"github.com/natrim/nrb/lib"
)
func AliasPlugin(aliases map[string]string) api.Plugin {
if len(aliases) == 0 {
return api.Plugin{
Name: "alias-stub",
Setup: func(build api.PluginBuild) {
},
}
}
return api.Plugin{
Name: "alias",
Setup: func(build api.PluginBuild) {
filter := strings.Builder{}
filter.WriteString("^(")
count := len(aliases)
for alias := range aliases {
filter.WriteString(escapeRegExp(alias))
if count > 1 {
filter.WriteString("|")
}
count--
}
filter.WriteString(")$")
build.OnResolve(api.OnResolveOptions{Filter: filter.String()},
func(args api.OnResolveArgs) (api.OnResolveResult, error) {
return api.OnResolveResult{
Path: lib.RealQuickPath(aliases[args.Path]),
}, nil
})
},
}
}