Files
AstroJS/resolver-go/internal/minifier/css/compiler.go
T
2026-06-13 04:00:52 +08:00

35 lines
808 B
Go

package css
import (
"context"
"fmt"
"github.com/evanw/esbuild/pkg/api"
"github.com/tgckpg/resolver-go/internal/compilecache"
)
func NewEsbuildCompiler() *EsbuildCompiler {
return &EsbuildCompiler{}
}
func (c *EsbuildCompiler) Compile(ctx context.Context, job compilecache.Job) ([]byte, error) {
payload, ok := job.Payload.(CompilePayload)
if !ok {
return nil, fmt.Errorf("esbuild css compiler got invalid payload type %T", job.Payload)
}
result := api.Transform(payload.Source, api.TransformOptions{
Loader: api.LoaderCSS,
Sourcefile: payload.Name,
MinifyWhitespace: true,
MinifyIdentifiers: true,
MinifySyntax: true,
})
if len(result.Errors) > 0 {
return nil, fmt.Errorf("css compile failed: %s", result.Errors[0].Text)
}
return result.Code, nil
}