2024-07-25 13:39:39 +08:00

36 lines
932 B
Go

package formatter
import (
"bytes"
"github.com/ditashi/jsbeautifier-go/jsbeautifier"
)
// JSFormatter 结构体,用于格式化 JavaScript 代码
type JSFormatter struct{}
// NewJSFormatter 创建一个新的 JSFormatter 实例
func NewJSFormatter() *JSFormatter {
return &JSFormatter{}
}
// Format 方法用于格式化 JavaScript 代码
// input: 原始的 JavaScript 代码字节切片
// 返回值: 格式化后的 JavaScript 代码字节切片和错误信息(如果有)
func (f *JSFormatter) Format(input []byte) ([]byte, error) {
// 将输入数据转换为字符串,并去除前后空白
code := string(bytes.TrimSpace(input))
// 使用 jsbeautifier 库格式化 JavaScript 代码
beautifiedCode, err := jsbeautifier.Beautify(&code, jsbeautifier.DefaultOptions())
if err != nil {
return input, err
}
return []byte(beautifiedCode), nil
}
func init() {
RegisterFormatter(".js", NewJSFormatter())
}