diff --git a/CHANGELOG.md b/CHANGELOG.md index 9fd10ef..9b9a439 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## v1.5.2 (2026-06-08) +- **JS 对齐**: 将所有注册到 `jsmod` 的导出方法名统一为 PascalCase(如 `Read`, `Write`, `GetFileInfo`),消除 JS 环境下的调用摩擦。 + ## [1.3.3] - 2026-05-30 - **新增**: 注册到 `jsmod`,将所有文件操作方法(Read/Write/Archive 等)注册为高危方法(unsafeList),确保安全沙箱隔离。 diff --git a/js_export.go b/js_export.go index 1fab1e9..c8bf16b 100644 --- a/js_export.go +++ b/js_export.go @@ -9,42 +9,42 @@ import ( func init() { jsmod.Register("file", map[string]any{ // 读操作 (映射到私有包装器) - "exists": func(ctx context.Context, path string) bool { + "Exists": func(ctx context.Context, path string) bool { p, err := VerifyPathForSafeMode(ctx, path) if err != nil { return false } return Exists(p) }, - "read": func(ctx context.Context, path string) (string, error) { + "Read": func(ctx context.Context, path string) (string, error) { p, err := VerifyPathForSafeMode(ctx, path) if err != nil { return "", err } return Read(p) }, - "readBytes": func(ctx context.Context, path string) ([]byte, error) { + "ReadBytes": func(ctx context.Context, path string) ([]byte, error) { p, err := VerifyPathForSafeMode(ctx, path) if err != nil { return nil, err } return ReadBytes(p) }, - "readLines": func(ctx context.Context, path string) ([]string, error) { + "ReadLines": func(ctx context.Context, path string) ([]string, error) { p, err := VerifyPathForSafeMode(ctx, path) if err != nil { return nil, err } return ReadLines(p) }, - "readDir": func(ctx context.Context, path string) ([]FileInfo, error) { + "ReadDir": func(ctx context.Context, path string) ([]FileInfo, error) { p, err := VerifyPathForSafeMode(ctx, path) if err != nil { return nil, err } return ReadDir(p) }, - "getFileInfo": func(ctx context.Context, path string) *FileInfo { + "GetFileInfo": func(ctx context.Context, path string) *FileInfo { p, err := VerifyPathForSafeMode(ctx, path) if err != nil { return nil @@ -53,35 +53,35 @@ func init() { }, // 写操作 - "write": func(ctx context.Context, path string, content string) error { + "Write": func(ctx context.Context, path string, content string) error { p, err := VerifyPathForSafeMode(ctx, path) if err != nil { return err } return Write(p, content) }, - "writeBytes": func(ctx context.Context, path string, content []byte) error { + "WriteBytes": func(ctx context.Context, path string, content []byte) error { p, err := VerifyPathForSafeMode(ctx, path) if err != nil { return err } return WriteBytes(p, content) }, - "remove": func(ctx context.Context, path string) error { + "Remove": func(ctx context.Context, path string) error { p, err := VerifyPathForSafeMode(ctx, path) if err != nil { return err } return Remove(p) }, - "mkdir": func(ctx context.Context, path string) error { + "Mkdir": func(ctx context.Context, path string) error { p, err := VerifyPathForSafeMode(ctx, path) if err != nil { return err } return Mkdir(p) }, - "copy": func(ctx context.Context, from, to string) error { + "Copy": func(ctx context.Context, from, to string) error { pFrom, err := VerifyPathForSafeMode(ctx, from) if err != nil { return err @@ -92,7 +92,7 @@ func init() { } return Copy(pFrom, pTo) }, - "move": func(ctx context.Context, from, to string) error { + "Move": func(ctx context.Context, from, to string) error { pFrom, err := VerifyPathForSafeMode(ctx, from) if err != nil { return err @@ -103,7 +103,7 @@ func init() { } return Move(pFrom, pTo) }, - "replace": func(ctx context.Context, path, old, new string) error { + "Replace": func(ctx context.Context, path, old, new string) error { p, err := VerifyPathForSafeMode(ctx, path) if err != nil { return err @@ -112,21 +112,21 @@ func init() { }, // 序列化 - "unmarshalFile": func(ctx context.Context, path string, to any) error { + "UnmarshalFile": func(ctx context.Context, path string, to any) error { p, err := VerifyPathForSafeMode(ctx, path) if err != nil { return err } return UnmarshalFile(p, to) }, - "marshalFile": func(ctx context.Context, path string, data any) error { + "MarshalFile": func(ctx context.Context, path string, data any) error { p, err := VerifyPathForSafeMode(ctx, path) if err != nil { return err } return MarshalFile(p, data) }, - "marshalFilePretty": func(ctx context.Context, path string, data any) error { + "MarshalFilePretty": func(ctx context.Context, path string, data any) error { p, err := VerifyPathForSafeMode(ctx, path) if err != nil { return err @@ -135,7 +135,7 @@ func init() { }, // 归档 - "archive": func(ctx context.Context, src, dest string) error { + "Archive": func(ctx context.Context, src, dest string) error { pSrc, err := VerifyPathForSafeMode(ctx, src) if err != nil { return err @@ -146,7 +146,7 @@ func init() { } return Archive(pSrc, pDest) }, - "extract": func(ctx context.Context, src, dest string, strip bool) error { + "Extract": func(ctx context.Context, src, dest string, strip bool) error { pSrc, err := VerifyPathForSafeMode(ctx, src) if err != nil { return err @@ -159,7 +159,7 @@ func init() { }, // 压缩工具 (无路径,不校验) - "compress": Compress, - "decompress": Decompress, + "Compress": Compress, + "Decompress": Decompress, }) } diff --git a/memory.go b/memory.go index e61aff0..251bef0 100644 --- a/memory.go +++ b/memory.go @@ -186,7 +186,7 @@ func LoadFileToB64(filename string) *MemFileB64 { ModTime: info.ModTime(), IsDir: false, Size: info.Size(), - DataB64: encoding.Base64(data), + DataB64: []byte(encoding.Base64(data)), Compressed: compressed, } }